Linux萌芽 | 计算机百年趣味史(下)第11篇

简介: 从上篇计算机硬件发展历史中,我们知道1962年MIT计算中心使用IBM 7094研发了Compatible Time-Sharing System (CTSS)兼容的分时操作系统,当时硬件条件不符合,所以并不流行。

上一篇:PC时代 | 计算机百年趣味史(上)第9-10篇

本文作者:衍云

从上篇计算机硬件发展历史中,我们知道1962年MIT计算中心使用IBM 7094研发了Compatible Time-Sharing System (CTSS)兼容的分时操作系统,当时硬件条件不符合,所以并不流行。

而当1964年,System/360发布后,硬件具备保护机制后CTSS开始逐步流行。

1965年,随着CTSS的成功,人们也开始试图使用一台计算机来满足波士顿地区所有用户的计算需求,因此贝尔实验室(Bell Labs)加入了由通用电气(General Electric)和麻省理工学院(MIT)合作的计划;该项目要建立一套多使用者、多任务、多层次(multi-user、multi-processor、multi-level)的MULTICS(Multiplexed Information and Computing Service缩写)操作系统,我们可以从名字看到起要实现的目标(不过这也应了《三国演义》中的一句老话,天下大势久分必合久合必分,当时MULTICS的设计目标不就是现在的云计算想做的吗,一个数据中心向整个地区提供计算相关服务,不过云计算不是一台机器而是一大群)。

11.1 UNIX诞生

由于MULTICS的工作进度太慢,该计划在1969年就被停下来了。虽然MULTICS商业上失败了,但是需要肯定的是,在MULTICS中产生了大量的概念和雏形,影响着后来的操作系统。最后一个MULTICS的用户是加拿大国防部,其在2000年10月停止了该系统。

当时贝尔实验室退出MULTICS后,肯·汤普森Ken Thompson(后被称为UNIX之父)手上有一个"星际旅行"的游戏在GE-635(我们所说的大机,可见上篇中七个“小矮人“章节, 英文名mainframe)的机器上跑,不过玩起来不是很流畅。偶然间他发现了一部被闲置的PDP-7(Digital的主机,一个迷你电脑,就是早期小型机),然后肯·汤普森Ken Thompson和丹尼斯·里奇Dennis Ritchie(C语言之父,两人于1983年由于实现了UNIX操作系统获得图灵奖)就将"星际旅行"的游戏通过汇编语言移植到了PDP-7上(当时还没有C语言这么高级的东西)。

到了第二年,也就是在1970年时,那部PDP-7还是只能支持两个使用者,布莱恩·科尔尼Brian Kernighan(与丹尼斯·里奇在1978年合著发表了《C程序设计语言》)就开玩笑地称他们的系统其实是:"UNiplexed Information and Computing Service",缩写为"UNICS",后来,大家取其谐音,就称其为"UNIX"了。1970年可称为"UNIX元年"。

就是这么巧,Thompson为了玩游戏不巧成了UNIX之父,游戏真是人的天性,是创造的源泉啊。

1971年,肯·汤普森Ken Thompson申请到了一台PDP-11/24的机器,同时Unix第一版出来了。当时这台电脑只有24KB的物理内存和500K磁盘空间。Unix占用了12KB的内存,剩下的一半内存可以支持两用户进行“星际旅行”的游戏,同时也产生了fork()系统调用。

到了1973年,肯·汤普森和丹尼斯·里奇还是嫌汇编移植麻烦,于是开始寻找办法,他们尝试了Fortran(该语言产生于1954年,主要用于数值计算领域)和BCPL语言(该语言产生于1967年,剑桥大学开发,用于OS6操作系统开发),他们在这过程中整理形成了B语言。最后丹尼斯里奇还是觉得麻烦,改良了B语言产生于是了今天的C语言(取了BCPL中的第二个字母)。

在1974年7月肯·汤普森Ken Thompson和丹尼斯·里奇Dennis Ritchie在Communications of the ACM中发表了第一篇UNIX的文章 “The UNIX Time Sharing System”。UNIX首次亮相,引起了学术界的广泛兴趣并对其源码索取,Unix在第五版 “仅用于教育目的”提供给各大学作为教学之用,成为当时操作系统课程中的范例教材,培养了一大波操作系统人才。各大学公司开始对Unix进行了各种各样的改进和扩展。于是,Unix开始广泛流行(丹尼斯里奇 已在2011年过逝,另外两位布莱恩·柯林汉和肯·汤普森还健在 )。
紧接着,AT&T公司开始注意到Unix所带来的商业价值。公司的律师开始寻找手段来保护Unix,并让其成为一种商业机密。从1979年Unix的版本V7开始,Unix的许可证开始禁止大学使用Unix的源码,包括在授课中学习。

