关于 Linus 大学时期写出了 linux 内核最初版本的讨论 | 一生只为乐趣

注:本文节选自知乎关于 Linus 大学时期写出了 linux 内核的讨论,保留了节选时的高赞作为参考权重。为了便于阅读,略作语意分段。

后几篇是关于 Linus 自传的书评感悟,私以为书评中把《Just For Fun》中的 “Fun” 倾向为 “欢笑” 不妥,书名中的好玩,乐趣更多一些。


Linus 大学时期写出了 linux 内核,那个最初的版本仅就技术而言,有多厉害?

-----------------------------------------------------------------------------------

Hao Lee

发布于 2017-12-10 21:30,编辑于 2023-03-05 12:33

5802 人赞同了该回答

⚠️ 回答于 1 年前

我大三读过 Linux 0.12 内核的源代码,读得我差点找不着工作,一共一万多行代码,我不知道老李写了多久,反正我读了一年多才差不多读完,这还是跳过了文件系统里很多琐碎的细节,实在是太复杂了!!!

从我的感觉来看,老李水平确实很高,他少年时期就跟着外祖父学编程,22 岁写出内核,而且除了网络子系统外其他的都全了,这里面需要大量的基础知识比如 AT&T 汇编、保护模式、操作系统原理、处理器架构特性、链接与装载、计算机组成原理等。

按照本科生的课程进度,单单是学完这些东西就要三年,而学习到能够灵活运用以至于写出内核的程度,我觉得这个事情的难度相当高,绝大部分本科生做不了。

此外,在上世纪九十年代,互联网就那么一小撮人用,资料匮乏,交流不便,写内核所需要的基础知识又那么多,很难想象老李到底克服了多大的困难。

写内核时他还移植过 gcc,看起来对编译器也是非常熟悉,如此水准恐怕不服都不行。

即使是现在让人写操作系统,网上那么多资料随便抄,也绝非易事。

写内核最难的不是语言问题、不是理论问题,而是大局观,在脑海里要有对整个内核的宏观架构,不能写着前面忘了后面,写完后面又发现与前面冲突了。

有了大局观之后,还需要能正确的实现出每个细节,将理论知识变成现实的代码,这个过程也不简单。

此外,内核编程都是 C 语言和汇编级别的操作,出了问题要 debug 也是极其麻烦。就拿系统启动来说,在进入保护模式或长模式之前,页表和 CPU 模式处于不断切换之中。进了保护模式之后,也要刷新一两次 GDT 和页表,在这期间,gdb 这玩意儿基本就是个烧火棍。你得靠 Bochs 等模拟器进行机器语言级别的调试,手动计算指令地址打断点。等系统再往后走,到能用 gdb 时也就用不上了。想想那么个系统在跑着,即使打了断点也没法调试,所以只能靠 print 大法。前提是要首先实现出类似 printk 的东西。

总之,写内核其实是很麻烦很复杂的一件事,非常耗费时间与精力,边边角角的东西太多了,而老李写完内核以后的功力也已经超越当今无数本科生了(不敢说比例,只能说绝大部分人达不到这个水平)。

现如今我的工作内容虽然与内核无关,但是我依然接触过一些内核开发高手,也见过下班后琢磨着写玩具操作系统的人,他们遇到实际问题一般都会去参考 Linux 内核的实现,看看老李是怎么做的,还有的干脆直接在 Linux 0.11 上做修改。

从某种程度上来说,老李开发 Linux 内核的地位不亚于创世纪。

以上内容是 2017-12-11 15:30 编辑的,时光又划过五个年头,现在感觉内核并不是遥不可及的神圣殿堂,只是工程量比较大而已,里面并没有用到特别复杂的算法,或者神之一手的理论,一切的一切只有一个出发点就是满足业务需要,而内核的难点正在于如何优雅的解决一个现实的问题。Rob Pike 说 System software research is irrelevant,一定程度上的确如此。

编辑于 2023-03-05 12:33
-----------------------------------------------------------------------------------

崔英杰

发布于 2017-12-11 11:26 ,编辑于 2017-12-12 13:56

676 人赞同了该回答

⚠️ 回答于 6 年前

Linus 不是凭空创造出的 Linux。在 90 年代早期学过操作系统课程的人应该都知道,其实之前有个专门用于教育的开源 Unix 版本叫 MINIX。Linus 学习了 MINIX 后,发现 MINIX 的版权协议只允许应用在教育上,于是基于 MINIX 开发了 Linux。

MINIX 的开发则是因为 UNIX 的版权属于 AT&T,非常昂贵,所以 Andrew S. Tanenbaum 在 1987 年开发了 MINIX 用于计算机教学,在 2000 年版权协议改为 BSD, 结果 Intel 又给集成到了 CPU 里。

而 Unix 版权属于 AT&T 则是因为 Ken Thompson, Dennis Ritchie 两位大神开发 Unix 时,是在 AT&T 所属的贝尔实验室工作,尽管这只是他们私底下搞得项目,但版权还是属于 AT&T 的。

而 Unix 也不是凭空出来的,Thompson 和 Ritchie 两位大神参与过 Multics 的开发。尽管 Multics 失败了,但让他们了解了分时操作系统的核心理念及相关的实现细节,为 Unix 的开发奠定了很好的基础。

每个大牛都是站在前辈巨人的肩膀上,当然,这不妨碍大牛们的伟大。

-----------------------------------------------------------------------------------

wiles super

发布于 2017-12-12 03:37 ,编辑于 2017-12-13 08:35

451 人赞同了该回答

⚠️ 回答于 6 年前

第一个版本还不能证明 linus 有多牛,熟读 386 手册,很多系统级程序员都可以写。尤其是还有 minix 可以参考,sysv 的代码 /bsd4.4 的代码也都有。算不上多牛。但是我觉得能证明他牛的,而且牛的让我心服口服的有 3 点.

    1. 统御力极强,整个 kernel 社区 是非常难掌控的。
    1. 颠覆性的开发 git,直接秒杀 clearcase,IBM 那么多的钱都白烧了,堪称万人敌,分分钟打脸 bitkeeper。初始原型开发时间 10 天,10 天,10 天!你没看错!
    1. 骂人功夫也很牛,说实话,我骂不到这个境界。

