邳州信息网

标题: Unix 历史:一个伟大作品的诞生 [打印本页]

作者: 3AAA    时间: 2022-9-22 10:44
标题: Unix 历史:一个伟大作品的诞生

关于 Unix 及其起源的简短回忆。



Unix 的起源


如今,几乎整个世界都运行在 Linux 之上。数以十亿计的移动电话和服务器运行在 Linux 之上。但在 Linux 之前,是 Unix,没有 Unix 就没有现在的 Linux。

Unix 的起源可以追溯到人类登陆月球的时候。在 1965 年,三个著名的机构共同开展了一个操作系统研发项目,准备开发一个能够服务多个用户,并共享数据和资源的操作系统。



这三个机构是著名的 贝尔电话实验室Bell Telephone Laboratories、通用电气公司General Electric Company(GE)以及麻省理工学院Massachusetts Institute of Technology(MIT)。这个合作项目被称为 “Multics” —— 即“多路传输信息和计算业务Multiplex Information and Computing Service”的缩写。

不幸的是,该项目并没有见到成功的曙光,由于系统设计复杂且没有什么成果,贝尔实验室停止了该项目。

曾参与该项目开发的贝尔实验室的 肯·汤普森Ken Thompson,也投入到了新的工作中。在 数字设备公司Digital Equipment Corporation(DEC)的一台古老的 PDP-7 计算机上,他重新开始设计了一个新操作系统。不久后,丹尼斯·里奇Dennis Ritchie 也加入了,二人一起设计了分层文件系统、设备文件、命令行解释器以及进程。这就是 Unix 的诞生过程,它的名字是由 Multics 项目的另一名成员 布莱恩·克尼汉Brian Kernighan 给命名的。(LCTT 校注:前不久,80 高龄的布莱恩还为他共同创造的 AWK 添加了新的特性。)

接着在 1971 年,Unix 被移植到了稍微先进一些的 PDP-11 计算机上,它仅有 512 KB 的磁盘。当时,Unix 只支持 16 KB 内存,可以为用户程序分配 8 KB 的内存。

然而,Unix 大多数代码是用汇编语言编写的,十分依赖于硬件。因此它并不具备移植性。



C 语言的创建


如此一来,要使 Unix 具有可移植性,使之与 机器无关machine-independent,唯一的方法是使用高级语言编写它,这样编译和相应的目标代码就可以进行机器指令的转换了。

解决该问题的伟大思想诞生于一瞬间。肯·汤普森从零开始创建了一种名为 “B” 的高级语言。然后,他做了大量的工作,将 Unix 的汇编代码转换成这种新创建的语言。然而,“B” 语言也存在一些局限性,丹尼斯·里奇在此基础上创建了著名的 “C” 语言,这使得 Unix 真正成为一个可移植的操作系统。

著名的 “C” 语言至今还在使用。

到上世纪 80 年代中期,Unix 已经变得十分成功,从微型计算机到大型机,它可以在成千上万种硬件上运行。



MINIX 和 Linux 的诞生


1987 年,计算机科学教授 安德鲁·斯图尔特·特南鲍姆Andrew S. Tanenbaum 开发了一个名为 NINIX 的类 Unix 系统,在其著作《操作系统设计与实现Operating Systems: Design and Implementation》中用以解释操作系统的概念,并随该书一起免费分发了这个操作系统(16 位的版本)。那些学习计算机科学专业(包括我)或相关专业的人都知道,这是一本解释操作系统基础知识的“神级”教科书。

1991 年,李纳斯·托沃兹Linus Torvalds 在赫尔辛基大学学习期间开始了一项 爱好项目。他的项目是基于 MINIX 和 GNU C 编译器的。他启动这个项目是为了能够在他的配有新款 80386 处理器的新 PC 上运行程序。他编写的整个操作系统包含了 MINIX 所缺乏的特性,最终成为了 Linux 内核。



BSD 和 macOS


上世纪 80 年代,当 Unix 初具规模时,贝尔实验室基于 Unix 的最初源代码(在 PDP-7 和 PDP-11 上运行的版本)开发了 BSD(伯克利标准发行版Berkeley Standard Distribution)。BSD 是由加州大学伯克利分校的 计算机系统研究小组Computer Systems Research Group(CSRG)分发的。在其形成之后,BSD 被许多工作站供应商(传统桌面系统),如 昇阳微系统Sun Microsystems ,改编为专有的 Unix 变体。

