Unix的诞生和Multics(Multiplexed Information and Computing System)是有一定渊源的。当时开发者Brian Kernighan开玩笑地戏称这个不完善系统MULTICS其实是:“UNiplexed Information and Computing System”,缩写为“UNICS”。于是这个项目被称为UnICS(UniplexedInformation andComputingSystem)。后来,大家取其谐音这个名字被改为UNIX

 

当年的计算机好玩吗?那是相当的难玩啊。如果你想用计算机来做道1+1等于几的数学题,你需要自己用二进制码来编制计算机程序,然后用穿孔纸带打上孔,然后再将纸带塞进计算机,计算机再将结果打在穿孔纸带上,然后你再根据穿孔纸带上的孔,来写出二进制代码,然后再将二进制码翻译成咱们看得懂的话。

法国纺织机械师布乔在19世纪提出穿孔纸带概念

不过,随着305RAMAC以及集成电路的出现,通用型计算机的诞生成为了可能。于是,1964年美国国防部委托麻省理工、贝尔实验室以及通用电气公司开发一种“公用计算机服务系统”,简称MULTICS。

参与MULTICS的科学家

1965年,MULTICS的研发工作正式开展,当初研发的设想是通过建置在美国通用电力公司的大型机GE-645,来连接1000部终端机,支持300的用户同时上线。

通用公司的GE645大型计算机

但是在当时的技术条件下,研发这样的通用操作系统存在了太多难以解决的技术难题。以至于研发进度极为缓慢,直至1969年,MULTICS依然难以问世。随后,贝尔实验室退出了研发队伍,而美国国防部也决定裁撤MULTICS项目,通用公司随即退出。

运行在MULTICS上的软件

但是麻省理工并没有就此罢休,MULTICS最终还是获得了成功。随后,这套系统被麻省理工用作学校的信息管理。在MULTICS中包含了很多现代操作系统的雏形,比如隐藏核心文件,只提供用户界面等等。

    不过,MULTICS最大的贡献,还在于它直接孕育出了UNIX。1969年,在贝尔实验室工作的Ken Thompson和Dennis Ritchie为了让自己编写的游戏能够运行起来,俩人在一台DEC小型计算机上编写了MULTICS的改编版,这就是UNIX。

要说UNIX就得先说说MULTICS。

二战结束以后,冷战开始了。1957年苏联发射了第一颗人造卫星,进而开始筹备发射载人宇宙飞船。与此同时,美国宇航局的研究却连连受挫。航天领域的落后
促使艾森豪威尔下决心划拨巨款支持美国科学界,这一举措让美国的计算机科学以空前的速度发展起来。科学家们开始设想将大型计算机作为一种公共设施,通过许
许多多的终端为用户提供计算时间的“计算机公用事业”,这无疑需要人类从未见过的精密而庞大的工程系统。

MIT于1961年在IBM7094型机器上实现了首个分时系统CTSS(Compatible Time-Sharing
System,相容分时系统),在计算机界享有盛誉。之后的1963年,MIT启动MAC计划。计划以IBM大型机为主体,连接了160台终端,分别位于
教职员家和校区四处,允许30名用户同时使用。然而到了1965年,MAC就已不堪负荷。MIT决定开发更大的分时系统——
MULTICS(MULTiplexed Information and Coputing
System,多路信息与计算系统)。计划中的MULTICS将史无前例地连接1000台终端,支持300名用户同时使用,它将带给计算机界更加成熟的分
时系统理念和新的硬件设计思路。由于IBM无意参与,而通用电气公司(General
Electric)力推他们的GE645主机,MIT与GE合作,又找来贝尔实验室城堡软件工程,开始了新系统的研发。

1969年,奋战了四年的MULTICS还是达不到计划中的性能,贝尔实验室退出了。先天不足的MULTICS还是被装在GE645上供IT使用,而通用
电气在一年之后就完全淡出大型机市场。MULTICS遭到彻底的失败,被潮解为:Many Unnecessarily Large Table In
Core
Sinultaneously。同一时期的IBM的SYSTEM/360等大型机系统的研发都以失败收场,大型机开始受到冷落,小型、微型机上的研发逐渐
活跃起来。
还是在1969年,贝尔实验室的Ken Thompson和Dennis
Ritchie准备把原先为MULTICS设计的名叫“Space
Travel”的游戏移植到他们使用的系统上。可是那时大型机的CPU时间非常贵,他们只好把游戏程序移植到一台没人用的PDP-7小型机上。后来又给程
序中加入了文件管理、进程管理的功能和一组实用工具,一个只能给2个用户使用的系统诞生了。受到MULTICS的影响,Brian
Kernighan玩笑地给系统取名为“UNICS”(UNiplexed Inforation and Computing
System,没路信息与计算系统),取谐音便是“UNIX”。
也许名字贱的孩子真的好养,UNIX取得了MULTICS设想中的成就。