-----------------------------------------------------------------------------------

海枫

发布于 2017-12-10 13:59 ,编辑于 2017-12-27 19:50

483 人赞同了该回答

⚠️ 回答于 6 年前

先看一则故事,选自 百度百科 哥伦布竖鸡蛋

1492 年,哥伦布发现了新大陆。从海上回来,他成了西班牙人民心目中的英雄。国王和王后也把他当作上宾,封他做海军上将。可是有些贵族瞧不起他,他们用鼻子一哼,说:“哼,这有什么稀罕?只要坐船出海,谁都会到那块陆地的。”
 
在一次宴会上,哥伦布又听见有人在讥笑他了。“上帝创造世界的时候,不是就创造了海西边的那块陆地了吗?发现,哼,又算得了什么!”
 
哥伦布听了,沉默了好一会儿,忽然从盘子里拿个鸡蛋,站了起来,提出一个古怪的问题:“女士们,先生们,谁能把这个鸡蛋竖起来?”
 
鸡蛋从这个人手上传到那个人手上,大家都把鸡蛋扶直了,可是一放手,鸡蛋立刻倒了。最后,鸡蛋回到哥伦布手上,满屋子鸦雀无声,大家都要看他怎样把鸡蛋竖起来。
 
哥伦布不慌不忙,把鸡蛋的一头在桌上轻轻一敲,敲破了一点儿壳,鸡蛋就稳稳地直立在桌子上了。

“这有什么稀罕?” 宾客们又讥笑起哥伦布来了。
 
“本来就没有什么可稀罕的,” 哥伦布说,“可是你们为什么做不到呢?”
 
宾客们一个个强词夺理:“鸡蛋都破了,那算什么呢?”
 
哥伦布却继续保持不以为然的态度:“我在刚开始定条件时,曾有说过不允许把鸡蛋敲破?”
 
哥伦布离席而去时还留下了一句令人回味的话:“我能想到你们想不到的,这就是我胜过你们的地方。”
 
宾客们一时哑口无言。

找了一下维基百科,也找到相关的 词条

是的,什么事情都很容易,在别人做过之后。

回到 30 年前的那个年代码,有勇气写个 OS,已经具备很大的能力和技术动力。在那个年代,软件技术远没有现在这么发达,很多软件都直接运行在处理器上,没有跑在 OS 之上。在那个年代,敢写出一个新的 UNIX 系统,需要很大的勇力。从发展的眼光来看,那个年代敢写 OS 并将写出来的人,本身已经是很牛了,已经将大部分人远远抛在后面了。不要用那个年代,与现在相比。

相信现在数学博士掌握的数学知识,远远比莱布尼茨时代的数学知识要丰富得多,但这并不妨碍莱布尼茨是伟大的数学家,因为他发明了微积分。Linus 在那个年代写出了 Linux 的第一个版本,尽管现在很多 cs 学生或者工程师也能写出个功能大抵相当的 OS,但并不妨碍 Linus 成为计算机领域的一流程序员,因为他编写了 Linux。

编辑于 2017-12-27 19:50

-----------------------------------------------------------------------------------

绅士喵

发布于 2017-12-11 01:04 ,编辑于 2017-12-11 01:26

417 人赞同了该回答

⚠️ 回答于 6 年前

其实 Linus 是比乔布斯和比尔盖茨更加 “技术派” 的人,并且更加得多。Linus 当初是觉得 Minix 上的终端仿真程序太烂,想自己实现一个。逐渐的又由于某些原因不得不自己实现文件系统等内容,以至于后来才成了操作系统。

在他干活的初期,他连一份完整和标准的 POSIX 文档都没有,是边摸索边学习边尝试写出来的。

当然,毫无疑问的是当时的 Linux 是参照 Unix 设计诞生的。虽然是他从零创建了 Linux,但是 Linus 最初对操作系统设计和实现也是一窍不通的,他是看了一本书,名叫《UNIX 操作系统设计》。

所以实际上仅论当时的操作系统设计而言,Linus 并没有达到什么境界。他对操作系统设计的话语权来自于他自身的实践的总结。

例如当初微内核宏内核之争的时候,他就说过他的观点。大致意思是微内核只是理论上更先进更适合操作系统的架构,但实际上微内核的模块拆分看上去是将问题分化和简化,却忽略了拆分后的模块和模块之间的组合困难程度,导致问题变得更加复杂。

也是得益于当初 Minix 的大缺陷(Linux 能运行多任务的时候 Minix 还做不到),即使 Linux 并没有 Minix 完备,却仍然大受欢迎。

再后由于来 Unix 圈一直在互相打官司,而 Linux 的开源免费且没有版权问题,导致 Linux 被广泛的采纳用来替代 Unix。Linus 本人也说过是 Unix 之间的战火导致了 Linux 当初的飞速发展。

不过现在的 Linux 是今非昔比的,有许多惊为天人的设计。乔布斯曾经想让 Linus 参与它们的操作系统,实际上就是看重了 Linux 背后的开源力量。乔布斯想让为 Linux 贡献代码的 Hacker 们为它们的操作系统贡献代码。最后以 Linus 瞧不起 Mach 内核而谈崩。所以单纯谈 Linus 本身的技术水平意义早就不大了,它对 Linux 的贡献最大的应该是对项目的领导上,而不是技术上。

Linus 对比尔盖茨也发表过观点(在他的自传上):称比尔盖茨无法给他技术上的见解,同样的他也无法提供比尔盖茨商业上的规划。在我看来肯定存在将比尔盖茨认为是成功的商人而不是成功的技术人的意味。

