内容简介:相信大家对 Linux 再熟悉不过了,我们都知道 Linux继承自 Unix,但其实他们上一代还有一个 Multics。从最早的 Multics 发展到最早版本的 Linux,用了 28 年。这其中有四位天才级大师的贡献功不可没。今天带大家一起来回顾一下这段历史。Multics 全称是 MULTiplexed Information and Computing System,它是一套分时多任务操作系统,可以简单的理解是个支持并发的操作系统。
概述
相信大家对 Linux 再熟悉不过了,我们都知道 Linux继承自 Unix,但其实他们上一代还有一个 Multics。从最早的 Multics 发展到最早版本的 Linux,用了 28 年。这其中有四位天才级大师的贡献功不可没。今天带大家一起来回顾一下这段历史。
操作系统鼻祖——Multics
Multics 全称是 MULTiplexed Information and Computing System,它是一套分时多任务操作系统,可以简单的理解是个支持并发的操作系统。
举个栗子,假设现在网易云音乐是大的系统,如果我们是个单任务系统的话,现在你要听歌,但是发现现在有一个人已经在听歌了,那么你就只能等他听完了,没人在线了,你才可以听。而如果是多任务的话,咱们可以这样,你听歌的同时,他也在听,因为计算机的处理速度非常快,所以它在切换任务的时候。你不会感觉到有任何卡顿现象。
这个项目在 1964 年由贝尔实验室麻省理工学院及美国通用电气公司共同参与研发。目的是实现连接 1000 个终端机器,支持300个用户同时上线,但是这个项目进度太慢了,最终这里面的人被裁员,同时贝尔实验室的率先退出此项计划。
Unix 的创造
左:Thompson | 右:Ritchie
这其中有两位大佬就是实验室的成员,一个是肯尼斯·蓝·汤普逊 (英文名:Kenneth Lane Thompson),另外一个是丹尼斯·麦卡利斯泰尔·里奇(英文:Dennis MacAlistair Ritchie),Thompson 在业余时间“不务正业”地弄了一个“星际旅行”的游戏程序。
它之前在 Multics 上弄的时候的时候,发现玩起来非常不爽,就是会响应有时候快,有时候慢。就像你玩游戏的时候老是有延迟,你肯定不爽啊。他在库房发现一台闲置的 PDP-7 机器,想着自己弄一个简化版本的操作系统,只支持单机即可。于是便动手开干,要知道那时候不像现在什么东西都给你准备好了,他和他的搭档就一起一个个实现文件系统、进程、设备文件、命令行解释器等等 工具 程序。
完成之后,他让同事们一起玩他的游戏。但同事对他的这个游戏没有什么兴趣,反倒对这个系统有兴趣。同事们发现他这个相当于是 Multics 的简化版本,便戏称它这个是 "UNiplexed Information and Computing Service”,即没路信息计算系统,缩写为Unics,取其谐音Unix,这就是 Unix 的由来。此时已经是 1970 年了。小伙伴们可以打印一下计算机上的最早时间,你会发现,最早的时间就是 1970 年,即 Unix 诞生元年。
Kenneth 在写完操作系统开发后,觉得 Unix 需要一个系统级的编程语言,于是就创造了 B 语言 (Basic Combined Programming Language 基本组合编程语言),但后面丹尼斯发现B语言只适合处理某些种类的问题,具有自身的局限性,于是便创造了新的语言,就是我们今天熟知的 C 语言
Unix BSD 分支的夭折
Unix 这个操作系统非常好用,于是便在贝尔实验室内部流传开来,并经过不断改良。到 1974 年的 7 月贝尔实验室公开了第五个版本的 Unix ,这首先引起了学术界的关注,并向其索取源码用作教育目的。1978 年伯克利大学推出了以 Unix 第六个版本为基础的拓展版。于是首个 Unix 拓展分支出现,并命名为 BSD (即 Berkeley Software Distribution 伯克利分发版)。80 年代后期,几个伯克利毕业的同学,成立了一家Berkeley Software Design Inc.公司,简称 BSDi。专门销售 BSD 的商业版本。当时贝尔属于 AT&T ,而AT&T被《谢尔曼反托拉斯法》规定了不能销售除了电话机电报机等之外的商品。后来 AT&T 解体了,Bell 可以售卖 Unix 了。于是把 BSD 告上了法庭,这对 BSD 来说,是一个致命的打击。并且,更过分的是,Bell 把这个价格定得死贵死贵的,一份授权 4 万美元,这让当时很多的研究者和学者望而却步。也是 Unix 厄运的导火索。
Gnu计划
在 Unix 开始收费的同时,我们今天要聊的第三位老哥登场了——理查德·马修·斯托曼(英文名:Richard Matthew Stallman),他发起了 GNU 计划, 目标是创建一套完全自由的操作系统。同时开创了 Copyleft 的概念。你看一下它的 logo 就很有意思。
看图思意,我们可以理解它是反著作权,但其实它并不是说要作者放弃著作权。它的核心其实是需要使用著作权法的原则来保护使用、修改和分发自由软件的权利。而创造这个之初,其实他想要实现的,就是一个类似 Unix 的自由的操作环境,注意,这里的核心是自由。这个可以从 《Gnu 宣言》中的这段文字窥见一二——“重现当年软件界合作互助的团结精神”
Gnu 发起后,斯托曼和他的小伙伴陆续把计划中的编辑器、编译器和 shell 完成了。唯独缺乏操作系统核心。他们陆续尝试了基于 Hurd、GNU Mach 内核进行开发,认为可以借此加速操作系统的开发。但因为一直不确定卡内基梅隆大学何时要将核心源代码发布,造成计划胎死腹中。
Linux 的诞生
时间推移到 1991 年,一名 21 岁就读赫尔辛基大学的计算机科学专业的学生——林纳斯·托瓦兹登场了,他当时发现 Minix (塔能鲍姆教授为了教学之用而创作的类 Unix 的操作系统)一些不完善的地方。但塔能鲍姆教授觉得他写的这个东西,仅仅是用作教学,因此也不准备把它完善。这个时候,托瓦兹想着要不自己实现一个?刚开始就打算写一套简单的操作系统内核,并马上着手开干。
8月25日,他在 comp.os.minix 发了一个帖子:我在做个(自由的)操作系统(就是个兴趣爱好,我不会搞得像GNU那么大那么专业),打算让它工作在386 AT平台上。它从四月就开始酝酿了,马上就快好了。我想要那些喜欢或不喜欢minix的人的意见,因为我的系统和它有点类似(同样的文件系统的物理布局——由于实际原因——还有些其他的东西)。
我现在已经移植了bash(1.08)和gcc(1.40), 而且看起来奏效了。这意味着我会在几个月内得到一些实用的东西。它没有任何minix代码,并且它有一个多线程的fs。它不可移植(使用386任务切换等),而且它可能永远不会支持除AT硬盘之外的其他东西,因为我只有这些。
同年九月份,Linux 内核版本 0.01 在芬兰大学和研究网络的 FTP 服务器上发布,有 10239 行代码,一个月后, 0.02 版本的内核版本发布。不愧为 Linux 操作系统之父,这么短的时间内就可以把一个操作系统的核心弄出来。
Linux 内核是在遵守 Gnu 通用公共许可证之下发布的, 而这边 Hurd 内核的计划严重延期了。慢慢的,Linux 则替代了原来要开发的 Hurd 内核。至此,Gnu 计划基本完成。此时操作系统命名为 Gnu/Linux。但人们却往往把它简称为 Linux。
1994 年 3 月 14 日,Linux 内核 1.0.0 发布,共 176250 行代码。也就是正式版。至此之后 Linux 得到了长足的发展,也影响我们无数人的工作方式,毫不夸张地说,Unix 以及 Linux 的创造和发展,对整个社会的历史进程,有着深远的影响。而他们在一开始,其实不过是汤普逊想实现一个游戏程序,托瓦兹不过是想参照着 Minix 并完善它没有实现的功能罢了,所有说,适当的“不务正业”,可能会有意外的惊喜。
总结
纵观 Linux 的早期发展史,从肯尼斯·蓝·汤普逊、丹尼斯·麦卡利斯泰尔·里奇、理查德·马修·斯托曼以及林纳斯·托瓦兹这四个天才级黑客身上。我们会发现他们的一些共同特质--惊人的执行力+培养自己的兴趣爱好+多分享,保持开放的心态。
以上就是今天讲的Linux历史内容,希望对你有所启发~
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 天才码农的加密黑帮帝国
- 一个天才程序员的黑帮大佬人生
- 影响Linux发展的四位天才黑客
- Kafka竟然不支持读写分离!今天才知道!
- Kafka竟然不支持读写分离!今天才知道!
- 将CNN与RNN组合使用,天才还是错乱?
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Linux多线程服务端编程
陈硕 / 电子工业出版社 / 2013-1-15 / 89.00元
本书主要讲述采用现代C++ 在x86-64 Linux 上编写多线程TCP 网络服务程序的主流常规技术,重点讲解一种适应性较强的多线程服务器的编程模型,即one loop per thread。这是在Linux 下以native 语言编写用户态高性能网络程序最成熟的模式,掌握之后可顺利地开发各类常见的服务端网络应用程序。本书以muduo 网络库为例,讲解这种编程模型的使用方法及注意事项。 本......一起来看看 《Linux多线程服务端编程》 这本书的介绍吧!