【创世纪厅】
1961年,CTSS (Compatible Time-Sharing System)正式问世。由MIT 计算中心主导开发,面向MAINFRAME平台用户。
分时系统的先驱,让多人共享计算机成为现实。
技术特色:操作系统、分时系统、MIT。
影响力评估:技术维度 10/10,商业维度 6/10,文化维度 8/10,用户维度 7/10。
作为创世纪厅的经典代表,CTSS (Compatible Time-Sharing System)在软件发展史上留下了深刻的印记。
分时系统的先驱,让多人共享计算机成为现实。
【创世纪厅】
1961年,CTSS (Compatible Time-Sharing System)正式问世。由MIT 计算中心主导开发,面向MAINFRAME平台用户。
分时系统的先驱,让多人共享计算机成为现实。
技术特色:操作系统、分时系统、MIT。
影响力评估:技术维度 10/10,商业维度 6/10,文化维度 8/10,用户维度 7/10。
作为创世纪厅的经典代表,CTSS (Compatible Time-Sharing System)在软件发展史上留下了深刻的印记。
1961年,当CTSS(Compatible Time-Sharing System)在麻省理工学院(MIT)的计算中心首次运行的时候,世界上的绝大多数人还从未见过计算机。那些有幸接触过计算机的人,回忆起的往往是这样的场景:一间巨大的、恒温的、铺着活动地板的机房,里面是一排排闪着微光的机柜,它们由成千上万个真空管或晶体管构成,发出嗡嗡的低沉噪音。而“使用”计算机的过程,更像是一种虔诚而漫长的仪式。程序员需要先在纸上用铅笔和尺子设计好程序,然后用穿孔机制作一叠厚厚的卡片——每张卡片上是一行代码或一条指令。这叠卡片被小心翼翼地送到操作员窗口,然后就是漫长的等待。几个小时,甚至一天之后,你才能取回一叠打印纸,上面要么是计算结果,要么是醒目的“ERROR”字样。如果错了,整个循环就必须重来。这就是批处理时代,计算机是笨重、昂贵且傲慢的巨兽,它只接受指令,从不与你对话。而CTSS,正是打破这堵高墙的第一把利斧。
要理解CTSS的革命性,就必须先理解它诞生的那个技术与社会交汇的独时刻。20世纪50年代末,计算机的性能在摩尔定律尚未提出之前,就已经开始以惊人的速度增长。IBM 7090这样的晶体管计算机,运算速度已经远超前辈,但高昂的成本(一台7090的售价高达数百万美元)使得它们只能被极少数大学、政府和大型企业所拥有。在这种稀缺性下,如何最大化利用计算机的算力,成了所有计算中心的头等大事。批处理系统应运而生,它通过将多个作业排队,让计算机在无人值守的情况下连续运行,确实极大地提高了硬件利用率。但代价是,人与机器的交互被彻底切断。程序员变成了“代码的提交者”,而非“机器的用户”。这种模式对于调试复杂程序来说,效率低得令人发指。一个简单的语法错误,可能因为一个卡片的歪斜而需要耗费一整天才能被发现。
就在这种背景下,一位名叫约翰·麦卡锡(John McCarthy)的年轻教授,开始思考一个颠覆性的问题:如果计算机可以同时为多个用户服务,每个人都能实时地与它交互,那会怎样?麦卡锡当时刚从达特茅斯学院来到MIT,他因在1956年达特茅斯会议上提出“人工智能”这一术语而声名鹊起。但他更实际的兴趣在于,如何让程序员能够更自然地与计算机对话。他设想了一个系统,计算机的中央处理器(CPU)以极快的速度在多个用户的任务之间切换,每个用户只占用一秒钟的极小一部分——比如几十毫秒。由于人的反应速度远慢于计算机,这种快速的切换会给每个用户造成一种错觉:整个机器都是他一个人的。这个想法在今天看来理所当然,但在当时,它直接挑战了“效率”的教条。批处理的支持者会问:让CPU频繁地在任务间切换,这不是浪费宝贵的计算周期吗?麦卡锡的回答是:浪费的只是机器的时间,而节省的是人的时间。人的时间比机器的时间更宝贵。这个哲学上的翻转,是分时系统诞生的思想基石。
麦卡锡的构想很快在MIT内部引起了共鸣。1961年,MIT获得了美国国防部高级研究计划局(ARPA)的资助,启动了著名的“MAC项目”(Project MAC)。MAC在这里有多重含义,既是“多路存取计算机”(Multiple Access Computer)的缩写,也指代“机器辅助认知”(Machine-Aided Cognition)。这个项目的目标非常明确:研究如何让计算机成为真正可共享的资源,就像电话或电力一样。项目的主持人是罗伯特·费尔普斯(Robert Fano),一位在信息论领域卓有建树的教授。而负责将麦卡锡的设想变成现实的核心人物,则是一位名叫费尔南多·J·科巴托(Fernando J. Corbató)的年轻系统程序员。
科巴托,同事们通常叫他“科比”(Corby),是一位极具远见和耐心的工程师。他后来在回忆CTSS的开发时曾说,当时最大的挑战不是技术,而是“文化”。计算中心的管理者们习惯于将计算机视为需要严密保护的稀有资源,而分时系统意味着要让多个、甚至可能是几十个用户同时通过电传打字机(Teletype)登录进来,这在他们看来无异于“打开水闸”。科巴托和他的团队需要说服所有人,这种看似混乱的共享模式,实际上能带来更高的总体生产力。他们从IBM 709计算机开始着手,但很快发现709的硬件无法支持他们需要的中断和内存保护机制。于是,他们转向了更新的IBM 7090,并为其设计了一套特殊的硬件改造——也就是“分时时钟”和“内存保护寄存器”。这些硬件上的微小改动,为软件上的革命铺平了道路。
CTSS的核心技术,用今天的眼光看,简单而优雅。它采用了一种被称为“时间片轮转”(Round-Robin Scheduling)的算法。系统为每个用户分配一个极短的时间片,比如100毫秒。当一个用户的时间片用完后,操作系统会通过一个硬件时钟产生的中断,立即暂停当前程序,保存它的所有寄存器状态到内存中,然后加载下一个等待用户的程序状态,并恢复其运行。这个过程被称为“上下文切换”。为了让多个用户互不干扰,CTSS引入了内存保护机制。每个用户程序被限制在属于自己的内存区域内,无法访问其他用户或操作系统的空间。如果某个用户程序试图越界,硬件会立即触发一个保护错误,系统会强制终止该程序,而不会影响其他用户。这种“保护模式”是现代操作系统的基本特征,而CTSS是第一个在主流商用计算机上实现它的系统。
用户通过什么与CTSS交互呢?答案是电传打字机,特别是IBM 1050或类似型号。这些设备看起来就像是一台打字机连接了一个笨重的金属盒子。用户坐在电传打字机前,敲入命令,CTSS会在一两秒内做出响应,将结果打印在卷纸上。没有屏幕,没有图形,只有一行行单调的字符。但对于当时的程序员来说,这已经是神迹了。他们不再需要将卡片交给操作员,然后等待几个小时。他们可以直接在终端上输入程序,运行它,看到错误信息,修改,再运行。这个循环从一天缩短到了几分钟。一位早期的CTSS用户后来回忆说,当他第一次通过电传打字机登录系统,看到“欢迎”提示符时,他激动得几乎要哭出来。他感觉计算机第一次在对他说话,而不是仅仅在为他计算。
CTSS的诞生,不仅仅是技术上的突破,它还催生了无数我们今天习以为常的计算文化。其中最具代表性的,就是“邮箱”概念的引入。当时,CTSS的用户之间需要一种非实时的沟通方式。科巴托的团队设计了一个简单的命令:用户可以给另一个用户的“邮箱”发送一条文本消息。这个“邮箱”实际上就是系统目录下的一个特殊文件。当收件人下次登录时,系统会提示“您有新邮件”。这就是电子邮件的雏形。虽然早期的邮件只能在同一台CTSS主机的用户之间传递,但它已经具备了现代邮件的所有核心要素:发送、接收、存储、转发。这个看似微小的功能,彻底改变了人们协作的方式。它不再依赖电话或便条,而是创造了一种异步的、可存档的沟通渠道。
另一个重要的文化产物是“在线社区”。由于多个用户可以同时登录,CTSS很快就不再仅仅是一个编程工具,它变成了一个社交空间。用户们会在系统里互相发送消息,讨论问题,甚至玩一些简单的文字游戏。MIT的工程师们发现,深夜时分,当大多数学生都离开后,CTSS的终端前往往还坐着一些“夜猫子”,他们并非在写重要的程序,而是在和远在另一栋楼的同事聊天。这种在线的、基于文本的社交文化,直接影响了后来的BBS、即时通讯软件,乃至今天的社交网络。可以说,CTSS不仅是分时系统的鼻祖,也是网络社交文化的第一个温床。
在发展的历程中,CTSS经历了多次迭代。最初它运行在IBM 7090上,支持大约30个用户。随着IBM推出更强大的7094,CTSS也被移植过去,支持的用户数增加到了约60个。1963年,CTSS上运行了第一个正式的在线文本编辑器——ED,以及一个名为“RUNOFF”的文本格式化程序。RUNOFF是后来所有文字处理软件的祖先,它的名字甚至被直接继承到了UNIX的“nroff”和“troff”命令中。1965年,CTSS上还出现了第一个基于分时系统的在线会议系统,允许用户在一个虚拟的“房间”里实时讨论。这些应用,每一个都开创了一个全新的软件类别。
然而,CTSS最深远的影响,并不在于它本身,而在于它孕育的下一代系统。1964年,MIT、贝尔实验室和通用电气公司(GE)联合启动了“MULTICS”项目(MULTiplexed Information and Computing Service)。MULTICS的目标是构建一个更宏大、更安全、更强大的分时系统,它被设计为一种“计算公用事业”,就像电话网络一样无处不在。CTSS的创始人科巴托正是MULTICS的核心设计者之一。许多CTSS的概念,如层次化文件系统、动态链接、安全环(Ring)保护机制,都在MULTICS中得到了极大的发展和完善。虽然MULTICS本身因为过于复杂而未能完全达到其商业目标,但它对后来的操作系统,尤其是UNIX,产生了决定性的影响。肯·汤普森(Ken Thompson)和丹尼斯·里奇(Dennis Ritchie)在贝尔实验室开发UNIX时,正是MULTICS的参与者。他们从MULTICS(以及其前身CTSS)中汲取了无数灵感,包括文件系统的层次结构、Shell的概念、以及将设备视为文件的思想。可以说,没有CTSS,就没有MULTICS;没有MULTICS,就没有UNIX;而没有UNIX,我们今天所知的整个互联网和开源软件世界,都将面目全非。
CTSS的市场影响,用今天的标准看,几乎为零。它不是一个商业产品,而是一个研究项目。它只运行在MIT的几台大型机上,从未向外界销售。但它的影响力,却远远超过了任何商业软件。CTSS的学术论文,特别是1962年由科巴托、麦卡锡等人合著的《分时计算机系统》一文,被全球的计算机科学家争相传阅。它像一颗种子,在世界各地的大学和研究机构中生根发芽。加州大学克利分校、斯坦福大学、卡内基梅隆大学等,都基于CTSS的思想,开发了自己的分时系统。IBM公司也注意到了分时系统的潜力,后来推出了TSS/360系统,虽然商业上不算成功,但标志着一家大型企业正式承认了分时的价值。
在轶事趣闻方面,CTSS社区流传着许多有趣的故事。据说,当时MIT的计算机房里,电传打字机的噪音非常大,几十台机器同时噼啪作响,就像一场永不停息的打字机暴雨。但程序员们却对此甘之如饴,因为他们知道,每一次噼啪声,都意味着他们的程序正在被运行。还有一个广为流传的段子:一位教授为了测试CTSS的响应速度,在终端上输入了一个简单的循环程序。结果,由于他输入了一个无限循环,并且没有设置时间限制,这个程序占用了所有可用的计算时间,导致其他所有用户都感觉系统“卡住”了。当然,CTSS的调度器很快发现了这个异常,并强制终止了该程序。这个故事生动地展示了分时系统中“公平调度”的重要性——一个失控的程序不能拖垮整系统。
CTSS的硬件配置也颇为有趣。它运行在IBM 7090/7094计算机上,内存最初只有32K个36位字(约144KB),后来扩展到64K字。它的外存是几台巨大的IBM 1301磁盘驱动器,每个盘片直径达24英寸,容量却只有区区几兆字节。而连接用户的电传打字机,则通过低速的串行线路连接到一台称为“Direct Data Connection”的专用控制器上。整个系统庞大、昂贵、笨重,但它所承载的思想,却是无比轻盈和超前的。
如今,当我们坐在个人电脑前,打开浏览器,同时运行着十几个程序,或者在手机上刷着社交网络时,我们已经很难想象,这一切的起点,竟然是一台重达数吨、占据了整个房间、只服务几十个人的巨型计算机。CTSS就像一座被遗忘的丰碑,静静地矗立在计算机历史的黎明之中。它没有华丽的图形界面,没有丰富的应用软件,但它第一次证明了,计算机可以是一种协作的、互动的、人性化的工具。它打破了“一人一机”的垄断,开启了“多人一机”的共享时代。而这个共享的思想,最终演化成了今天无处不在的云计算和网络服务。
在博物馆的展柜里,或许会陈列着CTSS的原始穿孔卡片、一份泛黄的《分时计算机系统》论文打印稿,以及一台锈迹斑斑的IBM 1050电传打字机。它们沉默不语,但如果你俯身倾听,仿佛还能听到1961年那个秋天,MIT机房中传来的第一声清脆的敲击声。那是一个新时代的序曲。CTSS的遗产,不仅在于它创的技术,更在于它确立的信念:计算机应该服务于人,而不是要求人去适应计算机。它让计算从一种需要预约的稀缺资源,变成了一种可以随手取用的日常工具。从这个意义上说,CTSS是每一个现代计算机用户的祖先,是我们这个数字文明的共同起点。
对技术发展和工程实践的推动程度
对商业模式和市场格局的影响深度
在科技文化和社会层面的持久影响力
用户群体的广度和普及程度