从技术角度看也能发现这么多年过去了,Linus 还掌握着对 Linux 技术细节的话语权,可见他对操作系统的设计和见解可能已经超越他曾经的许多前辈了。

例如前段不久 Linus 就批判了 Google 的安全专家(并称他们不懂操作系统运作):Linus 怒喷谷歌安全工程师

回到问题,Linus 最初纯粹由他实现的最后一个内核版本技术究竟多厉害?至少打败了当时非常流行的 Minix,虽然当时 Minix 也只是一个没有多少实际作用的 “实验室系统”。而在 Linux 之前,Minix 也被像 Linus 这样的 Hacker 采用而不用 MS-DOS 证明 Minix 也是很优秀的。

所以,相当厉害。

编辑于 2017-12-11 01:26

-----------------------------------------------------------------------------------

CodeAllen

发布于 2021-12-25 19:18 ,编辑于 2023-02-16 07:28

99 人赞同了该回答

⚠️ 回答于 1 年前

我自己本科的时候做个一个简单的嵌入式操作系统,采用时间片轮询机制,可以实现单线程运行,这个当然和 linux 系统还差很多,以至于我已经本科毕业四年了,还在研究 Linux 系统(作为工作需要研究的从广慢慢转到了精)

说回问题本身,这个问题我认为要考量时效性的

现在如果比较痴迷操作系统(我从大一就开始学习单片机,这是个我的启蒙),本科期间就可以照葫芦画瓢写个操作系统,但是这个前提是现在的资源无比丰富,很多现成的例子可以参考

如果放到林纳斯那个年代就很艰难了,一个是资料很少,还一个是同道者没有像现在这么好的交流平台,当然硬件也不像现在这么通用

这些当然是可以克服的,不然林纳斯也不可能创造 linux,当时看林纳斯的书《just for fun》深有体会

顺便说一句,可能有些同学会说林纳斯有语言优势,但我记得英语并不是林纳斯的母语,他学习操作系统的时候用的确是英文书,也是啃了很久,对比之,现在本科能啃操作系统等大部头英文原本的同学也是少数,所以不管是从兴趣还是努力,林纳斯应该都算是天才少年类型的,而且还生在北欧这么个富裕且重视科学的环境,也算是天时地利人和了(有时候吐槽国内也是因为环境原因)

发布于 2021-12-25 19:18 ,编辑于 2023-02-16 07:28


via:


《Just for fun》-Linux 之父 Linus 的传奇人生

文 / 鄢波 发布于 2020-08-23 11:34

Linus 的计算机启蒙

1969 年 12 月 28 日,Linus 出生于芬兰赫尔辛基,他从小就是一个书呆子,矮个子,读书不错,但是不擅长运动,不善社交。

Linus 的外公是赫尔辛基大学的统计学教授,1981 年 Linus 11 岁的时候,外公买回来一台 Commodore vic-20 计算机,用来在家进行统计学计算。Linus 就帮助外公输入他事先写在纸上的 basic 程序。一开始是机械的输入外公写好的程序,后来是根据计算机的使用手册,把示例程序敲出来。

然后 Linus 对计算机的兴趣就一发不可收拾,买了很多计算机的书和杂志,然后发现计算机是机器语言来控制的,于是他开始研究机器语言编写程序,在外公过世后,这台计算机归了 Linus 所用,从此,他开始了更疯狂的计算机学习(玩电脑)。

在家玩电脑,熬通宵是常有的事情,别的男孩是躲在被窝里悄悄的阅读《花花公子》,他则是假装睡着,等妈妈走开再坐到电脑跟前。因为玩的太沉迷,他妈妈会和她的一些记者朋友们说,Linus 是个很好养的小孩,只要把他和一台电脑关在一个黑乎乎的小屋里,再时不时的丢一点面条进去就行。

Linus 的程序员气质也是从小养成的,小学的时候学校当时有好些女生想要得到他这位数学天才的辅导,他却都不理不睬的。到中学的时候,带女孩子回家辅导数学,就真的辅导数学,女生的暗示都没有听懂。

这就是程序员的注孤生 buff 吧,女生哪有计算机有意思。

Linux 操作系统的诞生

读高中的时候,因为数学特别好,拿了奖学金,加上日常攒钱和打工,Linus 花了 2000 美金,买了一台 sinclairQL。

Linus 的操作系统之旅是从驱动程序开始的,他买了一个软盘控制器,但是自带的驱动程序特别差,所以他就自己写了一个,结果在写驱动的时候,发现了 sinclair 自带的 Q-DOS 操作系统的 bug,于是他开始对操作系统进行反汇编,把操作系统的机器语言翻译为汇编语言,但是 Q-DOS 只有钩子机制可以加载自己的代码,系统本身不支持任何修改,这给年轻的 Linus 埋下了做操作系统的种子。

Linus 充分诠释了什么叫我行我上

每个人都可能会遇到一本改变自己一生的书,对 Linus 而言,改变他一生的书是安德鲁・坦尼鲍姆所著的《操作系统:设计与实现》。

这本书里阿姆斯特丹自由大学的教授坦尼鲍姆讨论了他为 Unix 操作系统编写的教学辅助工具 - Minix 操作系统。Minix 是一个小型的 Unix 系统,是为了介绍 Unix 操作系统如何实现而做,也是最好入门 Unix 操作系统的代码示例。这本书让 Linus 脱胎换骨,在操作系统领域达到了一个全新的高度,为他编写 Linux 解决了大量技术问题。

Linus 在学习 Minix 操作系统的过程中,对自带的终端仿真程序非常不满,于是自己写了一个。然后他不想在 Minix 系统里写,想要在无系统的裸硬件上写,来更好的理解计算机的执行原理。于是他需要知道 cpu 的工作原理,知道如何写入屏幕,如何读取键盘的输入,如何读写 modem,这就是操作系统的雏形。Linus 用这个终端程序登入学校的电脑,查阅电子邮件,参加 Minix 新闻组的讨论,但是他还想上传和下载文件,于是还需要磁盘驱动程序和文件系统驱动,这是巨大的工作量。他的日程从此变成了编程 - 睡觉 - 编程 - 睡觉的循环,在过程中,这个终端越来越像操作系统,于是 Linus 干脆决定把这个终端做成操作系统。

