漫畫 | Linux之父:財務(wù)自由以后,我失眠了!
1999年,我持股的兩家公司相繼上市,受華爾街的熱捧,股票當(dāng)天漲了733%, 我這個程序員的財富飆到了2000萬美元!
財務(wù)自由了,我卻失眠了!
這一切是怎么發(fā)生的呢?
故事得從我的外公說起, 他是一位統(tǒng)計學(xué)教授,有時候需要寫點(diǎn)兒程序做統(tǒng)計。
但是他很不喜歡在鍵盤上打字,所以總是把程序?qū)懙揭粡埣埳?,讓不到十歲的我坐到他的膝蓋上,把代碼敲入計算機(jī)。

我不知道那些統(tǒng)計學(xué)的公式有什么用處,但是對電腦產(chǎn)生了強(qiáng)烈的興趣。
我開始閱讀電腦的手冊,編寫人生的第一個程序。

我妹妹對這個程序非常感興趣,讓我做了修改,把HELLO改成了 “ SARA IS BEST” ,于是電腦開始無休無止地夸獎她。

外公的電腦是比較老舊了,用起來很不爽,我一直夢想有一臺自己的電腦。
聽說有個寫MySQL的人叫Monty,為了買屬于自己的電腦,暑假里去鋪瀝青賺錢!(碼農(nóng)翻身注:詳情參見《再見!MySQL》)
我可不會這么笨,我是個優(yōu)秀的學(xué)生,每年都能得到獎學(xué)金,再加上我生日的壓歲錢,我就買了一個叫做Sinclair QL的電腦。

我們這個地方的寒冬特別長, 長夜漫漫,無心睡眠,于是我培養(yǎng)了一個度過寒冬的室內(nèi)運(yùn)動:寫程序!
我的媽媽的話非常有道理。

現(xiàn)在的年輕人把所有的時間都花在游戲上,所以啥也學(xué)不會。
我那時候也是把時間花在游戲上,不過我不玩游戲,我編寫游戲,牛人們都是這樣的。

有一次,我在編寫一個軟盤驅(qū)動程序,卻發(fā)現(xiàn)在Sinclair QL上無法工作,這怎么可能!
我寫的代碼總是完美無缺的, 肯定是系統(tǒng)的問題!
于是我就把操作系統(tǒng)的代碼做了反匯編,果然不出我的所料,操作系統(tǒng)有Bug!

但是我卻沒法修復(fù)這個Bug,因?yàn)镼L的操作系統(tǒng)不能修改!
我只好繼續(xù)在QL上移植游戲,像什么Pac-man,“小行星”之類,沒辦法,游戲的吸引力實(shí)在是太大了。
直到有一天, 我遇到了改變我一生的一本書:《操作系統(tǒng):設(shè)計與實(shí)現(xiàn)》

這本書是荷蘭的Tanenbaum教授寫的,里邊實(shí)現(xiàn)了一個Unix的小型翻版:MINIX。
我真的被迷住了,那年的夏天我啥也沒干,一直在讀這本書。

丹尼斯·里奇和肯·湯普森真是天才,他們倆設(shè)計的Unix非常精妙,它僅僅用幾個簡單的系統(tǒng)調(diào)用(open, close, read, write, fork...)就可以完成非常復(fù)雜的任務(wù)。
我手癢了,忍不住要去操作一下Unix,或者M(jìn)inix。
悲催的是, 我的QL電腦裝不了Minix, 雖然可以遠(yuǎn)程登錄大學(xué)的Unix主機(jī),但是大學(xué)還沒開學(xué)!
我決定買一臺真正的386電腦,價格昂貴, 3500美元!等不及了,分期付款也在所不惜!

在MINIX上我玩得很高興,但是卻沒法通過電話線連到大學(xué)的電腦,因?yàn)樗鼪]有一個好用的終端仿真程序。
這并不難,我自己寫一個就行。
不過,我決定玩一把大的:我的終端仿真程序應(yīng)該是個獨(dú)立王國,不依賴于Minix, 一開機(jī)就可以運(yùn)行!

只能從BIOS開始了,我得寫好引導(dǎo)分區(qū),搞定實(shí)模式,保護(hù)模式,讓程序在一些地址之間跳來跳去。
我還得讀取鍵盤輸入,顯示到屏幕上,還要讀寫調(diào)制解調(diào)器,俗稱“貓”,你們這些年輕人估計是沒有見過了。
很快我就意識到,我需要實(shí)現(xiàn)多任務(wù):一個任務(wù)從“貓”里讀數(shù)據(jù),顯示到屏幕上,另外一個任務(wù)從鍵盤中讀數(shù)據(jù),寫入“貓” 。
于是我仔細(xì)研究了386 CPU的多任務(wù)編程,做了一個小實(shí)驗(yàn):兩個任務(wù)交替顯示字符:

我妹妹理解不了我的偉大工作,這多少讓我有點(diǎn)失望。
我把我的終端仿真程序改造成了多任務(wù), 用它來查看電子郵件,到MINIX討論組去討論。
我很快發(fā)現(xiàn),還需要下載東西,保存到硬盤中。
那就來吧,不就是寫個磁盤驅(qū)動程序和文件文件系統(tǒng)嗎?
我開始瘋狂編程。

慢慢地我意識到,我這個終端仿真程序已經(jīng)不僅僅是個程序了!
你看,它平時保存在軟盤上,只要把軟盤插入電腦,開機(jī)就能運(yùn)行,它還能管理鍵盤,貓,顯示器,磁盤,支持多任務(wù).....
這個程序不就是TMD操作系統(tǒng)嘛!!!
那就讓它成為一個真正的操作系統(tǒng)吧!操作系統(tǒng)必須有個用戶界面接口,那就是Shell。
我下載了一個著名的Shell:bash。希望它能在我的操作系統(tǒng)上運(yùn)行起來。

但是這是非常難的一件事情,因?yàn)閎ash需要使用很多操作系統(tǒng)的系統(tǒng)調(diào)用才能運(yùn)行。

黑色的窗簾遮住了陽光,我都不知道什么時候是白天,什么時候是黑夜。
我不斷在編程,實(shí)現(xiàn)POSIX系統(tǒng)調(diào)用, 我就像一個上帝,把計算機(jī)世界的一切都創(chuàng)造出來。
斗轉(zhuǎn)星移,終于有一天, bash運(yùn)行成功了。
整個大廈已經(jīng)建成,剩下的工作就簡單了。我迅速把C語言編輯器 gcc也移植到了我的操作系統(tǒng)上面。
1991年9月17日,我決定公開我的操作系統(tǒng) Linux 0.01版(沒錯,這是它的名稱),不過,先讓少數(shù)人試用一下會更好。

出乎我的意料,雖然Linux 還有不少Bug,甚至破壞了某個人的文件系統(tǒng),這些技術(shù)狂熱分子的反饋非常積極,對我的工作十分肯定。
但是我覺得吧,主要的創(chuàng)造性的工作已經(jīng)完成,剩下的修修補(bǔ)補(bǔ)沒啥意思了, 我應(yīng)該去探索一點(diǎn)兒新的東西。
有一天, 我一不小心把Minix操作系統(tǒng)給搞壞了,我走到了一個重要的十字路口:是選擇重裝Minix,還是選擇Linux 做為操作系統(tǒng),從此吃自己的狗糧?
上帝讓我選擇了后者,我從此走上了一條不歸路。

我開始不斷地修復(fù)Bug , 推出新版本 0.02, 0.03 ..... 0.10
Linux 的功能越來多,影響力越來越大,不少用戶從Minix那里叛逃,加入Linux。
這引起了Tanenbaum教授的不快,他在網(wǎng)上發(fā)表了不少攻擊我的帖子。
特別值得一提的是,他是微內(nèi)核的堅(jiān)定支持者,他說Linux采用的宏內(nèi)核已經(jīng)落伍了,過時了。
我毫不客氣的進(jìn)行了反擊。

我知道我會贏,因?yàn)镸inix限制人們對他進(jìn)行修改和功能增強(qiáng), Tanenbaum教授說這是為了教學(xué),防止過度復(fù)雜化。
而我的Linux則是完全開放的, 我1991年的時候,在赫爾辛基理工大學(xué)聽過一次理查德·斯托曼的演講, 鼓吹什么自由軟件運(yùn)動,他說要搞一個GNU操作系統(tǒng)出來,采用GPL協(xié)議。

開源的Linux迅速地獲得了用戶的芳心, 全世界無數(shù)的開發(fā)者參與其中。

1994年,Linux 1.0版終于發(fā)布了,我在母校赫爾辛基大學(xué)搞了一次盛大的發(fā)布會,那也是我第一次上電視。
很多人都有一個疑問: 為什么這些程序員吃飽了撐的沒事干,去免費(fèi)開發(fā)Linux?
其實(shí)我覺得是為了獲得別人的尊重和和認(rèn)可, 不過,如果你是Linux內(nèi)核的重要貢獻(xiàn)者,公司會搶著請你的。

