60 年代,大部分都是批处理。MIT 提出分时系统的概念,希望以 IBM 为主的大型机可以供给多人同时使用(最终达到 30 人可以同时使用),到 1965 年决定开发更大型的系统 MULTICS,找到了 AT&T 的贝尔实验室和通用电器(GE)联合开发,不过这个项目太过复杂,最后失败了
- Ken Thompson(K 神)
- Dennis Ritchie(D 神)
K 神在 MULTICS 上开发了一个游戏,在项目失败之后仍然想要在个人计算机上还能玩,所以打算移植到 DEC PDP-7 上(无操作系统),找到 D 神联合开发了一套包含文件系统、进程管理和实用程序的一个操作系统,开玩笑的命名为 UNIX。UNIX 的很多设计原则都是从 MULTICS 来的,比如 KISS 原则,一切皆文件,一个程序仅仅做好一件事
随着性能不断完善,其逐渐在贝尔实验室内部流行起来。不过这个是用汇编完成的,在不同机器上移植是很困难的。所以他们打算使用高级语言来完成(MULTICS 本身就是使用 PL/1 语言设计的)
1973 年,成功用 C 语言重写了 V3 UNIX。在这个过程中创造了 C 语言(主要在数据支持上做改变)
从 V5 版本开始,源码就以“教育和研究的授权”提供给各大高校,其中 V6 的源代码流传最广。UC Berkeley 发布了一个以它为基础的,加上部分改进和新功能的发行版,开创了 BSD 系列。AT&T 意识到商业化的可能,发布了 V7 UNIX,包含 make、shell 等重要工具,但是专门提出“不许提供源代码”
于是分成了三种:
- 基于 AT&T 的 UNIX(标准 UNIX)
- 基于 BSD 的 UNIX
- 基于 UNIX 接口的 UNIX:Minix 仅仅用于教学
Linux 基于 GNU 工具集,自由软件,因为这个时候刚好 AT&T 在打官司,可用且性能不错的 Linux 迅速走红
(UNIX 族谱.webp)
GNU 计划
Stallman 从 MIT 辞去工作推动,从 UNIX 上开始从周边提供开源替代品开始,逐步提高影响力。成立自由软件基金会
UNIX 标准化
- AT&T SVID
- SUS
- IEEE POSIX 1933 敲定