一个失败的操作系统MULTICS
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的更多相关文章
- [Hyper-V]制作一个干净的操作系统模板
描述: 在Hyper-V里创建虚拟机的时候,我们可以先来创建一个干净的操作系统,将其制作为操作系统模板,该虚拟机的磁盘文件也将被视作基础磁盘以方便基于它创建差异化磁盘 安装其它虚拟机的时候就可以差异化 ...
- 定制一个winCE5.0操作系统
定制一个winCE5.0操作系统 2009-04-01 09:01:14| 分类: winCE|字号 订阅 定制一个操作系统并模拟器上运行,需要以下几个步骤: STEP 1:用Platfor ...
- 1、了解计算机与操作系统发展阶段 2、选择一个具体的操作系统,结合计算机与操作系统的发展阶段,详细了解其渊源、发展过程、趋势,整理成简洁美观的图文博客发布。 Windows Mac os x Unix Linux Android 等。
1.了解计算机与操作系统发展阶段 操作系统并不是与计算机硬件一起诞生的,它是在人们使用计算机的过程中,为了满足两大需求:提高资源利用率.增强计算机系统性能,伴随着计算机技术本身及其应用的日益发展,而逐 ...
- 面试题: 多个 await 处理,有一个失败,就算作失败
面试题: 多个 await 处理,有一个失败,就算作失败 ? Promise.all([p1, p2, p3....]) // 返回的也是一个 Promise 对象 -------- asait ...
- 【微信支付】分享一个失败的案例 跨域405(Method Not Allowed)问题 关于IM的一些思考与实践 基于WebSocketSharp 的IM 简单实现 【css3】旋转倒计时 【Html5】-- 塔台管制 H5情景意识 --飞机 谈谈转行
[微信支付]分享一个失败的案例 2018-06-04 08:24 by stoneniqiu, 2744 阅读, 29 评论, 收藏, 编辑 这个项目是去年做的,开始客户还在推广,几个月后发现服务器已 ...
- 自己制作一个简单的操作系统二[CherryOS]
自己制作一个简单的操作系统二[CherryOS] 我的上一篇博客 自己制作一个简单的操作系统一[环境搭建], 详细介绍了制作所需的前期准备工作 一. 一点说明 这个操作系统只是第一步, 仅仅是开机显示 ...
- 同一个dll 不同路径下注册 一个失败 一个成功
一个路径下用regsvr32注册成功,一个注册失败,提示平台不兼容. 最后用depends查看依赖的dll,发现依赖的dll有问题,从注册成功的路径下复制一个过来,重新注册就成功了
- android socket编程用Bufferreader读取的一个失败教训
由于我的手机需要用笔记本开的wifi,躺在床上玩手机时需要关电脑或者是要让电脑放歌的时候总是不想下床,于是我想能不能用一个APP,然后通过局域网实现在手机上对电脑进行操控呢?说干就干. 我在电脑上用的 ...
- 历数PC发展史上的祖先们
转自泡泡网:http://www.pcpop.com/doc/0/774/774178_all.shtml 本文导航 第01页:这几十亿晶体管的前辈是? 第02页:编辑发明的QWERTY键盘 第03页 ...
随机推荐
- TCP为什么需要3次握手与4次挥手
为什么需要“三次握手” 在谢希仁著<计算机网络>第四版中讲“三次握手”的目的是“为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误”.在另一部经典的<计算机网络> ...
- ORA-600[kcratr_scan_lastbwr]逻辑坏块解决
数据库版本: 11.2.0.3 问题现象: 今天在启动一台测试数据库的时候,发现db不能open,报错如下: ERROR at line 1: ORA-00600: internal error co ...
- mysql开启慢查询方法
1,配置开启 Linux: 在mysql配置文件my.cnf中增加 log-slow-queries=/var/lib/mysql/slowquery.log (指定日志文件存放位置,可以为空,系统会 ...
- Docker镜像与仓库(二)Dockerfile
Docker镜像文件与仓库(二) Docker镜像文件与仓库(二) Dockerfile指令 Dockerfile格式: 1.#Comment注释2.INSTRUCTION大写的指令名 argumen ...
- Linux网络管理——远程登录工具
4. 远程登录工具 .note-content {font-family: "Helvetica Neue",Arial,"Hiragino Sans GB", ...
- 服务端NETTY 客户端非NETTY处理粘包和拆包的问题
之前为了调式和方便一直没有处理粘包的问题,今天专门花了时间来搞NETTY的粘包处理,要知道在高并发下,不处理粘包是不可能的,数据流的混乱会造成业务的崩溃什么的我就不说了.所以这个问题 在我心里一直是个 ...
- SQL Server用户自定义类型与统计信息
用户自定义数据类型不支持统计信息! 所以查询对它的查询会慢一些.
- Eclipse Rcp
http://blog.csdn.net/soszou/article/details/7996748
- 计算机世界的道(C/ASM)生一(OS),一生二(API),二生万象(MFC/COM)——学包装技术的程序员将来会损失比较大,因为不了解本质,一旦包装过时就会被淘汰
道生一,一生二,二生万象.OO的思想就是抽象,万象归宗,化繁为简.99%的程序员使用OO,或者所谓的类库的目的就是好用,不必了解内部实现就可以直接达到所期望的结果.这时一种生产力的进步,一种流水线式半 ...
- 获取EIP(汇编语言直接给Delphi变量赋值)
var EIP: Cardinal; procedure GetEIP(); stdcall; asm pop eax; mov EIP,eax; push eax; end; procedure T ...