IT号外:影响Linux发展的四位天才黑客

发布时间:2025-03-27 点击:13
相信大家对 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 机器,想着自己弄一个简化版本的操作系统,只支持单机即可。于是便动手开干,要知道那时候不像现在什么东西都给你准备好了,他和他的搭档就一起一个个实现文件系统、进程、设备文件、命令行解释器等等工具程序。(笔者os:大师就是大师工程能力令人乍舌!!!)完成之后,他让同事们一起玩他的游戏。但同事对他的这个游戏没有什么兴趣,反倒对这个系统有兴趣。同事们发现他这个相当于是 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 岁就读赫尔辛基大学的计算机科学专业的学生——林纳斯·托瓦兹(瑞典语:linus benedict torvalds)登场了,他当时发现 minix (塔能鲍姆教授为了教学之用而创作的类 unix 的操作系统)一些不完善的地方。但塔能鲍姆教授觉得他写的这个东西,仅仅是用作教学,因此也不准备把它完善。这个时候,托瓦兹想着要不自己实现一个?刚开始就打算写一套简单的操作系统内核,并马上着手开干。8月25日,他在 comp.os.minix 发了一个帖子:
我在做个(自由的)操作系统(就是个兴趣爱好,我不会搞得像gnu那么大那么专业),打算让它工作在386 at平台上。它从四月就开始酝酿了,马上就快好了。我想要那些喜欢或不喜欢minix的人的意见,因为我的系统和它有点类似(同样的文件系统的物理布局——由于实际原因——还有些其他的东西)。我现在已经移植了bash(1.08)和gcc(1.40), 而且看起来奏效了。这意味着我会在几个月内得到一些实用的东西。“……”是的——它没有任何minix代码,并且它有一个多线程的fs。它不可移植(使用386任务切换等),而且它可能永远不会支持除at硬盘之外的其他东西,因为我只有这些:-(。[1]
同年九月份,linux 内核版本 0.01 在芬兰大学和研究网络的 ftp 服务器上发布,有 10239 行代码,一个月后, 0.02 版本的内核版本发布。不愧为 linux 操作系统之父,这么短的时间内就可以把一个操作系统的核心弄出来
linux 内核是在遵守 gnu 通用公共许可证之下发布的, 而这边 hurd 内核的计划严重延期了。慢慢的,linux 则替代了原来要开发的 hurd 内核。至此,gnu 计划基本完成。此时操作系统命名为 gnu/linux。但人们却往往把它简称为 linux,求斯托曼宝宝的心理阴影面积。要说名字叫法这个事,真不是偶然,比如 uber 这个第一个词读 “污”,但是国内很多人把他读作“优”,后来官方也只能发布官方版为“优步”,类似的还有 wiki、ubuntu 等。有兴趣的小伙伴可以自己去了解下
1994 年 3 月 14 日,linux 内核 1.0.0 发布,共 176250 行代码。也就是正式版。至此之后 linux 得到了长足的发展,也影响我们无数人的工作方式,毫不夸张地说,unix 以及 linux 的创造和发展,对整个社会的历史进程,有着深远的影响。而他们在一开始,其实不过是汤普逊想实现一个游戏程序,托瓦兹不过是想参照着 minix 并完善它没有实现的功能罢了,所有说,对程序员来说,适当的“不务正业”,可能会有意外的惊喜
总结
纵观 linux 的早期发展史,从肯尼斯·蓝·汤普逊、丹尼斯·麦卡利斯泰尔·里奇、理查德·马修·斯托曼以及林纳斯·托瓦兹这四个天才级黑客身上。我们会发现他们的一些共同特质
首先就是惊人的执行力,要知道,在他们那个时期和圈子里。其实是有很多人能够做到和他们一样的事情。但为什么是他们首先完成了这件事并名留史册?机会永远留给有准备的人没错,但其实这句话不完整,机会其实是留给第一时间抓住它的有准备的人
其次培养自己的兴趣爱好。不管是汤普逊想实现一个星际旅行游戏,还是托瓦兹想做个个人的操作系统。它的源动力都来自于他们的兴趣爱好。很难想象一个人在自己不感兴趣的点上,能做出点什么成绩。因此,我们应该在日常保护好自己的兴趣爱好。他不一定能让你实现可见的财富上的收益,但却可能让你成为一个更有趣的人
最后多分享,保持开放的心态。unix 之所以胎死腹中,就是因为早期的闭源,错过了最好的发展机会。而斯托曼、托瓦兹倡导的开源使得 linux 得到了繁荣发展。因为开源,能够让更多的人看到你的代码,互相学习交流,从而保持整个社区的长足进步


网站制作的框架是什么?
广州网站建设必须知道的几个要素
公司网站建设时所需要注意的六个问题!
平面设计和网页设计有什么区别
品牌如何将创意包装进行到底?
论网站内容更新方法
优质的建站体系如何挑选?
云计算对于建立本地服务器有着巨大的作用