要做成操作系统,还有一个巨大的挑战,那就是要实现 Posix 规范,也就是 Unix 系统里的系统调用,有了这些系统 api,其他 Unix 的程序就可以在这个操作系统上运行。Linus 在电子邮件新闻组里求助未果后,找到 Sun 公司 Unix 系统的用户手册,然后根据基本版的系统调用标准,开始自己实现这些功能。

同时他在电子邮件讨论组里的求助邮件,引起了赫尔辛基理工大学的助教阿里・克莱姆的注意,阿里为他提供了 FTP 站点,让 Linus 把他的操作系统代码可以共享出来。

Linus 在开发到一定程度之后,决定把代码开源出去。在 1991 年 9 月 17 日,Linus 把操作系统上传到 FTP 上,那个时候的 Linux 操作系统大概 1w 行左右,而现在 Linux 超过 1000w 行代码。

关于操作系统的命名,本来 linus 是打算叫 freax,是发 read,free,unix 的合成词。但是阿里・莱姆克很讨厌这个名字,他挺喜欢另一个名字 - Linux,也就是 Linus 的名字加上当时的操作系统命名习惯,结尾用 x,Linux 就此命名。

使用 GPL 许可,Linux 的商业价值全面释放

在发布 Linux 后,Linus 本打算就此洗手不干,因为已经完成了操作系统中最有意思的工作,对后续的内容失去了兴趣。但是意外发生了,他写的程序因为 bug,覆盖了硬盘分区,整个 Minix 系统文件没了,他要做一个选择,重新安装 Minix,或者放弃使用 Minix,使用 Linux。为了完善 Linux 系统,他决定以后就用自己的系统,需要什么 Minix 的功能,就自己写到 Linux 上,于是他继续不断更新。

与此同时,ftp 上的 Linux 操作系统代码被人注意到,开始有人下载使用,并给与了很多反馈:新增功能,修复 bug,支持新硬件等。Linus 不断地满足这些用户的要求,其中最重要的是分页到磁盘功能,也就是现在操作系统必备的虚拟内存功能。虚拟内存可以在计算机内存不足的时候用硬盘来代替内存。这个程序让 Linux 名声鹊起,因为那个年代内存还是 1mb,2mb 的规格,非常捉襟见肘,为了在低配置的情况下运行程序,这个功能作用巨大,于是越来越多的人被这个功能吸引,来使用 Linux。

在当时的极客圈,有个不成文的规定:下载软件,最好给软件作者汇上 10 美元。但是 Linus 拒绝了,虽然他手头很紧,有 5000 美金的学生贷款,分期的电脑费用也没有还完,但是他觉得自己是在其他人的基础上做出 linux,而用户的反馈可以改良 Linux,所以实在不好意思索要报酬。

但是 Linus 一时心血来潮,半开玩笑的向 Linux 用户索要明信片,结果几百张明信片从日本,新西兰,荷兰,美国等地蜂拥而至。这些全世界各地的用户反馈让 Linus 受到了极大的鼓舞,让他决定继续做下去。

Linux 越来越流行,Linus 面临着另一个挑战,就是软件版权协议。Linus 因为个人的道德洁癖和想要更好的发展 Linux,一直要求 Linux 免费且开源,在版权说明中要求任何人只要不用于出售,都可以免费使用 Linux 操作系统,而且对 Linux 做的改进必须开源。

但是慢慢的,有人开始把 Linux 下载到软盘上,然后卖给别人收取报酬,这让 linus 好好反省了 “Linux 是非卖品” 这个原则。通过反复的思考和调研,他决定使用 GPL 许可证。

GPL 许可证是通用公共版权许可证,最早是为 GNU 项目所写,主要内容是:任何遵守条款和条件的被授证人员都有权修改作品,以及复制和重新分发作品或任何派生版本。被许可人被允许为此服务收取费用,或无偿。

简单来说,Linux 本身是开源和免费的,但是也可以有人依靠卖 Linux 的拷贝和自己修改的 Linux 赚钱,但是基于 Linux 修改得到的系统,也必须符合 GPL 协议,而且提供给使用者的时候,必须提供源代码。

GPL 带来的,是 Linux 系统可以被人用于商业用途,比如你可以自己做一个 Linux 发行版本,卖给你的客户,愿意卖多贵都可以,然后你的客户得到了全部的源代码,他可以自己编译,自己修改你的系统,做成自己的 Linux 发行版,因为 GPL 规定客户可以随意使用这个源代码。那么你怎么赚钱呢?其实很简单,系统会不断的更新,安全补丁或者新功能,这些更新你的客户也是需要的。所以很多时候,你不是靠卖拷贝赚钱,而是卖维护 Linux,提供功能,补丁,咨询服务等来赚钱,变成订阅业务模式。这也是现在 Redhat 公司主营业务模式。

使用 GPL,是 Linux 操作系统发展过程中的另一个里程碑,因为有很多公司和个人,可以依靠 Linux 赚钱了,有利益相关,Linux 才能发展的更好

乘上开源软件的东风,Linux 大器终成

接下来 Linux 进入了发展的快车道,92 年第一代 x 视窗系统被一个叫奥瑞斯特・扎布罗斯基的黑客,移植到 Linux 系统,并因此实现了 socket 层。这样 Linux 有了图形界面,Linus 更是从中嗅出了机会,用 sokcet 可以实现联网能力,于是他花了 2 年,实现了 Linux 的网络功能,让 Linux 系统更加成熟。Linux 邮件新闻组知名度也越来越高,Linus 找到 5 个志同道合的高手,组成了 Linux 核心小组,通过开放源代码,Linus 做仲裁的模式,Linux 越来越成熟。