一个失败的操作系统MULTICS的更多相关文章

  1. [Hyper-V]制作一个干净的操作系统模板

    描述: 在Hyper-V里创建虚拟机的时候,我们可以先来创建一个干净的操作系统,将其制作为操作系统模板,该虚拟机的磁盘文件也将被视作基础磁盘以方便基于它创建差异化磁盘 安装其它虚拟机的时候就可以差异化 ...

  2. 定制一个winCE5.0操作系统

    定制一个winCE5.0操作系统 2009-04-01 09:01:14|  分类: winCE|字号 订阅     定制一个操作系统并模拟器上运行,需要以下几个步骤: STEP 1:用Platfor ...

  3. 1、了解计算机与操作系统发展阶段 2、选择一个具体的操作系统,结合计算机与操作系统的发展阶段,详细了解其渊源、发展过程、趋势,整理成简洁美观的图文博客发布。 Windows Mac os x Unix Linux Android 等。

    1.了解计算机与操作系统发展阶段 操作系统并不是与计算机硬件一起诞生的,它是在人们使用计算机的过程中,为了满足两大需求:提高资源利用率.增强计算机系统性能,伴随着计算机技术本身及其应用的日益发展,而逐 ...

  4. 面试题: 多个 await 处理,有一个失败,就算作失败

    面试题: 多个 await 处理,有一个失败,就算作失败 ? Promise.all([p1, p2, p3....])    // 返回的也是一个 Promise 对象 -------- asait ...

  5. 【微信支付】分享一个失败的案例 跨域405(Method Not Allowed)问题 关于IM的一些思考与实践 基于WebSocketSharp 的IM 简单实现 【css3】旋转倒计时 【Html5】-- 塔台管制 H5情景意识 --飞机 谈谈转行

    [微信支付]分享一个失败的案例 2018-06-04 08:24 by stoneniqiu, 2744 阅读, 29 评论, 收藏, 编辑 这个项目是去年做的,开始客户还在推广,几个月后发现服务器已 ...

  6. 自己制作一个简单的操作系统二[CherryOS]

    自己制作一个简单的操作系统二[CherryOS] 我的上一篇博客 自己制作一个简单的操作系统一[环境搭建], 详细介绍了制作所需的前期准备工作 一. 一点说明 这个操作系统只是第一步, 仅仅是开机显示 ...

  7. 同一个dll 不同路径下注册 一个失败 一个成功

    一个路径下用regsvr32注册成功,一个注册失败,提示平台不兼容. 最后用depends查看依赖的dll,发现依赖的dll有问题,从注册成功的路径下复制一个过来,重新注册就成功了

  8. android socket编程用Bufferreader读取的一个失败教训

    由于我的手机需要用笔记本开的wifi,躺在床上玩手机时需要关电脑或者是要让电脑放歌的时候总是不想下床,于是我想能不能用一个APP,然后通过局域网实现在手机上对电脑进行操控呢?说干就干. 我在电脑上用的 ...

  9. 历数PC发展史上的祖先们

    转自泡泡网:http://www.pcpop.com/doc/0/774/774178_all.shtml 本文导航 第01页:这几十亿晶体管的前辈是? 第02页:编辑发明的QWERTY键盘 第03页 ...

随机推荐

  1. 自适应Cell

        // //  ViewController.m //  04-自适应cell // //  Created by 

  2. android笔试题

    1.请谈一下Android系统的架构. 答:Android系统采用了分层架构,从高层到低层分别是应用程序层.应用程序框架层.系统运行库层和linux核心层.   2.谈谈android大众常用的五种布 ...

  3. QF——iOS代理模式

    iOS的代理模式: A要完成某个功能,它可以自己完成,但有时出于一些原因,不方便自己完成.这时A可以委托B来帮其完成此功能,即由B代理完成.但是这个功能不是让B随随便便任其完成.此时,会有一个协议文件 ...

  4. SQLServer 中实现类似MySQL中的group_concat函数的功能

    SQLServer中没有MySQL中的group_concat函数,可以把分组的数据连接在一起. 后在网上查找,找到了可以实现此功能的方法,特此记录下. SELECT a, stuff((SELECT ...

  5. Eclipse开发工具学习之道:用Eclipse生成jar文件

    很多人都不知道怎么在Eclipse下生成jar文件,或者生成了jar文件后又老是用不了,总是会收到 Exception in thread "main" java.lang.NoC ...

  6. velocity 字符串 转化为数字

    #set($nPageIndex=$request.getParameter("nIndex")) #set($Integer = 0 ) #set($FrontPageSize= ...

  7. CentOS(minimal)+Nginx+php+mysql实现宿主访问虚拟机

    /* 1.先解决上网 1-1.参照联网状态文件 # cd /etc/sysconfig/network-scripts # vi ifcfg-eth0 1-2.编辑联网状态文件 详见图1-2 1-3. ...

  8. loading 动画效果(收藏起来以后留着慢慢用)

    动画效果一: html代码: <div class="spinner">   <div class="rect1"></div&g ...

  9. virtualBox使用nat模式下ssh连接

    virtualBox本地虚拟机通过ssh连接一般可通过桥接模式和Nat模式 桥接模式下,共享本地主机网卡,在同一个局域网之下,直接获取Ip地址就可以进行连接了. Nat模式下,获取的Ip与本地主机不是 ...

  10. 新手笔记-tftp与yum

    lspci 查看pci插槽设备 lsusb  查看USB设备 tftp 配置文件 /etc/xinetd.d/tftp tftp 根目录 /var/lib/tftpboot service xinet ...