该版本最终分叉创建了一些开源的变体,例如 OpenBSD、FreeBSD 等。这些自由版本为 史蒂夫·乔布斯Steve Jobs 创立的 NeXT 创建 NeXTSTEP 开辟了道路。而 NeXTSTEP 最终成为苹果公司 macOS 的基础。

总结


Unix 是少数具有独到思想并致力于解决问题的人取得的非凡成就。如果考虑到在创建操作系统当时可用的计算能力和内存量,这个操作系统简直就是一件艺术品。

几十年来,所有这些一步步的进步,最终使我们走到了今天。无论有多少内核、操作系统和以编程语言形式出现的抽象概念,就其本质而言,它们都始于一个单一的来源。

我一直认为程序或代码是人类的思想,是你的逻辑、想法,只是写在 “IF-ELSE” 语句中,以实现一些现实世界的结果。

参考资料:

“所有的革命,在它们发生之前,都是历史的必然。” —— 大卫·米切尔 《云图》

via: https://www.debugpoint.com/unix-history/

作者:Arindam选题:lkxed译者:Donkey-Hao校对:wxy

本文由 LCTT原创编译,Linux中国荣誉推出
作者: 毕子衿    时间: 2022-9-22 10:46
AIX[呲牙][呲牙]
作者: 拧鏖荡    时间: 2022-9-22 10:47
转发了
作者: 源庚进行曲    时间: 2022-9-22 10:48
转发了
作者: 邶几台    时间: 2022-9-22 10:49
转发了
作者: 后飞的菜鸟    时间: 2022-9-22 10:50
计算机
作者: 阴桃淋丸子    时间: 2022-9-22 10:52
转发了
作者: 浅蓝銫de愛    时间: 2022-9-22 10:53
转发了
作者: 邶几台    时间: 2022-9-22 10:53
计算机科学教授 安德鲁·斯图尔特·特南鲍姆Andrew S. Tanenbaum 开发了一个名为 NINIX 的类 Unix 系统。。。此处应为MINIX
作者: 恋冰の情节    时间: 2022-9-22 10:55
有你可,离你可
作者: 痞托凄    时间: 2022-9-22 10:56
Unix,它用C创造大“冤家”——Copyright&Copyleft

Unix因创造了C并基于C上演了辉煌;Linux基于C并反Unix创造出了更大的辉煌。著佐权?(Copyleft)因反著作权??(Copyright)而翻版辉煌。

更给力的是C,语言C![发]
作者: 宝贝马丁    时间: 2022-9-22 10:57
转发了
作者: 深拥717    时间: 2022-9-22 10:59
肯·汤普森当时所在的贝尔实验室,原本要开发 Multics 系统项目,但后来贝尔实验室退出了计划。这样他就比较闲了,这时候,正值盛夏,妻子和孩子都回娘家去了。因此,他获得了一段意外的独处假期。凑巧贝尔实验室有一台闲置的 PDP-7 机器,他之前在贝尔实验室的开发 Multics 时候,业余时间在实现一款"Space Travel"的游戏,但现在大型机没有了,只有一台老爷机 PDP-7,于是他想要把之前写的差不多的 "Space Travel" 移植过来,但性能完全不行。这么着,就打算自己实现一个系统,并且马上动手把它实现了。这就是我们熟知的 Unix 操作系统的最早版本。之后,他发现把系统内核写完了,游戏还是玩不起来,因为老爷机内存的限制,游戏的文件系统每次操作都要卡半天,就像你玩游戏的时候会有延迟,非常影响体验。他研究了一番,看着问题主要出在操作文件的时候会消耗过多的内存,于是便在一周内实现了文件系统,并在一个月内陆续实现了编辑器、编译程序等。
肯完成这个带着游戏的操作系统来到了贝尔实验室,同事们对他这个游戏并不感冒,但却对他这个操作系统兴趣颇浓。后面大家发现他这个系统非常好用,于是便逐渐在贝尔实验室应用起来。随后,Unix 率先被学术界发掘,并影响了其后几乎所有的操作系统。
作者: 半夏妖冶    时间: 2022-9-22 11:00
转发了
作者: 夏末尾泪    时间: 2022-9-22 11:01
牛人辈出
作者: 明星97SHOW    时间: 2022-9-22 11:02
转发了
作者: can_hong    时间: 2022-9-22 11:03
转发了
作者: huweiyi    时间: 2022-9-22 11:04
世上最令人尊敬的几个大神造就了unix




欢迎光临 邳州信息网 (https://www.pzxxw.com/) Powered by Discuz! X3.4