到 93 年,Linus 成为了大学助教,开始上课,而他带的第一批学生中,有一个女生给他发邮件邀他约会,她是 Linus 遇到的第一个通过互联网的方式接近他的女人,于是 Linus 把她娶回了家。(Linus 的原话就是这样)

接下来就是 Linus 的人生高光时刻,Linux1.0 版本发布,因为 Linux 已经非常知名,所以赫尔辛基大学非常支持,主动将计算机系的大礼堂借给 Linus,而且这次发布会,会在芬兰的电视上进行直播,这是他生平第一次有机会在电视上看到自己。

img

linus 当年还真的挺帅的

96 年,Linus 拿到了硕士学位,收到朋友邀请,准备去美国考察工作机会。作为业界知名技术大神,Linus 没有准备简历,就收到了 5 个 offer,硅谷公司全美达,Redhat 红帽,芬兰的电视公司,DEC 等。最后 Linus 选择了全美达。

全美达在当时是整个硅谷最神秘的公司,没人知道这家公司是做什么的,公司所有员工都签署了保密协议,不能对外透露自己的工作内容。这份神秘保持到了 2000 年,全美达推出了一种全新架构的 cpu—Crusoe,这种 cpu 最大的特点是低功耗,而且完全兼容 x86 指令集,依靠全新架构的 cpu,全美达在 2000 年 11 月 IPO 成功,成为互联网泡沫破裂前最后一家上市的科技巨头。但是因为 AMD 和 Intel 的竞争,以及自己的研发出现问题,09 年全美达被收购,同年收购全美达的 novafora 因为财务问题和经营不善破产,全美达从此成为历史。

img

全美达第一块 CPU Crusoe

全美达兼容 x86 指令集用了一个很惊人的方法,用软件翻译 x86 指令,转化为自己 cpu 的指令,而这个核心的 x86 解释程序,就是 linus 加盟后编写的。

1998 年,网景公司开放了 mozila 项目的源代码,这就是后来的 firefox 火狐浏览器的前身。2 个月后,Sun 公司也加入开源运动,成为第一个加盟 Linux 国际组织的硬件设备商,它们的服务器将支持使用 Linux 系统。(Sun 公司当年还是类似 IBM 的主要销售服务器的公司,当然 sun 最大的贡献还是开发了 java 语言,多谢祖师爷赏饭吃,不过 Sun 后来被 Oracle 收购,现在也已经是历史名词了。)IBM 随后加入,接下来是当年的数据库三巨头之一的 Informix 对 linux 系统开放数据库接口,Oracle 也快速跟进,开放数据库接口。

随着越来越多大公司的支持和技术人员的重视,Linux 开始在服务器领域攻城略地,成为最受欢迎的服务器操作系统。

财务自由

1999 年 8 月 11 日,Redhat 红帽挂牌上市,Redhat 是专门 Linux 发行版和企业服务的公司。Redhat 给了 Linus 一些股票期权,在上市的时候,Linus 突然意识到,自己有了 100w 美金,随着后续股票价格的上涨,这些期权价值达到了 500w 美金。

img

而更疯狂的是 VA Linux 上市,VA Linux 前身是 VA research 公司,最早的业务是构建和销售装有 Linux 操作系统的 pc,在 1998 年就占了 20% 的 linux 硬件市场。在 1999 年,VA Linux 进行了 IPO,上市第一天,价格就从 30 美金涨到 300 美金,VA Linux 和 Redhat 一样给了 Linus 一些股票期权。不过 VA linux 赶上了互联网泡沫破裂,在 01 年价格暴跌到 7 美元,在后续几经辗转,转型更名为 Geeknet,并在 15 年被游戏连锁店 GameStop 收购。

但是无论如何,Linus 都在这两次 IPO 中获得了巨大的财富,成为财务自由人士。

Linus 的人生哲学

Linus 认为驱动人类的是三点动机:生存,人在社会秩序中的位置,以及娱乐。

人类的进化就是从生存到社会行为,从社会行为到娱乐。

在技术的世界里,这种进化模式在重演,现代技术的早期阶段是 “技术的生存时代”,技术只是为了生存的更好些,比如更快的织出步,更快的运送商品。

现在的时代是 “信息时代”,科技被用于通讯和传播信息,这是社会化的行为,已经超脱出生存范畴。互联网就是典型的代表,有了互联网,通讯技术社会化的阶段就已经到来。

终极目标则是进入娱乐化社会,在娱乐化社会,互联网和无线通讯都是理所当然,那时候思科公司已成往事,世界将有迪斯尼公司说了算。

从这个角度看,生活的最终目的是为了享受乐趣。

个人感想

这本传记写于 2001 年,叙事的部分,就讲到通过 Redhat 和 VA Linux 的 IPO,Linus 获得财务自由为止。在 05 年,Linus 又做了一个改变世界的程序 - 分布式版本控制系统 Git,现在 Git 已经是世界上最流行的版本控制软件,而这个世界级的软件,Linus 只花了 10 天就完成了第一个版本的开发。

Linus 的成神之路,从兴趣开始个人项目,在合适的时间,选择了开源的协作模式,然后通过 GPL 协议开放,带来了商业的繁荣,最后在开源软件运动的帮助下,最终封神。作为 Linux 的核心贡献者和项目的领导者,数十年如一日的维护 Linux 内核,这在很大程度上就是源于他对编程的兴趣,就像黄易说的:唯能极于情,故能极于剑。正因为对编程的热爱,才有了 Linus 的传奇一生。


一生只为寻找好玩- 读 Linux 之父林纳斯自传

acejoy 2017/4/24

“这是书呆子的胜利!”

周末一口气看完图灵出版的这本书 《只是为了好玩:Linux 之父林纳斯自传》,涌上心头的第一句话就是这句。这本书语言风格幽默风趣,译者也最大限度的把这点保存了下来,所以读起来欲罢不能。于是在 “世界读书日” 我写下此文。

