当前位置: 首页 > 科技观察

漫画-Linux之父:财务自由后失眠了!

时间:2023-03-18 16:57:55 科技观察

1999年,我持有的两家公司相继上市,在华尔街大受欢迎,当天股价涨幅高达733%,身为程序员的我身家飙升至2000万美元!财务自由,我却失眠!这一切是怎么发生的?故事要从我的祖父说起,他是一位统计学教授,有时需要写一些程序来做统计。但是他不喜欢敲键盘,所以总是把程序写在一张纸上,让不到十岁的我坐在他腿上,把代码敲进电脑里。我不知道那些统计公式有什么用,但我对计算机有浓厚的兴趣。我开始阅读计算机手册并编写我的第一个程序。姐姐对这个程序很感兴趣,要我修改,把HELLO改成“SARAISBEST”,于是电脑开始不停地夸她。爷爷的电脑比较旧,用起来很不爽。我一直梦想拥有一台自己的电脑。听说有个叫Monty的人在写MySQL。为了买自己的电脑,他暑假铺柏油赚钱!我可以获得奖学金,加上我的生日钱,我买了一台名为SinclairQL的电脑。我们这里的寒冬很长,夜很长,睡意也没有,所以为了熬过寒冬,我开发了一项室内运动:写程序!妈妈的话很有道理。现在的年轻人把所有的时间都花在了游戏上,所以他们学不到任何东西。我那时候也把时间花在了游戏上,但是我不玩游戏,我写游戏,好人都是这样。有一次,我在写一个软盘驱动,结果发现在SinclairQL上不行,这怎么可能!我写的代码总是很完美,一定是系统问题!于是做了操作系统反汇编的代码,果不其然,操作系统出现了bug!但是我无法修复这个bug,因为QL的操作系统是无法修改的!只好继续移植QL上的游戏,像吃豆人,《小小星球》之类的,没办法,游戏的吸引力太大了。直到有一天,我偶然发现了一本书,改变了我的一生:《操作系统:设计与实现》这本书是荷兰的Tanenbaum教授写的,它实现了Unix的一个小版本:MINIX。我真的被迷住了,整个夏天除了读这本书什么也没做。丹尼斯里奇和肯汤普森是天才。他们将Unix设计得如此巧妙,只需几个简单的系统调用(open、close、read、write、fork……)就可以完成非常复杂的任务。手痒痒的,忍不住想操作Unix,或者Minix。遗憾的是,我的QL电脑无法安装Minix。虽然可以远程登录大学的Unix主机,但是大学还没开学呢!我决定买一台真正的386电脑,很贵,3500美元!等不及了,还可以分期付款不惜一切代价!我在MINIX上玩得很开心,但无法通过电话线连接到大学计算机,因为它没有很好的终端仿真程序。不难,我自己写一个。不过,我还是决定玩个大游戏:我的终端仿真程序应该是一个独立的王国,不依赖于Minix,一开机就可以运行!只能从BIOS启动。我要写boot分区,固定实模式,和保护模式,让程序在一些地址间跳转。还要读键盘输入,显示在屏幕上,还要读写调制解调器,俗称“猫”,你们年轻人应该没见过吧。很快我意识到我需要实现多任务:一个任务从“猫”读取数据并显示在屏幕上,另一个任务从键盘读取数据并写入“猫”。于是仔细研究了386CPU的多任务编程,做了一个小实验:两个任务交替显示字符:姐姐看不懂我的大作,多少让我有些失望。我已经把我的终端仿真器变成了一个多任务处理程序,用它来检查电子邮件和进入MINIX讨论组。我很快发现,还需要下载东西并保存到硬盘中。那得了吧,不就是写个磁盘驱动和文件系统吗?我开始疯狂地编程。慢慢地,我意识到我的终端仿真程序不仅仅是一个程序!你看,它一般是存放在软盘上的,只要把软盘插入电脑,它就会开始运行,它还能管理键盘、调制解调器、显示器、磁盘,支持多任务处理.....这个程序就是TMD操作系统!!!然后让它成为一个真正的操作系统!操作系统必须有一个用户界面接口,即Shell。我下载了一个著名的shell:bash。希望它适用于我的操作系统。但这是一件非常困难的事情,因为bash需要使用很多操作系统的系统调用才能运行。黑色的窗帘挡住了阳光,不知道什么时候是白天,什么时候是晚上。我不断地编程,实现POSIX系统调用,我就像神一样,创造着计算机世界的一切。光阴似箭,星移月动,终于有一天,bash跑起来了。整栋楼都建好了,剩下的工作就简单了。我很快将C语言编辑器gcc移植到了我的操作系统中。1991年9月17日,我决定发布我的操作系统Linux的0.01版(是的,就是这么叫的),尽管先让几个人试用会更好。令我意外的是,虽然Linux仍然存在很多bug,甚至还破坏了某人的文件系统,但是这些技术狂热者的反馈非常积极,对我的工作非常积极。但我觉得,主要的创意工作已经完成了,剩下的修修补补就没什么意思了,我应该去探索一些新的东西。某天,不小心弄坏了Minix操作系统,我来到了一个重要的十字路口:是选择重装Minix,还是选择Linux作为操作系统,从此吃自己的狗粮?老天让我选择了后者之后,我从此走上了不归路。我开始不断修复bug,发布了新版本0.02、0.03.....0.10Linux功能越来越多,影响力越来越大。许多用户从Minix叛逃并加入了Linux。这引起了Tanenbaum教授的不满,他在网上发表了很多攻击我的帖子。特别值得一提的是,他是微内核的坚定支持者。他说,Linux采用的宏内核已经过时、落伍了。我毫不客气地反击。我知道我会赢,因为Minix限制人们修改和增强它,Tanenbaum教授说这是为了教学和防止过于复杂。而我的Linux是完全开放的。1991年,我在赫尔辛基科技大学听了RichardStallman的演讲,他提倡自由软件运动。他说他会创建一个GNU操作系统,使用GPL协议。开源的Linux迅速获得了用户的心,全球无数开发者参与其中。1994年,Linux1.0版终于发布了,我在母校赫尔辛基大学举行了盛大的发布会,这也是我第一次上电视。很多人都有一个疑问:为什么这些程序员在吃饱了没事干的情况下免费开发Linux?其实我觉得是为了获得别人的尊重和认可。但是,如果你是Linux内核的重要贡献者,我公司会火速邀请你。管理全球数以万计的程序员并非易事。我被迫成为一个团队的领导者,有人发明了一个“仁慈的独裁者”并交给了我。我的技术绝对没有问题,关键是沟通能力,如何化解分歧,说服??别人,赋能别人。因为懒惰,所以大部分时间我都遵循着中国古代老子所说的“无为而治”的做法,这种作风在业界一直很受欢迎。奇怪的是,我能管理好几万个在网上素不相识的程序员,却管理不了全美达面对面的十几个人。一个叫EricRaymond的人写了一篇文章,叫做《大教堂与集市》,总结了Linux的成功。建议大家好好看看:1、好的软件来源于解决开发者真正的痛点。2.把用户当成开发伙伴是快速改进代码和有效调试的唯一途径。3.尽早发布,经常发布。并听取用户意见。4.万众瞩目,虫子无处遁形。5.聪明的数据结构,即使有笨拙的程序代码,也比聪明的代码加上笨拙的结构要好得多。6.保持项目简单。当设计完美的时候,不是东西不能再加了,而是东西不能再减了。Linux的发展比我想象的要快,很多大公司都加入进来了,Sun要支持Linux,IBM要支持Linux,他们要花10亿美元,我的天。随后数据库厂商Informix、Oracle也相继支持Linux。这让微软非常生气,据说我的头像被寄托在了微软飞镖的靶心上。专注于Linux的RedHat和VALinux给了我一些我根本不关心的股票期权,我把那些法律文件扔进了垃圾桶。随后Linux引起了华尔街的注意。1999年8月11日,红帽上市,首日涨至35美元。我算了一下,一下子就有了50万美元,真是让我心跳加速。很快收到RedHat的邮件,说pre-IPO股票被拆分,我的50万变成了100万!这不重要。12月9日,VALinux也上市了,首日暴涨733%,高达320美元,个人财富暂时飙升至2000万美元!但是后来VALinux一路下跌,我经常在夜里惊醒,担心财富会急剧下降。我是LinusTorvalds,大家都称我为神,但你看,在巨额财富面前,我的反应和普通人一样。背后的故事大家都知道了。Linux主导服务器端,占据嵌入式开发,成为Android的基础操作系统。由于对现有版本控制系统的不满,我开发了Git这个风靡全球的系统。我现在在Linux基金会工作,但我已经不怎么编程了,我主要是阅读电子邮件,了解每个人在做什么,然后说是或否。这是我的故事。最后,送大家一碗鸡汤:追随内心的兴趣,你才会真正成功!还有一句话:成功需要一点运气!Linux如果几年前出现,就不会踏入互联网的大潮,不会有大规模的使用和全球协作,如果再晚几年出现,很可能会被其他的取代操作系统。Linux的出现恰逢其时,满足了互联网时代对自由操作系统的需求。