很久以前,计算机是个昂贵的东西。那是一个计算机动不动要占用一整层写字楼的时代。
这么昂贵的计算机,一般人自然用不起,所以就有了一个叫做批处理操作系统的东西。每个人都可以提交自己的任务到队列里,然后等待自己的程序运行后的结果。
但是批处理操作系统也不完美,这玩意根本没有交互性,而且很长一段时间都是只能运行一个程序。所以在 1965 年,Bell、GE、MIT 提出了一个叫做“Multics”的分时操作系统。
什么是分时操作系统呢?简单来说,这玩意就是给每个程序一片很小的时间,让它们轮流切换。程序切换的间隔很小,看起来就像是在同时运行一样。
但是由于 Multics 开发途中加入的功能越来越多,最后形成了一个几乎无法填满的大坑,于是 Bell 退出了开发。
不过,最终 Multics 还是成功的开发出了他们的产品,你可以通过访问他们的官方网站
Bell 推出 Multics 的开发之后,有两个人用回原来的系统,越来越不习惯,于是他们就以“研究新一代文本编辑器”为借口,开始研究一个新的操作系统——Unix。
这两个人就是在计算机界有着重要影响的 Ken Thompson 和 Dennis Ritchie。
Unix 本来只是 Ken 的一个想法,他本来是没有时间来完成这个操作系统的。
但是,有一天,Ken 的妻子要带着孩子去美国的西部探亲,Ken 就空出来有将近一个月的时间来编写 Unix。最终,他使用汇编语言完成了一个小小的内核与一些工具。这个内核最初没有名字,但因为这个系统的简单,实验室的人们就戏称这个系统为 Unics。于是最后的名字就变成了 Unix。
Dennis Ritchie 得知了这个计划后,就开始和 Ken 一起将 Unix 使用 B 语言重写,但是不知为何 B 语言编译出来的内核性能就是不好,于是,Dennis 搞了一种全新的编程语言,叫做 C 语言(名称取自 BCPL 的第二个字母)。他们用 C 语言重写了 Unix 内核。最终 Unix 成为了现象级的产品。
到了 Unix发布第七版的时候(即 System v7),AT&T 收回了 Unix 的版权,第七版影响力最大的修改就是不允许将 Unix 的代码提供给学生。
这个修改可气坏了一名叫做 Andrew 的教授,他在大学里教授操作系统的课程。但是因为不能向学生提供 Unix 的代码,他的课程也几乎无法继续。“自己动手,丰衣足食”,于是这位教授自己写了一个叫做 Minix 的操作系统。用于教学工作。
Minix 是什么意思呢?就是 Mini Unix 啦!很小的 Unix。
后来 Minix 也很受欢迎,但是 Andrew 教授认为这个系统只用于教学用途,迟迟没有增加新功能,并且不允许商业用途。所以一个叫做 Torvalds Linus 的芬兰人也是自己写了一个“小小的”内核(Linux Kernel),遵循 POSIX 规范(为了尽可能兼容 Unix),并与 GNU 计划的开源软件结合,最终发展成了 GNU/Linux,并且 Linux 内核使用了 GPLv2 许可证。
由于篇幅限制,所以本文省略了很多东西,如果想要看看更完整的资料可以查阅Linux 考古笔记
现在的 Linux 发行版(就是 linux 内核与软件包的结合,下一篇文章会详细讲述)包含着很多其它 GNU 中的软件。你如今可以在 kernel.org 下载 Linux 内核,也可以在 GNU 官网找到其它 GNU 软件并安装在 Linux 上。
study-area-cn