其实按我个人意见,书名改为 “一生只为寻找欢笑” 会更吸引人,因为它里面蕴含了人生哲理。不过考虑到林纳斯现在还正值壮年,这个时候谈 “一生”,似乎过早了点。这本书不厚,但是包含的亮点、真知灼见颇多,读完能让人咂巴嘴回味好久。

书后附录部分,池建强先生撰写的评论也非常精彩,这句 “一生只为寻找欢笑” 正是来源于他的文章。但我不能再重复他写过的东西,得从另外的角度写。

图灵出版过另外一本精彩的文集:《黑客与画家》。这本书探讨了黑客精神,如果你两本都读了,相信会有更多阅读体会。此书中第一篇文章就是写 “书呆子” 的:“为什么书呆子不受欢迎?他们的心思在别的地方。”

林纳斯就是个典型的书呆子。他不懂也不爱社交,从小就只钟情于计算机编程。他的母亲曾对人戏称:她 这个儿子特别好养,只要把他和一台电脑关进小黑屋,时不时的扔进一些面条就行了。 而在他长大后,却一直担心:就他这副德行,以后可怎么去结识好女孩儿啊? 这货长大了咋娶媳妇呢?通常母亲都会担忧儿子的这个问题。

可就是这个书呆子,最终成为计算机界的顶尖风云人物,他创造、领导开发的 Linux 操作系统,横扫了互联网,而且还在不断的延伸应用领域。它的种子在移动设备上扎根发芽,又拔地而起长成了另外一颗大树:Android - 安卓手机操作系统。可以说,你没听过林纳斯很正常,但是你不太可能没享用过他的代码。要么是使用构建在 Linux 上的各类网络服务,要么是用着运行了安卓系统的手机,除非你不是网民。

瞧瞧,这个心思只在编程上面的书呆子改变了世界,改善了无数人的生活体验,这是多么伟大的成就。荣耀加身,可他却对此表现的很淡然,用一种视金钱如粪土的态度对待世界的抛来的光环:“我只是为了好玩!”

要理解他,恐怕要从他的生活背景入手。

他出生成长在社会主义意识浓厚的北欧国家芬兰,他老爸是铁杆的某主义支持者。我推测,这种成长环境,对他的财富观念、价值观念,生活理念产生了不少的影响。如果他生在美国,从小在那种商业氛围浓郁的环境中成长,恐怕就会是另外一个富得流油、名声显赫的天才极客。靠 Linux 系统发大财的公司多的是,但作为创造者的却并不是亿万富豪。而这个结果,很大程度上,是他有意放弃的结果。曾有一家公司邀请他挂名当董事会成员,他拒绝了。对方很吃惊:那可是 1000 万美元啊!

在上世纪 90 年代中期,微软公司的缔造者比尔。盖茨,出版过一本《未来之路》。影响了很多人,其中也包括我。正是这本书,让我义无反顾的选择了 IT 业的工作作为职业。盖茨和林纳斯,都算得上顶级黑客。可是,回想起来,他们选择了完全不同的人生路线。盖茨选择了 “Copyright”,以软件闭源,用授权模式成为世界首富。林纳斯选择了 “Copyleft”,反其道而行之,成为开源世界的领袖。林纳斯的财富估计连盖茨的零头都没有,可是他创造的 Linux 系统和分散、开源的开发模式,锋芒在近些年已经逐渐盖过了微软。不服的可以去看看各个互联网公司的技术选型,看看有几家不用 Linux 平台的。再看看 Windows Phone 和安卓系统的用户数量对比,这次轮到 Windows Phone 连个零头都没有了。具体原因,需要另开文章单说。两人用不同的路线,影响了世界,都给人类做出了巨大的贡献。

媒体的习惯是喜欢夸大其辞,爱搞标题党,经常把人渲染的如同神一般让人膜拜。以至于很多人得到的印象是:Linux 就是一个大学生没事儿花了几个月捣鼓出的一个系统,因为风云际会运气好,得到了发展壮大的机会。然而他们没看到的是,林纳斯在少年时代就开始了自己的编程生涯:坐在教授外公腿上替他输入代码。你在 11 岁的时候在干嘛呢?在当年(上世纪 80 年代初)能拥有电脑的家庭,少之又少,寥寥无几,绝大部分人对电脑这个东西听都没听过。林纳斯推出第一版 Linux 的时候,是在 1991 年 9 月 17 日,此时他还不到 22 岁。

10 年时间,你是不是又想起了什么?没错,是 “一万小时定律”。台上 1 分钟,台下 10 年功,并非虚言。没有他 10 年的编程积累,指望突击几个月就搞定一个操作系统的核心,那是痴人说梦。

林纳斯除了给世界带来了 Linux 操作系统,还有他的另一杰作造:Git。Git 的诞生,跟创造 Linux 的经历有点像:他无法再使用以前的代码管理系统,而又对当下的软件都不满意 – 那就干脆再做一个!结果,凭借优秀的设计和实现,极快的操作速度,Git 迅速风靡代码世界。依靠 Git 功能的 GitHub 一跃而成为世界上最大的开源代码托管网站,编程界无人不知其名。我曾用过 CVS 和后继的 SVN,但是同样无法抵挡 Git 的浪潮。在我花了一些时间认真学习了 Git 的设计、使用方法后,大呼超值,它太值得学习研究透彻了。一个程序员能有一个作品被广泛使用,得到认可,就很不错了。人家有两个。服气么?

林纳斯曾在演讲中脱口而出一句玩笑话:“I am your God.” 嗯,我以为实至名归。他人很随性,在网络争论中吵架骂人也毫不逊色。

最后要谈的,是人生价值问题。书里面一开头就提到,生活中所有事情的动机:第一是生存,第二是社会秩序,第三是娱乐。生活的意义就是要你达到第三个阶段,就算成功了。但是你得超越前两个阶段

林纳斯这个说法贯穿全书,后面也在反复的说起。粗浅的理解,是先赚钱生存,再惠及他人,然后追求人生幸福快乐。在他的价值观里,并不是仅仅以赚了多少钱,以金钱数目去衡量人生价值的。深以为然!

