操作系统的发展史
操作系统的诞生
1943年:在第二次世界大战期间,美国物理学家约翰·莫奇利,美国工程师J.Presper Eckert, Jr.和他们在宾夕法尼亚大学摩尔电气工程学院领导了一个政府资助的项目,旨在建造一台全电子计算机。
其作用是让军方用来计算发射表,其中包含有关武器正确仰角、风向和弹药类型的信息。这些信息对武器操作员很有用,使他们能够更准确地使用武器。
这台计算机被称为电子数值积分器和计算机(Electronic Numerical Integrator And Computer,简称ENIAC),没有操作系统
1946年2月ENIAC竣工,政府花费了40万美元,而它旨在帮助赢得战争的战争已经结束。它的首要任务是为氢弹的建造进行计算。该机器的一部分在华盛顿特区的史密森学会展出
ENIAC 是由超过17,000个的电子管(真空管)、70,000个电阻、10,000个电容器、6,000个开关和1,500个继电器组成,体积极为庞大,它占据了摩尔学校15 x 9 米的地下室,重达30吨,耗电174千瓦。在算力上它可以实现每秒5000次的加法运算。
这种早期的计算机,没有显示器、键鼠,一次运行一个程序,全部都是人工操作。
ENIAC在使用时,专职操作员将运算信息记录在穿孔卡带上。系统启动后,读取卡带信息,然后进行运算,最后输出结果。
这套"人工系统"虽然乏味但有效,因为当时没有真正的编程语言。这项早期技术最著名的应用之一是英国数学家和计算机科学家艾伦·图灵(现代计算机科学之父),图灵通过恩尼格玛机(参考1、参考2、大概原理图、Enigma运行动图) 帮助二战期间的密码破译。他还负责图灵测试,该测试用作确定人工智能的指南。
计算机的速度快,人的速度慢。所以计算机经常处于等待状态,等待操作员的输入。
==================================================================================================
尽管如此,ENIAC 仍然是迄今为止最强大的计算设备。它是第一台可编程通用电子数字计算机。就像19世纪的查尔斯·巴贝奇的分析机 (第一计算机程序员艾达·洛夫莱斯) 和英国二战时期的计算机巨人一样,它拥有条件分支---即它可以执行不同的指令或根据某些数据的值改变指令的执行顺序。
(例如,IF X>5 THEN GO TO LINE 23。)这为 ENIAC 提供了很大的灵活性,这意味着虽然它是为特定目的而构建的,但它可以用于解决更广泛的问题。
根据与军队的合同并在赫尔曼·戈德斯坦 (Herman Goldstine) 的指导下,1944年数学家约翰·冯·诺依曼开始频繁与该组织进行磋商。
==================================================================================================
这严重耽误了计算效率,浪费时间,也浪费钱(电费)。于是到了20世纪50年代,开始出现了批处理系统(batch processing)。
批处理系统中,操作员把用户提交的作业进行分类,把一批作业编成一个"作业执行序列"。每一批作业都由专门编制的监督程序(monitor)自动依次处理。
这个"监督程序",就是操作系统的雏形。它标志着操作系统的诞生(1955年)
最早使用批处理系统的是第二代通用计算机,代表产品是IBM的 1401 和 7094 等(如下图)
批处理虽然提升了效率,但仍存在缺陷。
例如,当作业进行 I/O 操作时,主机会等待操作完成,造成自身空闲。
再例如,计算机只能同时运行一个批处理任务,效率还是太低。
unix发展史简介
# 简述到了60年代(1960~1969年),集成电路技术高速发展,于是有了更快的处理器、更大的内存、更丰富的 I/O 设备。同时,通道和中断技术出现,开始允许系统执行"挂起"操作。
于是就有了"多道程序系统",即计算机系统从串行变成了并行,可以同时运行多个任务(多个程序放入内存,交替在CPU中运行,共享硬软件资源),大幅提升了计算机的工作效率。
再后来,系统又支持了多个用户同时使用。于是就变成了"多用户 + 多任务"的系统,称为"分时系统"。
注:两个早期的分时系统是麻省理工学院开发的 CTSS(兼容分时系统)和达特茅斯学院开发的达特茅斯学院基本系统。其他多道程序系统包括英国曼彻斯特大学的Atlas和IBM的 OS/360,这可能是 20 世纪 60 年代最复杂的软件包。
"分时"和我们通信领域的"时分复用"有点像,就是把处理机的运行时间分成很短的时间片,按时间片轮流分配给各个作业使用。
再后来,技术又继续演进。终于,我们有了时效性更强的"实时操作系统"。这种系统,就非常接近于现代操作系统的概念了。
1963年: 剑桥大学将ALGOL 60语言发展成为CPL(Combined Programming Language)语言。
1964年:美国国防部委托美国电话电报公司(AT&T)的贝尔实验室、美国麻省理工学院和通用电气公司联合开展Multics(Multiplexed informtion and Computing Service)工程计划,开发一种交互式的、具有多道程序处理能力的分时操作系统,取代广泛使用的批处理操作系统。
1965年:Multics工作正式开展,起初选择的是在IBM公司的设备上连接1000部终端机,支持300用户同时上线。当UNIX开始衍生出不同的流派时,在这些UNIX变体之间移植代码变得很困难,当时也被IBM拒绝向System 360添加虚拟内存等必要功能后,Multics 小组选择了通用电气向其推荐的GE-645
GE645大型计算机
1961年的贝尔实验室
参与MULTICS的科学家
IBM System 360
1967年: 剑桥大学的Matin Richards 对CPL语言进行了简化,于是产生了BCPL语言
1969年夏天:
贝尔实验室最初参与Multics计划的部门是计算器技术研发部门(Computing Techniques Research Department),部门主管是道格拉斯·麦克罗伊,其下的工程师,原有丹尼斯·里奇、布莱恩·柯林汉、道格拉斯·麦克罗伊、麦克·列斯克(Mike Lesk)与乔伊·欧桑纳(Joe Ossanna)等人,为了Multics计划,他们又召募了肯·汤普逊(Ken Thompson)加入其中。肯·汤普逊进入Multics计划不久,由于Multics项目太复杂,加上其他原因导致项目进展缓慢,隶属AT&T公司的贝尔实验室(Bell Labs)最终撤出了投入Multics项目的资源,退出这项合作计划。
但因为机器仍然保留在贝尔实验室,Ken·Thompson(肯·汤姆森)和 Dennis·Ritchie(丹尼斯·里奇)在贝尔实验室综合楼的顶层,在狭窄的地方埋头工作。他们没有空调,但可以使用一台价值数百万美元的GE-645大型机,监管相当宽松。
与此同时,Ken·Thompson在Dennis·Ritchie的支持下将BCPL进行了修改并取名为B语言,并编了个叫Space Travel的游戏,运行在Multics系统上。经过实际运行后,他发现游戏速度很慢而且耗费昂贵,每次运行会花费75美元。在GE-645被搬走后,肯·汤普逊在实验室中寻找没人使用的机器,找到了几台PDP-7。在丹尼斯·里奇的帮助下,汤普逊在PDP-7用B语言和汇编语言的组合语言重写了这个游戏,并使其在DEC PDP-7上运行起来。这次经历加上Multics项目的经验,促使汤普逊开始在DEC PDP-7上研究如何开发操作系统。
1969年8月:趁着妻子回家探亲,肯·汤普逊提议在PDP-7上开发一个新的阶层式操作系统的计划。Multics的原有成员,加上Rudd Canady都投入这个计划。肯·汤普逊发现要编写驱动程序来驱动文件系统进行测试并不容易,于是开发了一个壳层(shell)与一些驱动程序,做出一个操作系统的雏形。在团队合作下,Multics的许多功能都被采纳,重新实作,最终做出了一个分时多任务操作系统,成为第一版UNIX。
注:Multics全称 多重信息与计算系统 "MULTiplexed Information and Computing System" 的缩写
同年9月,那部PDP-7却只能支持两个使用者,彼得·纽曼(Peter G. Neumann)戏称他们的系统其实是:"UNiplexed Information and Computing System",缩写为"UNICS"。于是这个项目被称为Unics(全称: 单路信息与计算系统,Uniplexed Information and Computing System)。
基于B语言和汇编语言编写的Unics,硬件通用性差,没法移植到其它机器上运行,加上PDP-7的效能不佳,因此,肯・汤普森尝试使用 BCPL、PASCAL 语言进行重写。但效果并不理想。
PDP-7计算机
1970年:"UNICS"因为 PDP-11/20项目获得了首次资金注入,肯·汤普逊与丹尼斯·里奇决定把第一版UNIX移植到PDP-11/20的机器上,开发第二版UNIX。在效能提升后,真正可以提供多人同时使用,布莱恩·柯林汉提议将它的名称改为UNIX。
1970年1月1日0时0分0秒是POSIX时间的零点,公认的Unix的万物之始 --- UNIX元年
POSIX: Portable Operating System Interface of UNIX,可移植操作系统接口
Thompson的这个文件系统有两个重要的概念:
1)所有的程序或系统装置都是文件。
2)不管构建编辑器还是附属文件,所写的程序只有一个目的,就是要有效地完成目标。
这些概念在后来对于Linux的开发有相当重要的影响。这也就是著名的KISS(keep it simple, stupid)原则,即"简单原则"-尽量用简单的方法解决问题,这是"Unix哲学"的根本原则。
1971年11月3日:UNIX第1版(UNIX V1)诞生。出版的第一版《Unix 程序员手册》中,将1971/1/1作为Unix纪元的开始,并且一秒钟记录60个数,但是后来发现这样32位整型数字只能记录两年多,后来这个纪元被一再重新定义,改为从1970/1/1开始,每秒1个数。UNIX第一次用于实际场景中是贝尔实验室的专利部门配备来做文字处理, 这里 有Unix纪元的开始的基本算法
1972年:Dennis·Ritchie开始改进Thompson的B语言,改进的新语言称为C语言,取BCPL的第二个字母。UNIX发布第2版,最大的改进是添加UNIX标志特征之一的管道功能。
同年,汤姆森与里奇共同将Unix移植到最先进的大型机PDP-2上。大家放弃PDP-2自带DEC操作系统,改用简洁、稳定与高效的Unix。
1973年:汤普逊和里奇用C语言重写了Unix,形成第三版UNIX。在当时,为了实现最高效率,系统程序都是由汇编语言编写,所以汤普逊和里奇此举是极具大胆创新和革命意义的。用C语言编写的Unix代码简洁紧凑、易移植、易读、易修改,为此后Unix的发展奠定了坚实基础。
同年10月:在IBM举办的操作系统原理专题研讨会上,汤姆森与里奇宣读论文并展示Unix,整个会场为之轰动,大家都索取这种新型的操作系统的程序。
PDP-11计算机前,坐着的Ken Thompson和站着的Dennis Ritchie
1974年7月:Unix发展到第5个版本,Thompson和Ritchie合作在ACM通信上发表了一篇关于UNIX的文章,这是UNIX第一次出现在贝尔实验室以外,结果引起了学术界的广泛兴趣并对其源码索取。Unix第5个版本就以"仅用于教育目的"的协议,提供给各大学作为教学之用,成为当时操作系统课程的范例教材。各大学公司开始通过Unix源码对Unix进行了各种各样的改进和拓展。
贝尔实验室(AT&T)推出了 Unix 之后,因为受美国政府反垄断制裁的原因,并不能对它进行销售。所以,他们只能将 Unix 无偿提供给所有人学习。
1975年:UNIX发布了4、5、6三个版本。同年,伯克利购买了DEC公司最新的计算机PDP-11/70 。恰逢 Ken Thompson 休假一年在母校担任客座教授,就在这台计算机上他安装了最新版本的Unix(V6 版本)
1977年:在Ken Thompson的引导下,当时还是研究生的 Bill Joy 开始编译第一个BSD。在 AT&T 的放养状态下,Unix得到了长足发展。并推出了BSD版本。(Berkeley Software Distribution 伯克利软件发行版)
同年开始,美国政府拆分AT&T并禁止该公司从贝尔实验室的许多发明中获利,同时也签署了相关协议,AT&T分解后终于摆脱反垄断的掣肘,立马将Unix进行商业化。
掣肘:拉住胳膊,比喻阻挠别人做事
1978年:大约600台计算机在运行UNIX。伯克利大学推出以第6版UNIX为基础,加上改进和新功能而成的Unix,命名为BSD,开创Unix的另一分支:BSD系列,著名的"1 BSD(1st Berkeley Software Distribution)"
1979年:从UNIX 的V7版本开始,Unix的许可证开始禁止大学使用Unix源码,包括在授课中学习。如果想要继续使用,就要支付价格不菲的费用得到授权。
而且,BSD系统发行版包含每个部分的完整源代码,而不是以纯二进制格式发布。因此,BSD每一次对外分发都要在 AT&T 的许可之下。到了80年代后期,Unix日益流行 ,AT&T将许可费从最初的99美元稳步提高到250000美元。
微软从AT&T公司获得授权,为英特尔处理器开发一种Unix操作系统,由于它购买的授权无法直接让该操作系统以"Unix"为名,于是该系统命名为Xenix,在个人电脑及微型计算机上使用。
1980年:美国电话电报公司发布了UNIX的可分发二进制版(Distribution Binary)许可证,启动UNIX商业化的计划。同年,美国国防高级研究计划局(DARPA)准备制定 TCP/IP 协议,选择了与BSD合作。这大大刺激了Unix的发展和普及。
后来,丹尼斯・里奇和肯・汤普森被誉为 Unix 之父和 C 语言之父
.
.
.
问题
没有引入TCP/IP协议前Unix怎么通信?可看 这里 或 这里
.
.
.
1981年:美国电话电报公司基于UNIX V7开发了UNIX System III 的第一个版本(1982年发布)。这是一个商业版本,仅供出售。
1982年:AT&T基于版本7开发了UNIX System Ⅲ的第一个版本,这是一个商业版本仅供出售。为了解决混乱的UNIX版本情况,AT&T综合了其他大学和公司开发的各种UNIX,开发了UNIX System V Release 1(简称SVR1)。
其他一些公司也开始为其自己的小型机或工作站提供商业版本的UNIX系统,有些选择System V作为基础版本,有些则选择了BSD。
1983年:SVR1这个新的UNIX商业发布版本不再包含源代码。美国电话电报公司开始积极地保护UNIX的源代码。从发布System III开始,该公司的所有UNIX版本转由一个强调稳定的商业发行版本小组进行维护。
同年,美国计算机协会新设立ACM Software System Award(软件系统奖),主要颁发给开发出具有长远影响力软件系统的机构或个人,而汤姆森(下图左一)与里奇(下图左二)则成为首届获奖者和美国计算机协会的图灵奖。
同年,BSD的一名主要开发者,比尔·乔伊在BSD基础上开发了SunOS 1.0版本,并最终创办了昇陽公司
Unix 开始收费和商业闭源之后,引起了理查德・马修・斯托曼(Richard Matthew Stallman)的不满
1984年:斯托曼发起了自由软件体系 GNU(GNU is not unix),模仿 Unix 的界面和使用方式,重新开发一个开源的版本。他还组织成立了 FSF(Free Software Foundation,自由软件基金会),起草了 GPL(GeneralPublicLicense,通用公共许可证)
斯托曼的做法具有划时代的意义。他开创了开源软件的黄金时代。
所有 GPL 协议下的自由软件,都必须遵循"Copyleft(非版权)" 原则 --- 自由软件,允许用户自由拷贝、修改和销售。但对其源代码的任何修改都必须向所有用户公开。
同年,HP公司的UNIX版,HP-UX 第1版发布,源于System V 第3版。
同年,美国政府拆分AT&T禁止该公司从贝尔实验室的许多发明中获利的和解协议也到期,如果想继续使用就需要购买授权,一份授权4万美元。Unix社区已习惯于自由软件,于是一获悉AT&T很快将对Unix的所有副本收费、禁止改变源代码,Richard Stallman及其他人士着手使用免费分发给任何人的软件重新构建Unix —— 对修改没有任何限制。他们称其项目为"GNU",全称"GNU不是Unix"
同年,全世界 UNIX System V 第二版的安装数量已经超过10万。
1986年:发布了包含因特网域名服务的 4.3BSD。IBM宣布AIX系统的安装数已经超过25万。AIX基于 Unix System V开发,拥有BSD风格的根文件系统,是两者的结合。
人们在UNIX编程环境和C程序设计语言的标准化方面已经做了很多工作。UNIX版本种类的剧增以及它们之间差别的扩大,导致很多大用户呼吁对其进行标准化。于是各大供应商为建立Unix标准而展开了斗争,后来被称为"Unix之战"。Unix的三个常见版本是:
AT&T的System III <---> Microsoft的Xenix <---> IBM认可的PC/IX
1987年:荷兰阿姆斯特丹自由大学计算机系的安德鲁・塔能鲍姆教授(Andrew S. Tanenbaum),为了能在课堂上教授操作系统课程,决定在不使用任何 AT&T 源代码的前提下,自行开发与 Unix 兼容的操作系统。
他将这个系统称为 MINIX,也就是 mini-UNIX(小型 UNIX)的意思。
MINIX 的主要工作平台是 IBM PC 及其兼容机。这款 PC 搭载了英特尔公司的 16 位处理器 —— intel 8080。
开发出 MINIX 之后,塔能鲍姆教授并没有对它进行大规模推广。而且,他认为这个系统只是用于教育目的,所以也没有进行深入开发。
他甚至还不允许别人加入代码(估计是怕侵权 Unix),这就更加限制了 MINIX 的发展和普及。
同年,微软与SCO达成一项协议,以持有后者股票25%的条件转让Xenix的所有权,开发一款"可移植的"的操作系统 --- "Unix杀手",即微软Windows NT。
同年,美国电话电报公司(AT&T)与领先的BSD Unix供应商SunMicrosystems开发统一系统BSD–System V。但是在Unix各"开放"版本之间的商业竞争中败下阵来。
1988年10月:AT&T、NEC、富士通、SUN等公司为核心成立USL,Unix阵营组织者之一。POSIX是原始UNIX的标准化,同年回归,不仅解决了不同UNIX变体之间的问题,还解决了非UNIX操作系统之间的问题。
1989年:AT&T决定将Xenix(微软开发的一个x86-pc上的UNIX版本),BSD,SunOS和System V融合为System V Release 4(SVR4)。这个新发布版将多种特性融为一体,结束了混乱的竞争局面。
UNIX System V Release 4发布后不久,AT&T就将其所有UNIX权利出售给了Novell。Novell期望以此来对抗微软的Windows NT,但其核心市场受到了严重伤害,1993年Novell将SVR4的商标权利出售给了X/OPEN公司,后者成为定义UNIX标准的机构。
1990年:Thompson和Ritchie因"创造UNIX操作系统和C程序设计语言"而获得了IEEE汉明奖
截止90年代初,GNU 项目已经开发出许多高质量的免费软件,如 emacs 编辑系统、bash shell、gcc系列编译程序、gdb 调试程序等等。这些都为后来 Linux 的诞生创造了条件
1991年:正在芬兰赫尔辛基大学求学的李纳斯・托瓦兹(Linus Torvalds),对Unix产生浓厚兴趣,尝试借助MINIX完成一些日常工作。
MINIX的功能太弱,无法满足李纳斯的需求。于是他利用GNU的bash当做开发环境,gcc当做编译工具,成功编写出了拥有10000行版本为Linux0.01的内核,他利用Unix的核心,去除繁杂的核心程序,改写成适用于一般计算机的x86系统,最终命名Linux,后在2004年成为Android操作系统的基础。此时李纳斯21岁!
同年,Sun公司基于SVR4发布系统Solaris
同年,一群BSD开发者(Donn Seeley、Mike Karels、Bill Jolitz和Trent Hein)离开了加州大学,创办了Berkeley Software Design, Inc (BSDI)。BSDI是第一家在Intel平台上提供全功能商业BSD UNIX的厂商。后来Bill Jolitz离开了BSDI,开始了386BSD的工作。386BSD被认为是FreeBSD、OpenBSD和NetBSD、DragonFlyBSD的先辈。
AT&T继续为UNIX System V增加了文件锁定,系统管理,作业控制,流和远程文件系统。
冷知识:
Linus Torvalds出生在赫尔辛基,父母离婚后就和母亲就和姥姥姥爷一起生活,Linus Torvalds的姥爷不是一般人,他是芬兰第一批统计学教授之一,芬兰统计学会授予统计学专业杰出硕士毕业生的奖项就是以他的名字命名,Linus Torvalds在11岁时家里就有了电脑,那时电脑还及其稀缺,他的姥爷就用这台电脑写一些简单的统计学程序,但老人家眼花嫌打字麻烦就把程序写到纸上再让Linus Torvalds帮忙录入到计算机中,Linus Torvalds一边打字一遍理解代码,慢慢就学会了Basic语言,在姥爷的鼓励下他开始编写一些简单的游戏,对编程的热情也与日俱增,又自学了机器码编程,中学时几乎所有的时间都花在了电脑前,他妈妈说没见过比Linus Torvalds更好养活的小孩,只要把他和电脑关在一个小黑屋,到饭点给他点吃的就行。在澳洲被企鹅咬了一口,从此就和企鹅杠上了,
1991年年底,Linux Torvalds公开了Linux内核源码0.02版
1992年6月16日:Unix阵营组织者之一的USL,毅然决定采用OSF/1的网络环境,分步式计算、分布式管理等技术规范,立即得到了OSF(以IBM、DEC、惠普、Dell等公司为核心)组织的支持,并推出4.2版平息了Unix操作系统技术长达5年的UNIX世界大战。
同年,Unix系统实验室指控发行商业BSDUnix的BSDI公司违反了AT&T的许可权,发布自己的Unix版本,并进一步指控伯克利计算机系统研究组泄漏了Unix的商业机密(此时的4.3BSD中来自AT&T Unix的代码已经不足10%)。这个官司影响了很多Unix厂商,使他们不得不从BSD Unix转向Unix System V,以避免法律问题。以至于当今大多数商业Unix版本都是基于Unix System V的。由于最后判决悬而未决,这桩法律诉讼将BSD后裔的开发,特别是自由软件,延迟了两年,这导致没有法律问题的Linux内核获得了极大的支持。
1993年:AT&T把Unix系统实验室卖给Novell公司,Novell允许BSDI自由发布自己的BSD,前提是必须将来自于AT&T的代码完全删除。诞生4.4 BSD Lite版,由于这个版本不存在法律问题,4.4BSD Lite成为现代BSD系统的基础版本。同时1993年以后,大多数商业UNIX发行商都基于SVR4开发自己的UNIX变体
比较有名的有IBM 公司的AIX、惠普公司的 HP-UX
BSD版本发展起来的FreeBSD,苹果公司的OS X就是基于FreeBSD
Sun公司的 Solaris,该系统稳定性极高,主要用在SUN公司的服务器(V240/V440 等)上,CPU都是完全不一样的,叫做SPARC
同年,Novell将SVR4的商标权利出售给了X/OPEN公司,后者成为定义UNIX标准的机构
同年,DEC公司发布世界首款64位Unix操作系统:DEC OSF/1,并发展成为著名的Tru64 UNIX
1994年:Linux完整的核心Version1.0推出,至此,Linux逐渐成为功能完善、稳定的操作系统,并被广泛使用
1995年:HP-UX发布第10版,调整系统文件分布以及目录结构,类似SVR4。
1996年:X/Open与Open Software Foundation合并为The Open Group
同年,Linux 2.0版本发布
1996年,X/OPEN和OSF/1合并,创建了国际开放标准组织,由它公布的"单一UNIX规范"定义着具有什么特征的作业系统可以冠上UNIX之名,相对地,不符合这些标准但与Unix有类似性的作业系统只能称为"类Unix"(unix-like)。
UNIX代码著作权则由Novell售给圣克鲁兹作业(Santa Cruz Operation)
1997年:汤姆森入选计算机历史博物馆名人录。
1998年:汤姆森被授予国家科技奖章。
2001年:HP-UX发布11.20 版宣称支持系统。HP-UX是第一个使用 ACLs管理文件权限的 UNIX 系统
2002年:Solaris 9发布,支持 Linux 特性。
2004年:IBM发布的 AIX 5.3,引入了支持APV的虚拟化技术,支持对称多线程、微分区,以及共享处理器池。
2005年:Solaris 10发布,支持 Solaris Containers,以及新的 ZFS 文件系统,同年,当年负责研发UNIX与后续维护工作的贝尔实验室1127部门已于8月正式宣告解散。肯·汤普逊已退休,现居加州;丹尼斯·里奇调到别的部门;
而Douglas McIlroy则在达特茅斯学院担任教授。
2007年:IBM同时发布AIX6.1 和 Power6 架构
2019年1月8日:UNIX发明5 0周年。美国发明家名人堂(National Inventors Hall of Fame)在展会上发布了2019年的入选名单。贝尔实验室的两位计算机科学家Dennis Ritchie 和 Ken Thompson入选了名人堂。
2020年6月(截止到),目前除类UNIX系统(BSD、GNU)外,仍有Oracle Solaris,IBM AIX,HP-UX,MINIX等符合标准的UNIX系统。而原System V Unix则随着"1127"部门的解散而停止更新。
2001年: 圣克鲁兹作业的商标与UNIX产品和业务都出售给了Caldera Systems,交易完成后,Caldera又被重命名为SCO Group。
简述Linux发展史
# 自由的类Unix系统
1984年,Richard Stallman发起了GNU项目,目标是创建一个完全自由且向下兼容UNIX的操作系统。这个项目不断发展壮大,包含了越来越多的内容。现在,GNU项目的产品,如Emacs、GCC等已经成为各种其它自由发布的类UNIX系统中的核心角色。
1990年,Linus Torvalds决定编写一个自己的Minix内核,初名为Linus' Minix,意为Linus的Minix内核,后来改名为Linux。
此内核于1991年正式发布,并逐渐引起人们的注意。当时GNU操作系统仍未完成,GNU系统软件集与Linux内核结合后,GNU软件构成了这个POSIX兼容操作系统GNU/Linux的基础。他为了让自己的Linux能够兼容于UNIX系统,并让所有的软件都可以在Linux上执行,于是开始参考标准的POSIX规范。
今天GNU/Linux已经成为发展最为活跃的自由/开放源码的类Unix操作系统。
1994年,受到GNU工程的鼓舞,BSD走上了复兴的道路。BSD的开发也走向了几个不同的方向,并最终导致了FreeBSD、NetBSD、OpenBSD和DragonFlyBSD等基于BSD的操作系统的出现。
Debian发展史
Hurd 是 GNU 项目对UNIX的替代品。GNU Hurd是一套操作系统内核,以微内核架构设计。Hurd是GNU操作系统的核心部分。GNU项目从1990年开始开发GNU Hurd,并且将它作为一个遵循GPL的自由软件发布。Hurd的目标是从功能、安全性和稳定性上全面超越传统Unix内核,而同时又能保持对其的兼容性,为此Hurd遵守POSIX标准。
Windows篇
DOS操作系统
1975年初,MITS电脑公司推出了基于 Intel 8080芯片的Altair 8800微型计算机。这是人类历史上第一台PC(个人电脑),具有重要意义。
Altair 8800微型计算机
1976 年,美国的 Digital Research 公司(以下简称 DR 公司),成功研制出一套名为 CP/M(Control Program/Monitor,控制程序/监控)的!!操作系统!!,专门用于搭载了 8080 芯片的微型计算机(包括 Altair 8800)。
1980年,IBM公司也秘密搞起了自己的PC项目。
这个被命名为"国际象棋"的项目,由唐・埃斯特里奇(Don Estridge)负责领导,旨在开发一款价格足够低廉的微型计算机产品,面向小企业和家庭用户市场。
为了给这款新PC搭配合适的操作系统,他们找到了微软公司的比尔・盖茨 (Bill Gates)。
之所以找比尔・盖茨,主要有两个方面的原因:
一、微软公司此前开发了一款让 CP/M 在 Apple II 上运行的 Z-80 SoftCard 产品,所以IBM以为微软拥有CP/M。
二、比尔・盖茨的妈妈 —— 玛丽・麦克斯韦尔・盖茨 (Mary Maxwell Gates),在担任全美联合劝募协会执行理事会主席期间,与IBM的首席执行官约翰・埃克斯(John Fellows Akers)共事,所以做了牵线搭桥。
比尔・盖茨和 IBM 团队进行洽谈后,表示自己并不拥有 CP/M,建议他们直接去找DR公司。
因为签订了严格的保密协议,比尔・盖茨在和 DR 公司负责人加里・基尔代尔(Gary Kildall)说明此事时,并没有直接点明是IBM要找他们,而是说:"有人来看你了。好好对待他们,他们是重要的人"
但基于种种原因,DR公司和IBM公司没有谈拢,双方不欢而散。(一种说法是:IBM一见面就让加里签严格的保密协议,让加里很不爽。也有一种说法是,DR公司想打包卖,而IBM想按单台授权买。)
看到这个情况,比尔・盖茨觉得,这是一个巨大的商业机会,一定不能错过。
经过一番调查,比尔・盖茨得知,SCP(西雅图计算机产品)公司有一个名叫蒂姆・帕特森(Tim Paterson)的24岁程序员,花了四个月的时间写了一个QDOS系统(Quick and Dirty Operating System,快速和肮脏的操作系统,后来觉得名字不太好听,改成 86-DOS)。这个系统是 CP/M 系统的变种,貌似能够满足IBM的需求。
一开始,比尔・盖茨只是花了2.5W美元买了 86-DOS 的授权。后来考虑到IBM这个项目的巨大商业潜力,比尔・盖茨直接掏了5-7W美元一口气买断了版权。
为了更好地对 86-DOS 进行改造,比尔・盖茨还把蒂姆・帕特森直接挖了过来,让他加入了微软。
1981年7月27日,微软正式推出了MS-DOS系统(MicroSoft-Disk Operating System,磁盘操作系统)
1981年8月12日,IBM也正式发布了个人电脑产品 --- IBM PC,采用MS-DOS1.14版(在IBM PC上被命名为 PC-DOS)。
IBM PC
DR公司的系统是CP/M 微软的系统是MS-DOS IBM的系统是PC-DOS
当时IBM和微软采用的是单台授权的方式。用户每买一台IBM PC,就要支付40美元的 MS-DOS 使用费。
DR公司得知此事后,提出了强烈的抗议。IBM为了平息抗议,表示允许IBM PC用户在DR公司 CP/M-86 系统和微软公司PC-DOS 系统之间进行自由选择。
CP/M-86 系统售价高达240美元,PC-DOS只需要40美元。很快CP/M-86系统就败下阵来。
DR公司也曾试图挽回局面。他们发行了DOS Plus,后来又发行了 DR-DOS(两者可以与 MS-DOS 和 CP/M-86 的软件兼容),但都没有获得成功。再后来,DR公司被Novell买下,DR-DOS变成了Novell DOS 7(1993年)。
回到 MS-DOS。
IBM公司推出 IBM PC 之后,继续对产品进行升级迭代。微软这边也不断推出新版本的DOS。
1983年3月8日,IBM推出增强版 IBM PC/XT,第一次在PC上配备了硬盘,使用的操作系统是MS-DOS 2.0版。
1984年,IBM推出IBM PC/AT,搭配MS-DOS 3.0版
1988年,微软又推出了MS-DOS4.0版本
到了90年代,因为Windows系统的大获成功,微软逐渐开始抛弃MS-DOS。
实际上早期版本的Windows只是在 DOS 之上执行的应用程序。90年代初,Windows仍非常依赖DOS。一直到 Windows for Workgroups 3.11 出现后,DOS才逐渐退居二线,只负责引导及加载Windows核心。
1994年4月,MS-DOS 6.22版发布。这是一个经典的版本,80后应该都对这个版本非常熟悉。
2000年9月14日,MS-DOS最后一个版本8.0版发布。从那时开始,微软正式终止了对MS-DOS的开发。
微软抛弃 DOS,并不意味着 DOS 的完全消失。
90年代中期,开源软件大行其道,很多程序员趁机开发了 DOS 的衍生版本,例如 FreeDOS、PTS-DOS、ROM-DOS 等。这些 DOS 的功能十分强大,甚至超过了 MS-DOS。
在 DOS 命令行界面的基础上,一些程序员还开发了仿 Windows 的界面增强程序,例如 Seal、Qube、WinDOS 等等。还有人开发出了内核为 32 位的 DOS 操作系统,如 FreeDOS 32 等。
这些"杂牌"DOS,从某种意义上来说,也算延续了 DOS 的生命。
2011年,Linux3.0版本发布
Windows 的发展史
1979年,苹果公司创始人史蒂夫・乔布斯(Steve Jobs)来到施乐公司(Xerox)著名的PARC研究所,参观他们的PC原型机 --- Alto
Alto的技术非常超前,尤其是它的GUI(Graphic User Interface,图形用户接口)界面和鼠标,都是前所未有的设计。
乔布斯对这些设计爱不释手,于是,以很低的价格将这些设计买下(施乐公司高层根本没有意识到这些设计的价值),并准备应用于自己的PC产品。
1983年,全球首款采用 GUI 界面的商业计算机产品推出,也就是 Apple Lisa。
Apple Lisa 的诞生,震撼了所有人,其中就包括微软的比尔・盖茨。
那时候的比尔・盖茨,刚刚在MS-DOS上获得成功。看到Apple Lisa后,他很清楚GUI界面才是PC操作系统的未来。
因此,他立刻找到乔布斯,说要和苹果公司合作,帮助开发苹果另一款新机型(Macintosh)的应用软件。
乔布斯轻信了比尔・盖茨,答应与之进行合作。结果在合作的过程中,微软一直都在对苹果的GUI图形操作系统进行研究和"仿制"。
# Windows 1.0/2.0/2.1
1984年,苹果公司发布Macintosh(麦金托什,麦金塔),再次震撼世界。
1985年11月,微软正式发布Windows 1.0
得知受骗,乔布斯怒不可遏,但为时已晚。因为这件事,乔布斯后来和比尔・盖茨一直都不太对,经常隔空对骂。
前面说过,早期的 windows,其实就是套在 DOS 外面的一个"壳",只是起到操作界面的作用。最开始,微软把它称之为"界面管理器"。你也可以把它看成DOS下面的一个应用程序。
后来在 1.0 的基础上,微软又在1987年 和 1988年先后发布了 Windows 2.0 及 Windows 2.1。这两个版本同样不太成功,经常蓝屏,被用户疯狂吐槽。
痛定思痛,比尔・盖茨觉得,继续在DOS上套壳,肯定不是办法,还是应该重新开发一个全新的内核。
于是,他到处招兵买马,找来了施乐公司最早做图形界面的一些人,还有VMS系统(当时很牛的一个操作系统)的开发者大卫・卡特勒(David Neil Cutler),以及操作系统顶级高手吉姆・阿尔钦(Jim Allchin)等,一同进行新系统的开发。
吉姆・阿尔钦
吉姆・阿尔钦对比尔・盖茨的邀请很是不屑。他告诉比尔・盖茨,你们微软的系统是世界上最烂的。比尔・盖茨倒是非常大度,回答说,正因为它们很烂,所以才请你来把它们做好嘛。
最后,盖茨的诚意和微软的股票期权打动了吉姆・阿尔钦。他选择了加入。
# Windows 3.x
1990年5月22日,微软终于迎来了第一个具有里程碑意义的作品 --- Windows 3.0
1992年4月,更成熟的 Windows 3.1 也诞生了
Windows 3.0 是第一个获得全面成功的 Windows 版本,在两年内卖出 1000 万份。
它引入了 16 色图标,拥有更先进的内存管理和界面管理,兼容性和稳定性更强。此外,它还引入了纸牌游戏,增加了娱乐性。
而 Windows 3.1 更是添加了多媒体功能、CD 播放器,以及对桌面排版很重要的 True Type 字体,大大提升了用户使用体验。
值得一提的是,在上世纪80年代,除了Windows之外,微软还和IBM合作开发了 OS/2 系统
但Windows 3.0 的成功让微软坚定了开发 Windows、抛弃 OS/2 的信心。
1991年5月,比尔・盖茨正式宣布,结束与 IBM 的 OS/2 合作伙伴关系,将所有资源都投入到Windows上。
那一时期,网络技术高速发展,互联网迅猛崛起。为了应对这一趋势
1993年11月,微软正式发布了 Windows for Workgroups 3.11,重点加强了对网络的支持 —— 包括支持以太网和热门的 Novell netware,并利用对等网络的概念构建 Windows 工作组网络。
所有这些努力,帮助 Windows 逐渐在 90 年代激烈的操作系统竞争中赢得优势,并逐渐构建了强大的"Wintel(Windows+Intel)"体系。
# Windows NT
1993年7月27日,Windows NT 正式发布 (New Technology,新技术的意思)
Windows NT 是支持多任务处理的 32 位操作系统,实际上有两个版本:
Windows NT Server,设计用作网络中的服务器
Windows NT Workstation,用于独立或客户端工作站
# Windows 95/98
1995年8月24日,这是一个重要的日子。因为在这一天,熟悉的Windows 95正式发布了
Windows 95在发布后的5周内,售出了700多万份。它的界面有了很大的改进,稳定性和流畅性也远胜于此前的Windows
在Windows 95里,开始菜单首次出现,IE浏览器也随该系统出现。它的整体外观在后来的20多年里没有太大的变化
1998年6月25日发布的Windows 98同样经典,也就是俗称的"瘟酒吧"。
Windows 95 和 Windows 98基本上奠定了微软在PC操作系统上的霸主地位,也形成了事实上的市场垄断。
# Windows 2000
跨入21世纪后,Windows又进入了一个新的发展阶段。
2000年2 月17日,微软公司推出了32位计算机操作系统 —— Windows 2000(内核版本号 Windows NT 5.0)
Windows 2000共有四个主要版本:
Professional(专业版)
Server(服务器版)
Advanced Server(高级服务器版)
Datacenter Server(数据库服务器中心版)
很多的IDC数据中心服务器,包括 web 服务器、电子邮件服务器、ftp 服务器等,都采用了 Windows 2000 Server,这也迎合了当时互联网的发展需求。
Windows 2000 的最大特点是稳定。它升级完善了活动目录功能,增强存储服务,开始支持新型设备,并采用了NTFS 5文件系统,可靠性和安全性有明显的提升。
# Windows Me
2000年9月14日,微软发布了 Windows Me(Windows Millennium Edition)。
这个 Me,除了"我"的意思之外,也表示 Millennium(千禧年),以及 Multimedia(多媒体)。
Windows Me 是 16位/32位混合的系统,也是最后一款基于 MS-DOS 的 Windows 9X 内核系列的 Windows 操作系统。它的稳定性不如 Win2000,又比较吃配置,所以市场表现并不成功,不被用户认可。
# Windows XP
2001年10月25日,微软推出了崭新的 Windows XP。“XP”的意思是英文中的“体验”(Experience)
Windows XP 也是一代经典,甚至很多老电脑现在还在使用它(2008年停止销售,2014 年停止技术支持)。
它使用了 Luna(月神)图形用户界面和双列开始菜单,提升了系统的安全性和工作性能,提供了 WiFi 支持,简化了软件的安装和运行,并增加了远程桌面功能。
# Windows Vista/7
90年代末,乔布斯经过一番波折,重新入驻苹果公司。在他的带领下,苹果推出了一系列酷炫的产品,包括非常惊艳且流畅的 MacOS。
在界面体验上,Windows XP 根本不是 MacOS 的对手。于是,微软又从 IBM 手中买回了 OS/2,并在此基础上于2006年11月30日发布了 Windows Vista。
Windows Vista的界面确实蛮酷,多媒体和通信能力也明显增强,但是,华丽界面大幅拉低了系统性能,被用户疯狂吐槽。
无奈微软在短时间内重新研发,在2009年10月22日推出了Windows7(内核版本号Windows NT 6.1)
# Windows 8/10/11
再往后就是 Windows 8(不太成功)、Windows 10(非常成功)、Windows 11(刚起步)。大家都在用,应该都很熟悉。
Windows 10在易用性和安全性方面有了极大的提升,稳定性也不错,现在是全球市场占比最高的 Windows 操作系统。
Windows11于2021年6月24日发布,目前还处于起步阶段。
除了桌面操作系统之外,面向服务器平台的 Windows Server 也在不断升级,陆续诞生了 Windows Server 2003/2008/2012/2016 等众多版本。
.
.
.
.
.
.
防走失
QQ群1:905201396
QQ群2:756805267
QQ群3:912567610
.
.
.
.
.
.
参考资料
https://zh.m.wikipedia.org/zh-hans/UNIX
https://www.javatpoint.com/history-of-operating-system
Linux Kernel wiki:http://en.wikipedia.org/wiki/Linux_kernel
List of Linux supported architectures wiki: http://en.wikipedia.org/wiki/List_of_Linux_supported_architectures
Minix wiki: http://zh.wikipedia.org/wiki/Minix
Introduction to Linux: http://www.tldp.org/LDP/intro-linux/html/sect_01_01.html
History of Unix, Linux, and Open Source / Free Software: http://www.dwheeler.com/secure-programs/Secure-Programs-HOWTO/history.html
A short history of UNIX: http://www.sacredchaos.com/work/books/unix_sysadmin_handbook/unix_history.html
A Brief History of UNIX and Linux:http://ccmst.gatech.edu/wiki/images/6/62/Ccmst_workshop_1.pdf
A Guide to POSIX: https://www.baeldung.com/linux/posix