Multics,全名MULTiplexed Information and Computing System,是1964年由贝尔实验室、麻省理工学院及美国通用电气公司所共同参与研发的,是一套安装在大型主机上多人多任务的操作系统。
MULTICS以Compatible Time-Sharing System(CTSS)做基础,建置在美国通用电力公司的大型机GE-645。目的是连接1000部终端机,支持300的用户同时上线。1969年,因MULTICS计划的工作进度过于缓慢,最后终究遭裁撤的命运,贝尔实验室退出此计划。当时,肯·汤普逊正在撰写一个称为“星际旅行”(Space Travel)的游戏程序。Multics 计划停止后,由贝尔实验室的两位软件工程师肯·汤普逊与 丹尼斯·里奇以C语言为基础而发展出UNIX。
2009年10月标志着在计算史上的重要里程碑。正是40年前首个Multics计算机系统在麻省理工学院被用做信息管理。Multics(Multiplexed Information and Computing Service)是认为是现代操作系统的基础。Multics是加快Unix发展的催化剂,在它40年前发布后,已作为现代操作系统设计的模型。
简介编辑本段回目录
Multics,全名MULTiplexed Information and Computing System,是1964年由贝尔实验室、麻省理工学院及美国通用电气公司所共同参与研发的,是一套安装在大型主机上多人多任务的操作系统。MULTICS以Compatible Time-Sharing System(CTSS)做基础,建置在美国通用电力公司的大型机GE-645。目的是连接1000部终端机,支持300的用户同时上线。1969年,因MULTICS计划的工作进度过于缓慢,最后终究遭裁撤的命运,贝尔实验室退出此计划。当时,Ken Thompson撰写一个称为“星际旅行”(Space Travel)的游戏程序。Multics 计划停止后,由贝尔实验室的两位软件工程师 Thompson 与 Ritchie 以C语言为基础而发展出UNIX。
UNIX与MULTICS编辑本段回目录
UNIX家族及类UNIX系统
1969年,在AT&T的Bell Labs,Ken Thompson和Dennis Ritchie(他们曾是大型操作系统Multics的两名开发者,Multics太庞大了最终没有成功)为了一项名为太空旅游的实验计划,需要一个操作系统。他们找了一台闲置的PDP-7机器,在上面写了个Multics的改编版,1971年正式发布。这个东东就是后来名扬天下的UNIX了。Multics——UNIX,大家看出了点什么吗?
1973年,Dennis Ritchie用他自己开发的C语言重写了一遍UNIX,奠定了UNIX普及化的基础。1976年他们首次将第六版的UNIX流传到AT&T以外的地方。 UC Berkeley的人以UNIX 7.0为基础,发表了称作BSD的系统,并且开发到1992年的4.4版;而AT&T也不断改进他们的系统,发表了商业化的System Ⅲ直到System Ⅴ。以后UNIX的发展都是围绕这两大主流展开的。
UNIX的设计目标是小而美:希望能在任何小系统上执行,而核心只提供必不可少的一些功能,其他的则根据需要加上去。这已经成为操作系统的一种设计哲学。现在许多公司有了自己的UNIX版本,但它们基本特性是一致的:开放性、多用户、多任务、功能强、实现高效、网络功能丰富。为了克服UNIX版本差异对可移植性的损害,1990年ISO制定了ISO/IEC 9945-1-1990标准,这是整个可移植操作系统界面(POSIX)的第一部分;系统应用程序界面即POSIX.1。这就是常说的UNIX操作系统的界面标准。
UNIX诞生于上个世纪六十年代末期的AT&T。它的诞生和另外一个失败的操作系统项目,MULTICS有很大的关系。软件工程的研究发现了一个很有趣的现象:如果一个软件系统项目的第一代很成功,那么它的第二代项目很可能就会以失败而告终。有一种可能的解释认为当人们在第一次做某一个问题时,其预期的目标往往不会太高,这往往也会更为现实一些,所以成功的机会比较大。当第一代系统成功之后,设计者往往会被胜利冲昏头脑。此时在设计第一代系统时被放弃的种种想法就会重新回到设计者的头脑之中,其结果是在这个新的系统中会有着种种看起来非常具有吸引力的预期目标和特性。可能正是这些过多不切实际的特性使得所设计的系统过于复杂而最终导致失败。MULTICS就是这样的一个第二代系统,其前身就是第一代分时操作系统CTSS。分时操作系统的想法最初是由约翰·麦卡锡提出来的,他因为在人工智能领域的杰出贡献而被授予了1971年的ACM图灵奖。由于第一代分时系统的巨大成功,所以在设计第二代分时系统MULTICS的时候,人们赋予了它太多的期待,希望在这一套系统中实现很多在当时还是概念型的想法。正是这些美妙的期待压垮了MULTICS。并不是说这些概念和想法不好,实际上恰恰相反,在MULTICS中提出来的很多想法和概念被它的后继者成功地继承了下来并在实际中证明了它们地有效性。比如说用高级语言来编写操作系统,文件目录地层次结构等等。MULTICS是第一个使用高级语言来编写的操作系统。在此之前的操作系统使用汇编语言来实现。使用高级语言来编写操作系统有很多地优点,但是对编写它的高级语言也有一些特殊的要求。编写MULTICS所使用地是IBM设计的一种语言PL/I。不幸的是,PL/I当时还处于草创阶段,无力肩负编写操作系统这样的重担。当时参加MULTICS项目的单位很多,AT&T是其中的一家。经过漫长而无望的痛苦挣扎之后,AT&T退出了该项目,当然也就撤回了参加该项目的人员。
评价编辑本段回目录
multics, 就商业角度来讲,是个失败的操作系统,就理念上来讲,这个系统实在是有点超前了,但我觉得超前并不是失败的主因,主因是他有那种不可一世大公司的烙印:求全。打个不恰当的比方,就是希望长江从青藏高原出来就有入海口那种规模。其实大公司财力雄厚的优势主要体现在他们可以有更多的砌砖匠,而不是他们可以招揽更多的天才;尤其是在硬件越来越不成为制约的今天……
Multics历史图片编辑本段回目录
下面是Multics历史上图片库。
《黑客道简史》 第二章 Unix兴起编辑本段回目录
1969年,在ARPAnet光辉照耀不到的新泽西郊外,正有人在酝酿着什么,最终PDP-10的传统也将为此颠覆。ARPAnet诞生的那一年,贝尔实验室的黑客肯·汤普森(Ken Thompson)发明了Unix。
汤普森曾经参与了Multics的研发,这是一个与ITS拥有共同先祖[1]的分时操作系统。Multics可以说是一个试验台,通过它,人们尝试是否可以将复杂的操作系统(甚至是绝大部分程序)隐藏起来,不让用户直接接触。这样就能从外部简单的操控(甚至是编辑)Multics,这可谓是质的突破。
当Multics变得臃肿并最终成为一个累赘的时候,贝尔实验室退出了(稍后,这个系统被霍尼韦尔公司推向了市场,但是没能成功)。在失去Multics作业环境之后,肯·汤普森找来了一台闲置的DEC PDP-7型计算机,打算在这上面将Multics的理念和自己的创想合二为一。
另一位叫丹尼斯·里奇(Dennis Ritchie)的黑客针对汤普森摇篮里的Unix开发了一种新的语言——C语言。如同Unix一样,C语言的设计非常出色,严谨而不失弹性。这些工具在贝尔实验室中流行开来,在大家的帮助下汤普森和里奇的申请终于在1971年得以通过。他们被授权为内部开发一套我们现在所说的“事务工作自动化系统”(office automation system)。[3]然而汤普森和里奇的雄心却远不止于此。
当时的传统观点认为,操作系统必须用严密的汇编程序编写,这样才能“榨干”主机得到最大效能。汤普森和里奇却相信,当时的硬件和编译器技术已经很成熟,足可以担负一个全部由C语言编写的操作系统了。终于,1978年Unix就已经可以成功的移植到多种机型上了。
这是史无前例,意义深远的。也就是说,如果Unix能在不同的机型上展现相同的界面和能力,它就可以被作为一个通用软件环境。用户需要每次为一种机型担负整套新软件的日子一去不复返了。黑客们可以将软件工具包移入不同的机器,这可比每次重新“生火、造轮子”要强得多了。
除了可移植性之外,Unix和C语言还有许多显著优势。它们都秉承了“KISS”设计哲学[4]。程序员可以轻松掌握C语言的逻辑结构(这与之前和之后的语言都大不一样),而不必整天翻阅用户指南。而Unix则可以看作是一个颇具弹性的工具包,由许多独立设计的程序有效地相互连接而成。
Unix和C语言应用范围之广,有时甚至是完全出乎设计者意料的。虽然没有什么正式的推广计划,但是它们还是迅速在AT&T内部传播开来。到了1980年,已经蔓延到为数众多的大学和计算研究机构,还有数以千计的黑客想把它们带回家。
早期Unix文化中的主力机型是PDP-11和其后裔——VAX。由于Unix具有高度的可移植性,所以能在为数众多的机器上原封不动的运行,而并不局限于那些接入ARPAnet的机器。[5]没人再用汇编程序了,C程序欣然进驻了所有机器。
Unix甚至有了自己的网络,各式各样的UUCP。[6]低速,不稳定却成本低廉。两台Unix机器可以通过普通的电话线相连,交换点对点电邮。这个功能并非一个可选组建,而是被写入了系统。1980年,第一个Usenet站点开始交换广播新闻[7],借此形成的巨大的分布式电子公告板系统,将会迅速成长并超越ARPAnet。围绕Usenet,Unix站点开始形成了自己的网络疆域。
一些Unix站点本身是基于ARPAnet的。这样PDP-10和Unix/Usenet文化就开始在边缘交汇,融合。融合在一开始并不是一帆风顺的。PDP-10黑客把Unix用户视作是一堆暴发户,与LISP和ITS令人爱不释手的复杂华美相比,他们的工具简直原始到可笑。“刀耕火种的家伙”,他们嘟囔道。
除此之外,这里还有第三路人马。第一台个人电脑在1975年进入市场,1977年苹果公司成立,随后的几年里创新以几乎难以置信的速度喷涌而至。微型计算机的轮廓日渐明朗,这吸引到了另一代睿智的年青黑客。他们使用BASIC语言,无论是PDP-10游击队还是Unix信徒,在他们眼中都原始的不值一提。
1.这里是指“兼容分时系统”(Compatible Time-Sharing System,CTSS)。
2.也就是后台运行,而用户只需要使用命令。
3.这里是说贝尔实验室拨款给他们添置了一台 PDP-11/20
4.KISS是“Keep It Simple, Stupid”的缩写,即“务求简约”。
5.在这一时期,接入ARPAnet的主力机型也是PDP-11和VAX。
6.UUCP,UUCP是Unix-to-Unix Copy的缩写,是一组软件程序,所以说是“各式各样”的。
7.Usenet,又称友思网。是一种(最初)基于UUCP的世界性新闻组网络系统。广播新闻是指Usenet中的一个站点向网络(局域网或广域网)上所有其他站点发送消息。
麻省理工学院放出MULTICS系统源代码编辑本段回目录
被 认为是UNIX和所有现代操作系统的起源,1964年由贝尔实验室、MIT、GE共同开发的MULTICS系统,虽然在2000年已经将最后一台使用的机 器关闭,而麻省理工现在将它全部的原始码公布在网络上让人下载,其早期使用的许多崭新概念,如︰分时多任务、动态连接以及阶层系统,都对日后的UNIX发 挥相当的影响,虽然现在已经没有可以运作MULTICS的机器,可是原始码的释出对计算机及科学研究的相关人员仍有相当帮助,并且或许将来依旧会有虚拟技 术可以模拟出MULTICS的相关运作环境也说不定。
以下是新闻撷取
引言:
引言:
"Extraordinary news for computer scientists and the Open Source community was announced over the weekend, as the source code of the MULTICS operating system (Multiplexed Information and Computing Service), the father of UNIX and all modern OSes, has finally been opened.
全文网址
http://slashdot.org/article.pl?sid=07/11/13/1710224
MULTICS原始码公布网址
http://web.mit.edu/multics-history/
相关链接编辑本段回目录
- Multics papers online
- Multics glossary
- Myths discusses numerous myths about Multics in some detail, including the myths that it failed, that it was big and slow, as well as a few understandable misapprehensions
- Multics security
- Unix and Multics
- Multics general info and FAQ Includes extensive overview of other software systems influenced by Multics
参考文献编辑本段回目录
http://en.wikipedia.org/wiki/Multics
http://www.multicians.org/general.html
http://www.multicians.org/general.html