管理全世界的數(shù)以萬計的程序員可不是一件容易的事情,我被迫成了一個團(tuán)隊(duì)的領(lǐng)袖,有人杜撰了一個“仁慈的獨(dú)裁者”送給我。

我的技術(shù)絕對沒有問題,關(guān)鍵是溝通的技巧,如何解決分歧,說服別人,還有就是授權(quán)給其他人。
因?yàn)槲液軕校掖蠖鄶?shù)時候奉行的做法就是中國古代的老子所說的“無為而治”,這種風(fēng)格在業(yè)界居然獲得了好評。
奇怪的是,我能管理網(wǎng)絡(luò)上未曾謀面的數(shù)萬程序員,卻不能面對面地管理好Transmeta公司那十幾號人。
有個叫做Eric Raymond的人,專門寫了一篇文章,叫《大教堂與集市》,總結(jié)了Linux的成功之道,我建議你好好看看:
1. 好軟件都源自解決開發(fā)者的切身之痛。
2. 把用戶當(dāng)作開發(fā)伙伴,是快速改進(jìn)代碼和有效調(diào)試的不二法門。
3. 早發(fā)布,常發(fā)布。并聽取用戶意見。
4. 有這么多雙眼睛看著,Bug無處可藏。
5. 精巧的數(shù)據(jù)結(jié)構(gòu)即使搭配笨拙的程序代碼,也比精巧代碼加笨拙結(jié)構(gòu)的組合要強(qiáng)得多。
6. 保持項(xiàng)目的簡單性。設(shè)計達(dá)到完美的時候,不是無法再增加?xùn)|西了,而是無法再減少東西了。

Linux的發(fā)展比我想象得還要快,很多大公司都加入進(jìn)來。
Sun 要支持Linux,IBM也要支持Linux,他們?yōu)榇艘度?0億美元,我的天。
然后數(shù)據(jù)庫廠商Informix, Oracle 也紛紛支持Linux。
這讓微軟非常生氣,據(jù)說我的頭像被釘在了微軟飛鏢的靶心上。
專注于Linux的Red Hat公司和VA Linux 公司送了我一些股票期權(quán),我一點(diǎn)兒都沒在意,我把那些法律文件都扔到了廢紙堆里。
然后Linux便獲得了華爾街的關(guān)注。
1999年8月11日, Red Hat上市了,第一天就漲到了35美金, 我算了算,我一下子擁有了50萬美元,這真是讓我心跳加速。
很快我就收到了Red Hat的郵件,說上市前股票拆分了, 我的50萬變成了100萬!
這不算啥,12月9號,VA Linux也上市了,第一天就暴漲了733%, 最高達(dá)320美元, 我的個人財富暫時飆至2000萬美元!
但是隨后VA Linux一路下跌, 我晚上常常在睡夢中醒來,擔(dān)心財富的迅速縮水。
我是Linus Torvalds , 別人都叫我大神,但是你看,在巨額的財富面前,我和普通人的反應(yīng)是一樣的。
后面的故事大家都很清楚了, Linux統(tǒng)治了服務(wù)器端,占據(jù)了嵌入式開發(fā),成為了Android的基礎(chǔ)操作系統(tǒng)。
由于對現(xiàn)有的版本控制系統(tǒng)不滿,我又開發(fā)了Git這個風(fēng)靡世界的系統(tǒng)。
我現(xiàn)在在Linux基金會工作,但是我已經(jīng)很少編程了,現(xiàn)在主要是閱讀郵件,了解大家都在做什么,然后說Yes or No。
這就是我的故事,最后我想給大家來句雞湯:追隨自己內(nèi)心的興趣,你才可能真正成功!
還有一句:成功需要一點(diǎn)兒運(yùn)氣!
Linux如果早幾年出現(xiàn),沒有踏上互聯(lián)網(wǎng)的大潮,就不會有大規(guī)模的使用和全球范圍內(nèi)的協(xié)作,如果晚出幾年,很可能會被別的操作系統(tǒng)所替代。
Linux恰逢其時,滿足了互聯(lián)網(wǎng)時代對一個免費(fèi)操作系統(tǒng)的需求。
如需轉(zhuǎn)載,請通過作者微信公眾號coderising獲取授權(quán)。