Multics System学习心得

张家骥+中科大软件学院+原创内容转载请注明出处

Mulitcs概述

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年前发布后,已作为现代操作系统设计的模型。
这里写图片描述

UNIX与MULTICS

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中的很大一部分程序是用其自身即CTSS来编写的,这在软件的继承性上是一次成功的尝试。
三:全部系统程序是用高级语言PL/I编写的,这就使系统程序在功能上独立于机器,极大地提高了系统的可移植性,也使它的普及较为容易。

Introduction and Overview of the Multics System

Multics (多路复用信息和计算服务) 是一个综合的、 通用的编程系统正在开发作为一个研究项目。初始 Multics 系统将 GE 645 计算机上实施。整体的设计目标之一是创建一个计算系统是能够满足几乎所有的大型计算机实用程序的目前和不久的将来的要求。这种系统必须连续、 可靠地运行 7 天一周,类似于电话或电源系统的方式每天 24 小时,并且必须能够满足广泛的服务需求: 从多种人机交互到顺序处理的缺席用户作业 ;从使用专用的语言和子系统的系统本身 ; 编程系统而且从集中的批量卡,磁带和打印机设施远程位于终端。这种信息处理和通信系统被认为,必须对计算机的使用,在商业、 工业、 政府、 科学实验室以及刺激的应用程序,否则将撤消未来的增长。
因为该系统最终必须全面和能够适应未知未来的需求,其框架必须是通用的,并且能够随时间的演化。拉出来的时候在同伴论文 [1-5],这种需要进化框架影响和贡献很多系统的设计,是一个主要的原因,为什么大部分的系统的规划将在 PL / I的语言。[6] 因为 PL / 我的语言是很大程度上独立于机器 (例如数据说明请参阅逻辑项目,不是物理的单词),系统也应该。具体来说,它被希望将来的硬件改进不会使过时的系统和用户程序和其他合适的计算机上的整个系统的实施将需要额外的编程的少,只有适量。
本论文尝试详细的讨论了设计目标,因为它们涉及到系统的主要领域。一些随后的文件的亮点是: 虚拟内存系统中的为每个用户提供了包括二维分段和分页 ;动态链接的程序段交叉引用在执行时间,以尽量减少系统开销 ;常规使用的共享,递归的纯粹的程序编程系统内作为正常运作模式 ;统筹的使用的多个处理器、 内存模块和输入输出控制器 ;和多道程序设计的所有资源和多个用户。将由一个文件系统提供复杂的辅助存储媒体和存储的信息的备份、 检索和维护规程的自动管理。此外,预期大多数软件的系统将几乎完全相同的形式向用户程序。该系统将为用户和系统程序都自动翻页。

介绍

计算机已经成熟过去二十年间从好奇到计算到信息处理器的机器,给

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值