因为种种原因,整个中国社会极度功利化。衡量人是否成功,给人多少尊敬值,基本都以他挣了多少钱为依据。有钱人声音大,放个屁都是响的,装个 X 都能引来一堆追捧。何其荒谬也!前几年,某高校有位董教授,对他的学生声称:“当你 40 岁时,没有 4000 万身价不要来见我,也别说是我学生。” 看罢不禁愕然,他不觉得自己的价值观有失偏颇会误导人么?炒 10 套房挣的钱可能比林纳斯开发软件赚的钱多很多,可你觉得炒房对社会的价值能超过他吗?恐怕连九牛一毛都没有吧?社会价值理应多元,不要都钻在钱眼儿里,否则人生就真的没啥乐趣了,你过一辈子就只为挣那点钱么?

对于林纳斯的成就,我觉得可以引用印度高分电影《三傻大闹宝莱坞》最后的评语总结:

Follow Excellence. Success will chase you.

Chase excellence, Success will follow

- Rajkumar Hirani

Chase [tʃeɪs]
v. (chase)追赶;努力获得;追求;驱逐;……

在这里插入图片描述

Follow [ˈfɒləʊ]
v. 跟着,跟随;跟踪;(时间或顺序)在……后;循着,沿着(道路等);沿着……伸延;遵循,听从;仿效,追随;理解,明白;可以推断;注视,密切关注;信奉,信仰;……

在这里插入图片描述

Pursue [pəˈsjuː]
v. 追求,致力于;继续探讨(或追究、从事);追逐,跟踪,追赶;沿着……前行;……

追求卓越,成功如影相随。

谨记。


Linux 之父的自传《Just For Fun》到底说了些什么?

五分钟诗人 IP 属地:青海 2018.09.26 17:20:36

《Just For Fun》

我对生命的意义有种理论。我们可以在第一章里对人们解释生命的意义何在。这样可以吸引他们。一旦他们被吸引住,并且付钱买了书,剩下的章节里我们就可以胡扯了。
—— Linus Torvalds

这是书中前言部分的一句话,竟说得如此直白。就内容而言,书中确实对生命的意义展开了一些阐述,Linus 认为,有三件事情具有生命的意义,它们是你生活当中所有事情的动机,包括你所在做的任何事情和一个生命体该做的所有事情。

第一是生存,第二是社会秩序,第三是娱乐。

生活中所有的事情都是按这个顺序发展的。娱乐之后便一无所有。因此从某种意义上说,这意味着生活的意义就是要到第三个阶段。你一旦达到了第三阶段就算成功了。但首先你要越过前面两个阶段。

以上就是 Linus 所谓的人生意义,可以说是整本书的精髓,但也仅限于此,因为接下来 Linus 真的要胡扯了!

说实话,Linus Torvalds 的 这本《Just For Fun》更确切地说是一本自传。~~ 从某种意义上说是通篇废话~~,第一章概括的话就是自己是如何喜爱编程进而对生活的琐事都不感兴趣,而后讲了一些 Linux 产生的过程和中间遇到的版权、法律和自己工作和经济的问题。但是从另一方面讲,这本书确实很有趣,一本书铺满了 Torvalds 对于黑客和开放文化的自我陶醉感。当想起 “道德卫道士” 和 “做事得体卫道士” 的行为时,你便会觉得这本书像是阳光一样洒在你身上,来自芬兰或来自美国的阳光。

可能不少人对 Linus Torvalds 这位牛人不熟悉,不过没关系,我们可以先大概了解一下 Linus Torvalds 的生平。

  • 托瓦兹出生于芬兰赫尔辛基市。父亲尼尔斯・托瓦兹(Nils Torvalds)是一名活跃的电台记者,母亲安娜・托瓦兹(Anna Torvalds)也是一名记者。祖父奥尔・托瓦兹(Ole Torvalds)是一名诗人和记者。外祖父 Leo Törnqvist 是芬兰第一批统计学教授。芬兰统计学会设立 Leo Törnqvist Award,授予在颁奖之前的两年内杰出的统计学硕士学位完成者。林纳斯・托瓦兹在 11 岁时,应其外祖父要求用 BASIC 语言编写一些统计学方面的小程序,这是他编程经历之始。托瓦兹家族属于在芬兰占 6% 的芬兰瑞典族,其父母都毕业于赫尔辛基大学,在学期间是积极的学运份子。他的名字来自于莱纳斯・鲍林(Linus Pauling),一位诺贝尔化学奖得主。*

1988 年,他进入赫尔辛基大学计算机科学系。1989 年,他进入芬兰陆军新地区旅,服 11 个月的国家义务兵役,军衔为少尉,主要服务于计算机部门,任务是弹道计算。服役期间,购买了安德鲁・斯图尔特・塔能鲍姆所著的教科书及 minix 源代码,开始研究操作系统。1990 年,他退伍后回到大学,开始接触 Unix。1991 年 8 月 25 日,在网络上发布了 Linux 内核的源代码。1994 年 3 月 14 日发布了 1.0 版本。1996 年,自赫尔辛基大学硕士毕业,学位论文是《Linux: A Portable Operating System》。在拜访全美达公司(Transmeta)之后,托瓦兹决定接受他们的聘用,并移居美国加州。自 1997 年 2 月,至 2003 年 6 月之间,托瓦兹都在全美达公司服务,参与该公司芯片的 code morph 技术研发。在 1997 年至 1999 年间,主要投入 86open 计划。1999 年,Red Hat 及 VA Linux 这两间公司,决定将他们公司的股票期权(stock option)一部分赠与托瓦兹,以感谢他的贡献。同年,在这两间公司的股票在市场公开发行之后,托瓦兹的财产估计为 2,000 万美元。