这样到了1980年,有两个最主要的Unix的版本线,一个是Berkeley的BSD UNIX,另一个是AT&T的Unix,最终引发了Unix的战争。然后就一发不可收拾地一夜之间出现了各种各样的Unix变种。如SunOS(Solaris在之后的十年出现),AT&T发布的Unix System V,而最终也造就了IBM的AIX和HP的HP-UX。

而学术上,因为Unix源码问题也不能在授课中学习了。

11.2 MINUX

所以问题来了,当Unix源码不能再教学中使用的时候,很多老师就头疼了,其中包括塔内鲍姆(ACM和IEEE的两会资深会员)。很多老师为了给学生造福利,是什么事都做勇于尝试的(之前我们讲到人类首台计算机的时候,1937年爱荷华州立大学的物理老师阿塔纳索夫为了教学方便搞出了世界上第一个现代计算机)。

而塔内鲍姆呢,为了更好的满足操作系统课程,索性自己写了一个MINUX操作系统(意思Mini的UNIX)。MINIX最初发布于1987年,开放全部源代码给大学教学和研究工作。2000年重新改为BSD授权,成为自由和开放源码软件。

但是有问题,MINUX为了保持教学的目的,不接受其他同学提供的源码,因为这样会使得系统变动更加庞大和难以理解。所以也直接阻碍了MINUX的商业化道路发展。

11.3 Linux

然后就是到了Linux了……

这里大家应该非常熟悉了,当时的Linus想通过MINUX安装到电脑上,然后连学校的网络,但是没有网络模块,为了能够上网,LINUX开始自己重新开发一个简单的系统发布在社区上。最早取名是叫FREAX怪诞,不过FTP管理员不是很喜欢这个名字,考虑到时Linus写的操作系统就取名为了Linux。

他第一次发行的版本(1991年10月5日)迅速吸引了一些黑客。尽管最初的 Linux 并没有多少用处,但由于一些黑客的加入使它很快就具有了许多吸引人的特性,其后由大量的Linux内核高手和开发人员参与,当前显然已经成为最主流的操作系统了。

得益于UNIX操作系统,MINUX操作系统,POSIX标准,GNU计划,和Internet网络发展。

主要人物Theodor Ts’o毕业于MIT ,成立最早北美地区的Linux的ftp站点,另外实现了ext2文件系统,成为了Linux早期世界中事实上的文件系统标准,后又推出了ext3文件系统。

Alan Cox,是继Linux前期发展中仅次于Linus的人物。

Michael K.Johnson是《内核黑客手册》,发起了Linux文档计划(Linux Document Project, LDP)
随着Linux不断的壮大,中间也触发了一次”大战”(口战)就是著名的微内核和宏内核之争
…….

就这样历史到我们此时此刻,非我莫属!

操作系统软件这块讲得相对少一点,因为我觉得大家应该都是耳熟能详的 事情了。

相关文章
|
存储 缓存 安全
【Linux】—— 详解计算机体系结构
【Linux】—— 详解计算机体系结构
|
2月前
|
算法 中间件 Linux
Linux-计算机程序概览
Linux-计算机程序概览
41 0
|
9月前
|
Unix Linux C语言
计算机操作系统实验一 Unix/Linux编程开发环境
计算机操作系统实验一 Unix/Linux编程开发环境
92 0
|
1月前
|
存储 Ubuntu Unix
【Linux】1、操作系统、计算机硬件和软件、Linux 介绍
【Linux】1、操作系统、计算机硬件和软件、Linux 介绍
41 0
|
10月前
|
搜索推荐 Ubuntu 固态存储
Linux操作系统计算机的整个启动过程(二)
Linux操作系统计算机的整个启动过程
77 0
|
10月前
|
Linux 程序员 Apache
Linux操作系统计算机的整个启动过程(一)
Linux操作系统计算机的整个启动过程
100 0
|
安全 Linux 数据安全/隐私保护
计算机BIOS的简单设置(要安装Linux需关闭Security Boot选项)
计算机BIOS的简单设置(要安装Linux需关闭Security Boot选项)
508 0
计算机BIOS的简单设置(要安装Linux需关闭Security Boot选项)
|
存储 缓存 安全
【Linux】计算机的软硬件体系结构
【Linux】计算机的软硬件体系结构
197 0
【Linux】计算机的软硬件体系结构
|
算法 中间件 Linux
Linux-计算机程序概览
Linux-计算机程序概览
175 0
|
存储 数据采集 Linux
Linux必知词汇:计算机硬件
计算机俗称电脑,是现代一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能。是能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备。
324 0