Linux 之父 Linus Torvalds 是一個怎麼樣的人?他平時是怎麼工做的?Linux 這麼大的一個項目,你們如何協同開發?2016 年,他作客 TED,爲咱們展示了他不爲人知的一面。他兩次推進了技術的革命,第一次是 Linux,第二次是 Git,下面的訪談,詳細記錄了他爲何要作這兩個項目, 他對開源的見解,以及他對本身的評價。linux
視頻地址程序員
Chris Anderson(下文簡稱 CA ):有件事情很奇怪。你的軟件,Linux,運行於數百萬的計算機中, 能夠說是他驅動了網絡。我想,全世界正在使用將近15億臺的安卓設備。每一臺裏都有你的軟件。這很是了不得。你確定有一個特別高大上的總部來實現這一切。我之前真這麼想——到我看到這張照片(以下圖),我被震驚了。真的驚了,這就是linux總部。編程
(笑聲)網絡
(掌聲)ide
Linus Torvalds(下文簡稱 LT ):好吧,讓你們失望了。我不得不說,這張照片裏最有意思的地方,被最多人問起的地方,就是那種會動的辦公桌。這是我辦公桌最有趣的地方,雖然我如今不怎麼用它了。我以爲二者是有關係的。性能
個人工做方式是...。我不想要太多外來的刺激。你們能看到,個人牆是淡綠色的。聽說精神病院的牆就是這種顏色。設計
(笑聲)3d
這種顏色能讓你平靜,不會刺激到你。指針
其實你們看不到個人電腦(主機),只能看到個人顯示器,我對電腦最主要的要求 —— 並非性能強勁,儘管我也愛 —— 就是它必須沒有任何聲音。我認識一些在谷歌工做的人,他們在家裏都有小型的數據中心,我可沒這習慣。個人辦公室也許是你見過最無聊的一個。我喜歡獨自一人,享受安靜。若是有貓進來,它會坐在個人大腿上,我喜歡聽貓打呼嚕,而不是聽特煩的電腦風扇的聲音。cdn
LT:太了不得了,你的這種工做方式,才能讓你運行如此龐大的一個技術帝國——確實是一個帝國——這是開源(軟件)強大力量的一個最好例證。
請告訴咱們你是如何理解開源的以及它又是如何一步一步發展成Linux的。
LT:我如今仍是獨自工做。真的,我獨自一人在家工做,常常穿着浴袍幹活。當一個攝影師來的時候,我纔會穿戴整齊,因此(這張照片裏)我是穿着衣服的。
(笑聲)
我一直以來就是這樣工做的。Linux也是這樣誕生的。Linux並非一個合做的產物,它是我一系列項目中的一個,純粹出於當時本身的須要,部分緣由是我須要獲得結果,但更重要的緣由是我享受編程。這段旅途的終點,在25年後的今天,咱們仍未達到。當年我只是想作一個徹底屬於本身的項目,我壓根就沒想過開源這件事情。
但在那以後,隨着項目愈來愈大,你會開始想讓別人知道。感受就像「哇,快來看看個人成果!」,但說實話,剛開始並沒那麼好。我把它放到網上供人下載,當時甚至還不是開源的。固然,全部的代碼都是開放的,但我並無想過要用咱們今天所熟知的開源方法來改進它。我當時想的是, 「看,這是我折騰了半年的成果,我想聽聽你們的意見。「
有人來找過我,在赫爾辛基大學,我有一個朋友是作開源軟件的——當年還叫免費軟件——他讓我瞭解到,「嘿,你能夠用那些已有的開源許可證」我考慮了一段時間。我其實有點擔憂商業利益牽涉其中,我想,不少人一開始會跟我同樣,擔憂本身的工做成果會被人利用,不是嗎?因而我決定了,「無論了「。而後...
CA:而後某一天,一些人對你的代碼提出了些建議,你以爲「哇哦,真是不錯,我都沒想到這一點。對改進軟件頗有幫助。「
LT:其實最開始沒有多少人直接改代碼,而是提出不少的想法。讓別人看一下你所作的項目——我想在其餘行業也是這樣——有人對你的代碼感興趣,仔細研究過,能給你反饋,給你建議。對我而言是很是重要的一件事。
當時我21歲,還很年輕,但在那以前,我人生一半時間都在敲代碼。 以前的每個項目都是我獨自完成的。有人開始評論個人代碼,給予反饋,真是頭一遭。他們甚至還沒開始改代碼,當對我來說足以載入史冊,由於我以爲,「我愛世人!」,別誤會我, 其實我並不合羣。
(笑聲)
我並不愛世人
(笑聲)
我愛電腦, 我喜歡經過發郵件互動, 由於這樣能給你緩衝。 但我真正喜歡的是 人們給出評論,參與個人項目。 這樣能讓個人項目快速成長。
CA:有沒有那樣一個時間點, 你發現本身一直在作的項目 忽然開始成型了, 你對本身說, 「等一下,這事兒也許能作成, 不僅僅是一個我能獲得良好反饋的我的項目, 而是能在整個科技界掀起軒然大波的大事」?
LT:還真沒有。 對我而言,最重要的時刻 並非它變大的那一天, 偏偏是在它還不夠大的時候。 對我而言,當我再也不獨自工做, 有10我的,或者100我的加入進來—— 這纔是一種突破。 以後事情就順其天然了。 對我來講,從100人到100萬人, 並非那麼重要。 其實個人意思是,若是你……
(笑聲)
若是你是想把本身的成果賣掉, 那確實就很重要—— 別誤解個人意思。 若是你感興趣的是科技自己, 是這個項目自己, 那麼最重要的就是找到志趣相投的人。 以後這個羣體會自發壯大。 並無一個特別明顯的時間點,我會以爲 「哇哦,這事兒快成了!」由於—— 這個時間很是漫長。
CA:全部我採訪的技術專家們 都對你讚不絕口, 說你極大改進了他們的工做。 不光是Linux, 還有Git, 是一種軟件開發管理系統。 簡單介紹一下它以及你在其中扮演的角色。
LT:咱們遇到的問題之一, (在項目開始後)一段時間後纔開始顯現, 就是當你…… 從10個或者100我的參與一個項目, 增加到1萬人的時候,而這—— 關於(Linux)內核,咱們碰到的問題是, 每次更新都有1000人蔘與, 而更新頻率是每兩、三個月一次。 這其中有些人做用不大。 有不少人能作出小小的改進。
但要進行維護, 所須要的工做量就會大大增長。 咱們吃盡了苦頭。 有時候甚至整個程序 都僅僅是爲了對源代碼進行維護。 CVS曾經是最流行的, 我恨透了它,連碰都不想碰, 我喜歡更基礎、更有趣的方法, 但其餘人又不喜歡。
CA:(笑聲)
LT:咱們陷入了僵局, 成千上萬的人想參與進來, 但不少時候,我成爲了那個斷點, 我沒法讓本身跨出那一步, 同上千人合做。
所以Git是個人第二個大項目, 它存在的意義就是維護個人第一個大項目。 事實上這就是個人工做方式。 我編程並非爲了…… 我編程是由於好玩, 但我也想作一些有意義的事情, 所以我設計每個程序 僅僅是由於我本身須要 並且……
CA:所以,實際上,Linux和Git的出現, 都是意外的收穫, 僅僅由於你不想跟太多人一塊兒工做。
LT:千真萬確。沒錯。
(笑聲)
CA:太牛了。
LT:可不是嗎。
(掌聲)
你帶來了技術革新, 不是一次,而是兩次, 咱們試圖去探尋背後的緣由。 你給了咱們一些線索,可是…… 這是一張你小時候的照片, 你手裏拿着魔方。 你剛纔提到,你從10歲、 11歲就開始編程了, 人生的一半,
你是那種電腦天才,技術宅嗎? 你在學校裏是無所不能的明星嗎? 你是個什麼樣的孩子?
LT:沒錯,我以爲本身就是宅男的原型。 我是說,當年…… 我並不喜歡跟人打交道。 那是我弟弟。 顯然我對魔方更有興趣, 徹底無視我弟弟。
(笑聲)
我還有個妹妹,她不在照片裏, 當咱們全家聚在一塊兒的時候—— 我家人不算多,但我有好幾個侄子侄女—— 她會事先給我打預防針。 在我進屋以前,她會說, 「好的,你要注意什麼什麼……」 由於我其實…… 我是個技術宅。 我喜歡電腦, 喜歡數學, 喜歡物理。 我擅長這些。 但也沒到出類拔萃的地步。 就像我妹妹說的, 我最突出的品質就是不放棄。
CA:好的,那咱們就來聊聊這個, 這頗有意思。 你不輕言放棄。 也就是說,不是由於技術宅或者聰明, 而是由於……執拗?
LT:沒錯,就是執拗。 就像, 我開始作一件事情, 我不會說,「好的,我不幹了, 我要去幹點別的…… 看,好比那個!」
我發現我在作其餘事情的時候也會這樣。 我在硅谷生活了7年。 一直在同一家公司上班, 那但是在硅谷哦, 從未換過。 這簡直聞所未聞。 尤爲在硅谷這個地方。 硅谷最大的特色就是,人們總在跳槽, 一會這一會那。 而我不是這樣。
CA:但在Linux系統發展的過程當中, 這種執拗有時會讓你和別人產生衝突。 給咱們講講這個。 維持已有成果的質量是否是很是必要? 你會如何來形容以後發生的事情?
LT:我不肯定這是否是很是必要。 仍是說回到「我並不合羣」這一點, 有的時候我還…… 能夠說, 不太理解他人的感覺, 常常會說話傷到別人。 對此我感到很抱歉。
(掌聲)
但與此同時, 有人告訴我,我應該友善一些。 而後我會跟他們說,可能你是友善, 但你應該更加富有侵略性一些, 他們會把這個當成個人不友善。
(笑聲)
我想說的是咱們是不一樣的。 我不是個合羣的人, 對此我並不感到驕傲, 但這就是我。 而我喜歡開源軟件的一點就是, 它能讓形形色色的人在一塊兒合做。 咱們沒必要相互喜歡—— 有時候咱們甚至互相討厭。 是真的,咱們常常吵得不可開交。 可是你會,你會發現許多事情—— 甚至都無法贊成保留不一樣意見, 由於你們的興趣點真的不同。
回到我剛纔說過的, 我擔憂商人們利用咱們的勞動成果, 但沒過多久,我發現, 這些商人都是很是很是好的人。 他們作那些我不感興趣的事, 關注點與我徹底不一樣。 他們使用開源軟件的方法跟我不同的。 但正由於是開源的,他們能夠這麼幹, 並且實際上效果很好。 我甚至認爲跟我使用的效果同樣好。 咱們須要合羣的人,須要能與人交流的人, 須要溫暖友好的人 就像…… (笑聲) 喜歡擁抱你,帶你走進這個圈子。 但不是每一個人都能作到。 好比我就作不到。 我關注的是技術。 有的人關注用戶界面。 我死也作不來用戶界面。 舉個例子,若是我被困在一個孤島上, 逃出生天的惟一辦法 是設計一個漂亮的用戶界面, 我寧願死在島上。
(笑聲)
人跟人是不同的, 我並非在找藉口, 只是想解釋給你們聽。
CA:咱們上週見面的時候, 你聊到本身的一些其餘特色, 我以爲頗有意思。 是關於品味的。
我這裏有一些圖片。 我以爲這一段代碼就沒什麼品位, 而這一段要好一些, 相信你們一看便知。 這兩段代碼有什麼不同?
LT:這是…… 在座的有哪些人編過程?
CA:個人天啊。
LT:我敢保證, 剛剛舉手的每一位, 確定作過單向鏈表。 它是在…… 這個,第一段不怎麼漂亮的代碼, 基本上是在你剛開始學編程的時候學到的。 你不須要真的理解這段代碼。
我以爲最有意思的 是最後一個「if」語句。 由於在單向鏈表中—— 這裏是試圖將一個已存在的入口移出鏈表—— 不一樣之處在於這是第一個入口 仍是一個位於中間的入口。 若是是第一個入口, 你須要將指針改向第一個入口。 而若是位於中間, 你須要將指針改向上一個入口。 這是兩種徹底不一樣的狀況。
CA:這一個比較好。
LT:這一個比較好。 它沒有if語句。 這徹底不影響—— 你沒必要了解這裏爲何沒有「if」語句, 你須要瞭解的是 有時候你能夠換個角度看問題, 重寫代碼,排除特例, 完美覆蓋全部狀況。 這就是好的代碼。 同時也很簡單。 這是最基本的原則。 其實這都不重要—— 固然,細節很是重要。
對我來講,我願意與之共事的人, 必須有好的品位,這就是如何…… 我舉的這個例子很傻, 沒什麼意義,由於實在過短。 好的品位體如今更長的代碼裏。 好的品位體如今能看清全局 甚至有一種直覺, 知道怎麼把事情作漂亮。
CA:好的,讓咱們來總結一下。 你有品位, 固然是對於程序員們而言, 你頗有品位——
(笑聲)
LT:對在座有些人而言,是這樣。
CA:你是個很是有才華的電腦程序員, 你異常執拗。 但確定不止這些。 由於你是改變了將來的人。 你必定有實現將來宏偉願景的能力。 你是個有遠見的人,是嗎?
LT:其實在過去兩天裏,我在TED大會 以爲不太自在 , 由於有不少關於將來的想象,對吧? 我並非一個有遠見的人。 我沒有制定將來五年的計劃。 我是一名工程師。 並且我以爲,真是—— 我是說——我很是樂意跟夢想家在一塊兒 他們行走四方,仰望蒼穹, 看着滿天星辰說,「我想到那兒去。」 但我是低頭看路的那種人, 我只想填好眼前這個坑, 不讓本身掉進去。 我是這樣的人。
(歡呼)
(掌聲)
CA:上週你跟我聊過他們倆。 他們是誰?你跟他們有什麼關係?
LT:這實際上是技術界的一個老故事了, 特斯拉和愛迪生之爭, 特斯拉被認爲是一名有遠見的科學家, 老是有瘋狂的想法。 你們都愛特斯拉。 你看,還有人把本身公司也叫這個名字。
(笑聲)
另外一我的是愛迪生, 常常被嘲諷說他是一個單調乏味的人, 並且—— 他最有名的一句話就是, 「天才是1%的靈感加上99%的汗水。」 而我是愛迪生一派的, 儘管人們常常討厭他。 若是你比較一下這兩位, 特斯拉很能抓眼球, 但真正改變世界的是誰? 愛迪生也許不是個討喜的人, 但他作了不少事—— 他也許沒那麼天才, 不是那麼有遠見。 我以爲本身更像愛迪生而不是特斯拉。
CA:TED大會這一週的主題是夢想—— 宏偉、大膽的夢想。 而你卻像碎夢人。
LT:我會試着收斂一些。
CA:太好了。
(笑聲) 咱們接受你,咱們愛你。
谷歌和其餘許多公司 使用你的軟件, 掙了很是多的錢。 你會以爲不爽嗎?
LT:不會。 緣由有不少, 其中一個緣由是,我過得不錯。 真心不錯。
另外一個緣由就是—— 若是我不將它開源,而過於糾結的話, Linux就不會發展成今天這樣。 並且Linux讓我有了許多經歷, 儘管我不喜歡,好比在公開場合講話, 但同時,這也是一種歷練。 相信我。 不少事情讓我成爲了一個快樂的人, 我以爲當初的選擇沒有錯。
CA:開源軟件這個想法—— 我想這是最後一個話題—— 開源軟件這個想法已經在全世界實現了嗎? 仍是說還有潛力可挖, 還有不少能夠作的?
LT:我有兩個想法。 我認爲開源軟件如此成功的緣由之一 在於歸根結底, 代碼是一個非黑即白的事情。 咱們有很是明確的方法來分辨, 一段代碼是行仍是不行。 代碼要麼運行成功,要麼失敗, 這就意味着沒什麼可爭議的。 咱們有不少爭議,不是嗎? 在其餘許多領域—— 人們探討過公開政治和其餘相似的事情—— 有時候真的很難去說, 沒錯,你能夠在其餘領域也採起一樣的原則, 由於在那些地方不是非黑即白的,有灰色, 也有其餘顏色。
所以,科學界的開源顯然是一種迴歸。 科學最初是開源的。 但以後變得愈來愈封閉, 只存在那些昂貴的科學期刊上。 開源讓科學回歸了, 咱們有了arXiv和開放期刊。 維基百科也改變了世界。 還有其餘許多例子, 我以爲將來還會有更多。
CA:但你不是個有遠見的人, 這些事跟你沒啥關係。
LT:固然。
(笑聲)
得靠大家去實現了,對嗎?
CA:沒錯。
Linus Torvalds, 謝謝你的Linux,謝謝你爲互聯網作的一切, 謝謝你爲安卓手機作的一切。
謝謝你來參加TED大會, 讓咱們更加了解你。
LT:謝謝。
(掌聲)