【黄金时代厅】
1972年,VM/CMS正式问世。由IBM主导开发,面向大型机平台用户。
IBM虚拟机操作系统先驱,让一台大型机运行多个系统。
技术特色:操作系统、虚拟机、大型机。
影响力评估:技术维度 10/10,商业维度 7/10,文化维度 5/10,用户维度 6/10。
作为黄金时代厅的经典代表,VM/CMS在软件发展史上留下了深刻的印记。
IBM虚拟机操作系统先驱,让一台大型机运行多个系统。
【黄金时代厅】
1972年,VM/CMS正式问世。由IBM主导开发,面向大型机平台用户。
IBM虚拟机操作系统先驱,让一台大型机运行多个系统。
技术特色:操作系统、虚拟机、大型机。
影响力评估:技术维度 10/10,商业维度 7/10,文化维度 5/10,用户维度 6/10。
作为黄金时代厅的经典代表,VM/CMS在软件发展史上留下了深刻的印记。
1968年的秋天,美国马萨诸塞州剑桥市,IBM剑桥科学中心的一间实验室里,几个工程师正围着一台System/360 Model 40终端屏幕争论不休。这台机器运行着一个代号CP-40的实验系统,它能让一台物理主机同时跑起多个“虚拟”的IBM 360——每个虚拟机上都可以安装不同的操作系统,互不干扰,仿佛各自拥有整台机器。当时在场的罗伯特·克里德(Robert Creasy)后来回忆说:“我们其实只是想找个方便的办法测试新系统,谁也没想到这玩意儿后来会变成云计算的老祖宗。”这句话轻描淡写,却道出了VM/CMS诞生的核心驱动力:一个为了解决内部测试麻烦而生的工具,最终意外地撬开了虚拟化世界的大门。
要理解VM/CMS的革命性,必须先回到1960年代末期的技术环境。那时,大型机是计算世界的绝对霸主,一台IBM System/360的价格动辄数百万美元,用户只能通过批处理作业提交卡片或磁带,等待数小时甚至数天后才能拿到结果。分时系统(time-sharing)刚刚兴起,像MIT的CTSS和贝尔实验室的Unix先驱Multics正在探索让多个用户通过终端同时交互使用计算机。但IBM的主流产品线——OS/360和DOS/360——在设计上追求批处理吞吐量最大化,分时能力十分孱弱。IBM内部的研究部门、大学客户以及一些前瞻性的用户都渴望一种更灵活的计算模式:既能运行批处理作业,又能让程序员通过终端实时调试代码,还能测试尚未稳定的新操作系统版本,而不至于把生产环境搞崩溃。
正是在这种背景下,IBM剑桥科学中心在1967年启动了CP-40项目。CP代表Control Program,即控制程序,它的核心思想是“虚拟化”——在物理硬件之上构建一个薄层软件,模拟出多个完整的System/360指令集架构,每个模拟出来的“虚拟机”都可以独立运行任何兼容的操作系统。这个想法在当时堪称疯狂,因为System/360的硬件指令集极其复杂,包含特权指令、存储保护、通道I/O等众多细节,要在软件层面完全模拟并保持性能,难度不亚于在木板上雕刻一台钟表。但剑桥科学中心的工程师们做到了,他们利用System/360 Model 40的微码可编程特性,将部分虚拟化逻辑固化在微码中,实现了高效的指令翻译和内存隔离。1968年,CP-40成功运行,并在其上加载了一个轻量级的单用户交互系统——CMS(Conversational Monitor System,会话监控系统)。CMS本身不是一个完整的操作系统,它只是一个运行在虚拟机上的“壳”,提供命令行界面、文件管理和程序编译功能,但因为它极轻量、响应极快,很快成为分时用户的最爱。
然而,CP-40只运行在Model 40上,无法移植到其他System/360型号。剑桥团队决定将这一概念迁移到更主流的System/360 Model 67上,后者硬件支持动态地址转换(DAT),为虚拟内存提供了基础。1969年,CP-67/CMS诞生,并迅速在IBM内部和大学用户中传播。当时IBM的主流操作系统是OS/360和DOS/360,公司管理层对CP-67的态度颇为暧昧:一方面,它展示了IBM硬件的强大能力;另一方面,它可能抢走OS/360的生意,而且免费分发给学术界的做法让销售部门不满。传说,CP-67团队曾多次与IBM管理层发生争执,争论的焦点是资源分配——开发CP-67的工程师只有十几人,而OS/360的开发团队有上千人。一位参与早期开发的工程师曾抱怨:“我们像后娘养的孩子,每次要经费都得求爷爷告奶奶。”但CP-67/CMS的用户口碑实在太强了,麻省理工学院、斯坦福大学等顶尖学府用它搭建了校园分时网络,学生们通过电传终端编写程序分享文件,体验到了前所未有的交互式计算乐趣。IBM最终妥协,在1972年正式发布了VM/370——基于System/370架构的虚拟机操作系统,CMS作为捆绑组件一同提供。VM/370的发布标志着虚拟化从实验室实验走向商业化产品。
VM/370的技术架构在今天看来依然堪称优雅。它由两个核心部分组成:CP(Control Program)和CMS。CP是虚拟机监控器(hypervisor,这个词直到1970年代才被创造出来),它直接运行在硬件之上,负责创建、调度和隔离虚拟机。CP将每个虚拟机的指令流分为两类:普通指令直接由硬件执行,特权指令则陷入CP进行模拟。这种“陷阱与模拟”机制是虚拟化技术的经典实现,后来被VMware、Xen等现代hypervisor继承。CP还实现了虚拟内存、虚拟通道(I/O子系统)和虚拟控制台——每个虚拟机看到的都是一台完整的System/370,拥有自己的CPU、内存、磁盘和终端。CMS则运行在其中一个虚拟机上,它是一个单用户、交互式的操作系统,提供文件系统、编辑器、编译器以及一套简洁的命令行工具。CMS的设计哲学是“小而美”,它不试图管理硬件,而是依赖CP提供的虚拟资源,因此代码量极小,启动只需几秒钟,而OS/360的启动需要几分钟。VM/370的调度器也极具创新:它采用时间片轮转和优先级混合调度,能够同时运行数百个CMS会话和多个批处理作业,每个用户都感觉自己独占了一台机器。
VM/370的发展历程是一步一步向上兼容、不断扩展的史诗。1972年发布的VM/370第一版支持System/370的24位寻址(最大16MB内存),最多可支持数百个虚拟机。1979年,IBM推出VM/SP(System Product),这是对VM/370的重大升级,增强了系统可靠性、增加了诊断工具,并改进了CMS的文件系统性能。1980年代,随着System/370 Extended Architecture(XA)的推出,VM/XA于1988年问世,支持31位寻址,将单台虚拟机的内存上限提升到2GB。1990年代,VM/ESA(Enterprise Systems Architecture)版本整合了ESA架构,支持更大的内存和更复杂的I/O子系统。2000年,IBM发布z/VM,运行在z/Architecture大型机上,支持64位寻址和数千个虚拟机,至今仍是全球银行、航空、政府等关键业务系统的基石。值得一提的是,VM/CMS的生命力远超所有人的预期:当IBM在1990年代试图用OS/390取代VM时,用户群强烈抗议,迫使IBM继续维护和升级z/VM。今天,z/VM仍然是IBM大型机虚拟化的核心,许多银行的大型机同时运行着数百个Linux和z/OS虚拟机,而底层正是z/VM。
VM/CMS的市场影响可以用“两重天”来形容。在商业上,它从未成为IBM最赚钱的产品,始终被OS/360/MVS系列压制。MVS(Multiple Virtual Storage)是IBM主推的企业级操作系统,拥有强大的批处理和数据库支持,而VM/CMS被视为“分时玩具”或“测试平台”。但VM/CMS在学术机构和研究实验室中却拥有统治地位。1970年代到1980年代,几乎每一所拥有IBM大型机的大学都安装了VM/CMS,学生和教授通过它编写程序、运行仿真、共享数据。麻省理工学院的ITS(Incompatible Timesharing System)和斯坦福的WAITS等著名分时系统,都在VM/CMS上运行过。VM/CMS还催生了一个活跃的社区文化:用户们通过BITNET(由IBM开发的学术网络)分享CMS脚本、工具和游戏,形成了一种类似后来开源社区的协作氛围。有说法称,VM/CMS的CMS环境是Unix之外最早实现“管道”概念的系统之一——虽然IBM从未正式承认,但CMS的EXEC脚本语言确实允许用户将多个命令串联起来处理数据流。
VM/CMS的文化遗产极其深远,它直接影响了现代虚拟化技术的三大支柱:hypervisor架构、虚拟内存管理和分时调度。VMware的创始人之一门德尔·罗森布鲁姆(Mendel Rosenblum)在斯坦福大学攻读博士时就深入研究过VM/370的论文,他后来在1998年发布VMware Workstation时公开承认:“VM/370是我们的灵感来源。”Xen、KVM等开源hypervisor的设计中,同样可以看到CP的影子。更关键的是,VM/CMS首次证明了“一台物理计算机可以安全、高效地运行多个隔离的操作系统”,这一概念正是云计算的核心——AWS、Azure、Google Cloud的底层都依赖hypervisor将物理服务器切分成虚拟实例。IBM z/VM至今仍在运行,支撑着全球90%的信用卡交易和大部分航空订票系统,它不仅是虚拟化技术的活化石,更是现代数字经济的隐形基石。
轶事与趣闻为VM/CMS的历史增添了人性色彩。传说,VM/370的早期版本有一个著名的bug:如果同时启动超过128个CMS虚拟机,系统会神秘崩溃。开发团队花了数周时间排查,最终发现是CP的调度器在管理超过128个虚拟CPU时,一个16位计数器溢出导致死循环。修复这个bug的工程师后来开玩笑说:“我们那时候觉得128个虚拟机已经多到离谱了,谁会需要更多呢?”另一个广为流传的故事是:1970年代初,IBM的一位销售代表向一家大型银行推销VM/370,银行技术主管问:“我们能用它跑我们的核心业务吗?”销售代表诚实地回答:“理论上可以,但MVS更稳定。”银行最终选择了MVS,但几年后,该银行的技术团队私下搭建了一台VM/370用于开发测试,并惊讶地发现VM/370的可靠性远超预期——因为CP的隔离机制使得一个虚拟机崩溃不会影响其他虚拟机,而MVS的一个内存错误可能导致整个系统宕机。这个故事在IBM内部流传,成为VM/CMS“墙内开花墙外香”的经典注脚。
站在2025年的今天回望,VM/CMS的诞生已经过去了半个多世纪。它的代码早已被重写,架构也历经多次革新,但核心思想——通过软件抽象层将物理资源虚拟化,实现多租户、隔离和灵活调度——依然是现代计算的基础。当你用手机打开一个App,背后可能运行在AWS的Xen虚拟机上;当你通过Zoom参加视频会议,数据可能流经一台z/VM管理的大型机。VM/CMS的故事告诉我们:最伟大的创新往往源于解决一个具体的小问题,而它的影响会在不经意间重塑整个行业。正如IBM剑桥科学中心的一位老工程师所说:“我们只是想让程序员能在同一台机器上同时测试三个操作系统而已,结果我们给世界造了一把万能钥匙。”这把钥匙,至今仍在转动。
对技术发展和工程实践的推动程度
对商业模式和市场格局的影响深度
在科技文化和社会层面的持久影响力
用户群体的广度和普及程度