Linux之父 活著的傳奇人生

2017年12月12日 12:02 來(lái)源: 作者: 我要評(píng)論(0)

標(biāo)簽:Linux(209063)安卓系統(tǒng)(20543)

  今天我們一起來(lái)回顧Linux、Git 之父Linus Torvalds傳奇的技術(shù)人生,他被稱為是世界上最成功的程序員之一,也被譽(yù)為活著的傳奇。低調(diào)的生活,它的人生卻成了傳奇。

  提起 Linus Torvalds 大家的第一反應(yīng)是怎樣的?是嚴(yán)苛刻薄,還是神級(jí)偉大,亦或是孤傲清高?二十五年來(lái),Linus Torvalds 一直堅(jiān)持在技術(shù)第一線,開(kāi)發(fā)了 Linux 和 Git 兩個(gè)項(xiàng)目,并深刻影響了軟件行業(yè)。如果沒(méi)有 Linux,就不會(huì)有基于 Linux 的安卓系統(tǒng),那世界是怎樣的?如果沒(méi)有 Git 的誕生,就不會(huì)基于 Git 的 GitHub,那么開(kāi)源的興旺之勢(shì)將會(huì)遲來(lái)多久?

  有人問(wèn) Linus,你是如何成長(zhǎng)為今天的你自己的?Linus Torvalds 說(shuō),我本人并不適合回答這個(gè)問(wèn)題,因?yàn)檫@是個(gè)漸進(jìn)不自知的過(guò)程;應(yīng)該請(qǐng)一個(gè)不會(huì)天天見(jiàn)到他的人以第三方視角,來(lái)談?wù)勔粋€(gè)不敢直視別人眼睛的十二歲書(shū)蟲(chóng)小男孩怎樣蛻變成今天的樣子的。雖然現(xiàn)在,Linus 已經(jīng)很大程度上擺脫了社交恐懼癥,面對(duì)媒體和觀眾們可以侃侃而談;但是他依然認(rèn)為自己不擅長(zhǎng)于與人打交道。他認(rèn)為貢獻(xiàn)開(kāi)源項(xiàng)目通過(guò)郵件與人互動(dòng),給人緩沖是他更喜歡的交流方式。他不喜歡直面很多人一起工作,而 Linux 和 Git 兩個(gè)項(xiàng)目則恰恰是他所喜歡的工作形式體現(xiàn)。Linus 稱開(kāi)源社區(qū)需要有溝通專家,他們溫暖而友善,但遺憾的是他自己并不是這樣的人。

  Linus Torvalds 極度熱愛(ài)技術(shù),但并不是泛 IT 技術(shù)的追隨者,他從來(lái)沒(méi)有寫(xiě)過(guò) web 程序、不會(huì)設(shè)置 FTP 服務(wù)器的他有著很聚焦的技術(shù)關(guān)注點(diǎn)。Linus 的技術(shù)興趣很挑剔,“如果我被困在一個(gè)孤島上,唯一逃生的機(jī)會(huì)就是寫(xiě)出一套漂亮的 UI,那么我死定了。所以人與人是不一樣的,我不是在找借口,我只是在解釋?!?/p>

  但是,他并不是一根筋的潔癖開(kāi)源理想者,很早他就思考了商業(yè)對(duì)開(kāi)源的作用;他很開(kāi)心也很感激商業(yè)公司和基金會(huì)幫他處理所有那些他不愿意處理的事情,并且可以做到完全放權(quán)、不管不問(wèn)?!安煌娜擞胁煌呐d趣,擅長(zhǎng)不同的事情”。

  在他眼中,很可能大多數(shù)代碼都是平庸的。為什么 25 年一直在做 Linux?“因?yàn)閷?xiě)出優(yōu)秀的代碼是件很困難的事情?!薄癓inux 項(xiàng)目中,我會(huì)和有的人說(shuō)‘請(qǐng)不要這樣做,這樣又蠢又笨’,然后他們離開(kāi)了再以不會(huì)靠近我?!彼莾?yōu)秀并嚴(yán)格,在工作中難免會(huì)傷及他人的自尊心。

  不過(guò),在他特別在意的內(nèi)核項(xiàng)目之外,我想 Linus 應(yīng)該會(huì)更加隨和甚至親切。上個(gè)月有幸面對(duì)面采訪 Linus,他全程面帶微笑;大會(huì)開(kāi)場(chǎng)的出席訪談也是一如既往地沒(méi)有準(zhǔn)備 PPT。本文取材自采訪和已有的一些訪談資料,希望可以為讀者們展現(xiàn)一個(gè)更為具體、盡量全面客觀的 Linus Torvalds。

  2被編程深深地吸引

  Linus 大約從十一歲左右開(kāi)始編程,最初看的是一本匯編語(yǔ)言的書(shū)。在祖父的電腦上,Linus 開(kāi)始使用了 BASIC 語(yǔ)言。

  Linus 的妹妹 Sara 記得 Linus 展示的第一段代碼的運(yùn)行效果,是所有 Basic 語(yǔ)言入門(mén)的那段代碼:

  

  Linus 表示他很懷疑這段代碼是否發(fā)自真心。他狡黠一笑地說(shuō),因?yàn)樗退妹?Sara 并不是一直都是最好的朋友,可能當(dāng)時(shí)他自己只是想試著友好些,并借此機(jī)會(huì)向展示 Sara 他的編程能力。

  使用 BASIC 語(yǔ)言編程在很多人看來(lái)很蠢,Edsger Wybe Dijkstra,Dijkstra 算法發(fā)明者曾經(jīng)表示:

  It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.

  “一個(gè)有過(guò) BASIC 編程經(jīng)歷的人是很難學(xué)會(huì)好的編程習(xí)慣的。作為一個(gè)潛在的程序員,他們已經(jīng)被腦殘并且無(wú)法修復(fù)?!?/p>

  Linus 表示最初的編程并不是很認(rèn)真,但是那真的就是十幾歲的他所能觸碰到了,而且他并不完全知道自己在做什么。即便當(dāng)時(shí)條件有限,即便 Edsger 的斷言有些令人觸目驚心,但是 Linus 依然成長(zhǎng)成為了一名卓越的程序員,并且在 1991 年還是在校學(xué)的時(shí)候就創(chuàng)造了 Linux 的雛形,并從此沒(méi)有再離開(kāi)。

  Linus 最喜歡的是在電腦上輸入指令,然后它就會(huì)去執(zhí)行該執(zhí)行的任務(wù),沒(méi)有任何其他多余的動(dòng)作。Linus 坦白地說(shuō)有可能是太自閉或邊緣化性格其他問(wèn)題,但是這樣的爽快干脆的執(zhí)行感絕對(duì)不會(huì)在日常生活中出現(xiàn)。

  “成為程序員真的不是我的計(jì)劃,但是這確實(shí)是我的激情所在?!?/p>

  “你看見(jiàn)代碼的時(shí)候立刻就知道這段程序是在做什么”。

  “你可以把代碼寫(xiě)得很漂亮,但是實(shí)際上它并不能解決問(wèn)題?!?/p>

  3從沒(méi)有計(jì)劃編寫(xiě) Linux,到一切為了 Linux

  Linus 曾經(jīng)公開(kāi)表示,學(xué)生時(shí)期的他本來(lái)是想購(gòu)買(mǎi) PC 操作系統(tǒng)的,但是昂貴價(jià)格實(shí)在讓人望而卻步,于是只好告訴自己說(shuō),“哎好吧,我需要自己寫(xiě)出來(lái)了?!?/p>

  在 1991 年 9 月發(fā)布 Linux 系統(tǒng)之前,Linus 其實(shí)自己寫(xiě)過(guò)好多工具。巧的是,如果再晚幾個(gè)月, 如果 Linus 知道后來(lái)問(wèn)世的 GNU kernel 或者 386BSD(NetBSD, OpenBSD 和 FreeBSD 的前身),現(xiàn)在大家可能就見(jiàn)不到 Linux 操作系統(tǒng)了。所以說(shuō) Linux 系統(tǒng)的誕生確屬是意料之外,確切地說(shuō)是 Linus 為了解決遇到問(wèn)題而做的事情。

  于是他專門(mén)為自己配著 80386 處理器的新電腦寫(xiě)下了第一版的操作系統(tǒng)代碼,開(kāi)發(fā)工作是在 MINIX 中使用 GNU C 編譯器,并且必須使用硬盤(pán)開(kāi)機(jī)。Linux 系統(tǒng)的第一個(gè)版本代碼是上傳到 FTP 服務(wù)器上的,但是至今 Linus 也不知道怎么配置 FTP,他也從來(lái)沒(méi)有自建 web 站點(diǎn)。

  每個(gè)人喜歡做的事情不一樣,對(duì)于不喜歡的事情,Linus 一律“偷懶”地尋求外援。有一個(gè)有趣的小插曲,最初 Linus 給自己寫(xiě)的操作系統(tǒng)命名“Freax”,取自自由(“free”)和奇異(“freak”)的結(jié)合,末尾附上“X”,是表示其為類(lèi) Unix 系統(tǒng);但是 Linus 委托的 FTP 服務(wù)器管理員認(rèn)為“Freax”這個(gè)名字并不好聽(tīng),于是把內(nèi)核更名為 Linux。

12345下一頁(yè)全文

本文導(dǎo)航