Linux大家都听说过,用过的并不多。这里说说他的发明者Linus Torvalds(里讷斯 托瓦兹)及其旧事。这位出生于1969年12月28日的芬兰人为世人所知始于1991年10月5号。是的,这一天是首版Linux内核发布日,也就是Linux的生日。彼时Linus在芬兰的赫尔辛基大学念大三,请诸位不要觉得一位本科生写出一个后来闻名世界的系统内核有多么令人惊讶。如果你也有类似与他的条件,你也是会有希望的。不着急,慢慢看。
先说说他的家庭。他的父母都是记者,祖父Ole Torvalds是一位诗人,外祖父Leo Tornqvist是一位统计学家。Leo是芬兰统计学界的先驱,在赫尔辛基大学教了25年的书,他的技术被芬兰政府用于物价和产品统计,并由此产生了一个术语:Tornqvist指数。在1981年,Tornqvist买了一台计算机Commodore VIC-20,然后让他女儿Anna的儿子帮他写程序。是的,这位时年11岁的孩子就是Linus Torvalds。不要惊奇,过程大致是这样的:姥爷写出Basic程序,外孙Linus把这些程序输入到计算机中。Linus后来回忆说:他这么做,是为了和我分享经验,并希望我对数学感兴趣。10年之后,Linus做了一件Tornqvist意想不到的事——Linux。然而,Tornqvist早在1983年就离开了这个世界。
Linus Torvalds于1988年上大学,第二年的夏天因为服兵役(11个月)暂停了学业。不过此间他读了一本书——操作系统:设计和实现,作者Andrew Tanenbaum描述了Unix的教育版MINIX。这本书改变了Torvalds的命运:他为Unix清晰的结构和原理所着迷。在第二年复学后Torvads接触到了真正的Unix。1991年,他的本科论文题目是——Linux:A Protable Operating System。他能取得这样的成就当然不能只归因于11岁就入道,并从师于一位数学家,还有另外几个原因:
-
在操作Commodore VIC-20的过程中,Torvalds还学习了汇编语言。稍后他买了一台Sinclair QL,并对其操作系统大加修改。因为当时获取软件很困难,Torvalds写出自己的编译器和编辑器。当然,还写了几款游戏。在1991年的1月5号,他又购买了一台IBM PC机(一台386),就是在这台机器上他开始研究MINIX,并在后来实现了Linux。看到了吧,读到大学时,Linus这孩子已经玩过3台计算机了,并且爱怎么玩怎么玩。我在1981年时还没上学,那时家里最贵重的电器是一台三洋牌黑白电视机。
-
在1991年,Torvalds的同学带他到科技大学(另一所赫尔辛基大学)听了一位软件大师的演讲,大师名叫Richard Stallman。Torvalds想必听完演讲激动不已,马上宣布他的Linux内核遵从大师倡导的GPLv2(说白了,就是公开自己的代码,大家随便用,前提是同样遵从GPL)。当时Stallman为了打造GNU操作系统,已经完成了几乎所有中层软件,只待做一个和硬件设备对话的内核。恰好在这个时候,Linux出现了,且是服从GPL协议的。好吧,小伙子,这块领域是你的了。这个桥段说明:一,你要有榜样引领你;二,要有大手给你机会。Torvalds很多年后坦承,如果Stallman那时完成了操作系统,他就不会去做什么Linux了。同样是多年以后,Stallman开始使GNU/Linux这样的说法,这引起了很多人的争议,对此不以为然的还有Torvalds。当然,在和Stallman一样成为殿堂级大神之前,Torvalds如果能被Stallman这样嘉许,估计会激动得睡不着觉的。
-
最后一个原因可能最容易被忽视——Unix的免费版MINIX。我没见过,此前更没听说过它。我上大学时,仅仅知道MS DOS,后来还进入了辉煌的盗版时代。想想看,没有那本解析MINIX的书,没有大学提供的UNIX学习平台。Torvalds的人生就会是另一种模样。MINIX在那时的代码是全部开放的,但并没有明确说明这是一个自由软件。直到2000年4月,其证书才做出改变。写作MINIX的人,也是那本书的作者Andrew S. Tanenbaum在1987年开发这款类Unix的微小操作系统,是使学生或有意学习操作系统原理的人可以有个学习的素材。
好了,我们做一下认识上的修正吧:Linux不是一个大三学生摸中的大奖。它的诞生源于深刻的家庭教育、开放的技术交流、和单纯的好奇心。我们这个国家复印了不少钱,拷贝了不少论文,生产了很多现在消化不完的钢材,却一直没有获得这样的好奇心。我的儿子现在假期中,每天最期待的事就是写完作业、练完琴、上完各种学习班之后玩一会。孩子啊,你听说过Linux吗?