2003 年,为了专心于 Linux 内核的发展,从全美达公司辞职,受聘于开源码发展实验室(OSDL),担任 Linux 内核的主要维护者。2004 年 6 月,托瓦兹全家移居奥勒岗州 Dunthorpe,接近于开源码发展实验室的总部所在地 Beaverton。2005 年,为了管理 Linux 内核的源代码,开发了 Git。2007 年 1 月 22 日,自由标准组织与开源码发展实验室合并,成立了 Linux 基金会。Linux 基金会提供薪水及各种协助,以支持托瓦兹继续投入 Linux 内核的开发工作。

—— Wikipedia

一个芬兰青年大学生 Linus 创造了一种名为 Linux 的操作系统。 创造简洁优雅的程序,写出干净而无冗长的代码,或者是超一流的程序,就足以赢得同行们的尊敬和推崇。而 Linus 走得更远,他不但重新定义了一流程序、代码和软件的基准,而且迈向了 “黑客” 的终极高度,开创了另一个互联网的传奇故事。

我一开始了解 Linus 这个人的时候,是在关于他的一个 Ted 里面。如今记忆尤深的是,当时节目的主持人说 Linus 就像个肥宅,Linus 也确实承认了这个事实,很坦诚,没有一丝隐瞒。而且当时觉得他说的话很有趣,于是就查了一些有关他的资料,当看到他的一些事迹之后,我整个人对他都肃然起敬了,而且怀着好奇之心装了个 Linux 操作系统,甚是喜欢。

好像是谈论梦想,又好像是 “X 档案” 中的一段情节。一个 21 岁的芬兰大学生,在学生宿舍里写了一个操作系统的内核 ——Linux,然后公布于众,吸引了成千上万的程序员为之增补、修改和传播,短短几年就拥有了 1000 多万的用户,成为地球上成长最快的软件。

有人说,21 世纪是自由软件的世纪,这话一点都不假。尽管微软的 Windows 操作系统深入平常百姓家,但是从整体上看,Linux 的优势在近年来逐渐显现。

《幸福》500 大企业的信息主管已经纷纷在着手 Linux 的评估和部署。而且,在不到一年时间内,Linux 就得到了 IBM、HP、Compaq、Sun、SGI、Dell、Oracle、Informix、SAP、Sybase、CA、 Intel、SCO 等除微软之外的几乎所有计算机大公司的支持。虽然已被一群信徒崇拜多年,Linux,这个稳定、开放、可靠、廉宜的操作系统,只有在 1999 年才堂而皇之跻身业界主流,成为微软帝国合法的竞争对手。而且,成为地球上最炙手可热的操作系统。

光芒四射的 Linux 凭借产品的卓越脱颖而出。毫无疑问,这要归功于世界各地无数富有才华却又不计报酬的黑客(特指执着狂热的程序员),尤其是 Linus Torvalds 创世纪般的贡献。曾经被无数个巨头公司猛烈攻打,而屹然不动的微软帝国,如今,有可能被一个人发动的战争所摧毁。

Linus 的可贵之处不仅在于他发明了 Linux 惊世杰作,跟在于他所提倡的 “开源软件” 精神,直到今天,这种软件开发方式仍被人们普遍接受并且成为一种良好的开发生态。

《Just For Fun》这本书,写的恰恰是 Linus 开发 Linux,以及维护 Linux 的过程,尽管~~书中废话比较多~~,但是仍有一些经典语录值得收藏。现摘录如下。

那年夏天我做了两件事。第一件是什么都没做。第二件事是读完了七百一十九页的《操作系统:设计和执行》。那本红色的简装本教科书差不多等于睡在了我的床。

I was an ugly child.I was a nerd.I was a geek.

关于自己的童年,Linus 显然有着强烈的阴影。

Talk is cheap,show me your code.

在软件世界中,一旦你解决了最根本的的问题,兴趣就容易很快地消失。

同时我也不断地担心,在像中国这样的地方,企业并不承认 GPL 的效力,从而也不会尊重我的版权。

Linus 在不少地方说中国对开源软件如何拿去占为己有,如何不尊重版权。这是当时的情况,现在已经有好转了。

我很早就明白,最好的领导者不是让手下做他要求他们做的事情,而是让手下做他们自己想要做的事。同时,最好的领导者也明白,当手下犯错时,要让他们自己有能力纠正而不要总是自己出面纠正。最佳的领导者是能够让手下自作主张的人。

我的回答是:“为什么我要关心这些?为什么我要对苹果公司的故事表现出兴趣?我不觉得苹果公司所做的事情有什么吸引我的地方。我一生的目标也不是占领什么面操作系统的市场(的确,虽然我马上就要做到这点了,但这从来就不是我的生活目标)。”

有一个很明显的现象是,无论是开放源代码的理念还是 Linux 操作系统都在各大学里赢得了最广泛的支持,其原因之一是:青年学子们大多都抱有对主流与权威的逆反心理。

创造操作系统,就是去创造一个所有应用程序赖以运行的基础环境。从根本上来说,就是在制定规则:什么可以接受,什么可以做,什么不可以做。事实上,所有的程序都是在制定规则,只不过操作系统是在制定最根本的规则。”

我喜欢电子邮件的众多理由之一是,它如此方便又如此容易被忽略。你可以轻松地对某些邮件不加理睬。

原来,Linus 对待无端的攻击邮件秉承着这样的态度,“你可以轻松对某些电子邮件不加理睬”, 仔细想一下,确实如此。

《Just For Fun》给我最大的影响无非就是~~骗我去使用了 Linux 操作系统~~,在命令行模式下不断敲打着一些难记的指令,好让人觉得这样是如此的高端!不过,说实话,感觉 Linux 系统的确非常好用,就我目前使用的 Ubuntu 来看,它首先给了我全新的体验,用过之后竟然觉得~~Windows 是个劣质的操作系统~~。另外,在 Linux 下做程序开发真是个不错的选择!大家如果对 Linux 操作系统感兴趣,不妨去体验一下!


via:

猜你喜欢

转载自blog.csdn.net/u013669912/article/details/143309640