走近Linux開發者:Linus Torvalds
30 Linux Kernel Developers in 30 Weeks 是 Linux.com 網站在2012年開始的一系列專題文章,該專題訪問了三十位 Linux Kernel 的開發者,其中包含了 Linus Torvalds 和 Greg Kroah-Hartman 等廣為人知的人士。這些人士所受訪的問題包括:負責的項目、任職的公司、居住地、喜好的工具甚至是工作時會聽的音樂等等。
對於想要了解內核開發的人而言,這些文章值得一讀,而且可以從中了解一些信息,例如多數的受訪者習慣於使用命令行界面的工具來工作,在桌面環境下亦然。此外有不少人表示自己偏好在安靜的環境下工作而不聽任何音樂。這些受訪者還分享了許多對於開發者新手的建議,例如可以從感興趣或者比較小的項目著手,並專註在上面,以及不用懼怕與其他開發者交流等。
Linux Story 在接下來的日子裡會為大家講述這些內核開發者的故事,敬請期待。
歡迎來到30周30位Linux內核開發者系列專訪!本文是該系列的第一篇。Linux內核開發社區在很多方面都是獨一無二的。社區中的人們所負責策劃的是世界上最大的合作開發項目,並且對操作系統以及未來技術的發展有很大的影響。在接下來的日子裡我們將逐步更新本系列文章,向大家展示他們如何工作,如何跟他們一起工作以及什麼使得他們偉大。
開篇介紹的是Linus Torvalds。本周Linus在他的家鄉芬蘭參加千禧技術獎典禮,成為2012千禧技術獎的得主之一。在他離開前花時間回答了我們的採訪。
你的名字是?
你在社區中扮演什麼角色 / 負責哪個子系統的開發?
我是內核的頂層維護者,不直接參加任何子系統開發。但是偶爾會參與VFS層 (虛擬文件系統層) (以及更偶爾地參加VM討論)。
你的收入來源是什麼?
Linux 基金會。
你在哪居住?為什麼選擇那裡?
俄勒岡州波特蘭市,至於原因嘛,這裡安靜的多,比矽谷更宜居,從搬來至今已經好多年了。也許氣候沒有那麼好,但我相信這裡更適合孩子的成長。還有在這邊我們能夠承擔得起大一點的學區房。
你最喜愛的軟體開發工具是什麼?你通常使用什麼?
我只開一個瀏覽器(收發郵件和打發時間),和在幾個終端中跑git。偶爾會使用gitk窗口瀏覽git歷史記錄。大多數時間是讀和回郵件,合併開發樹以及查看結果。
其他我傾向於使用的工具是 perf,用於對我關心的負載問題進行壓力測試(主要有內核編譯和一些git工作負載)。
如何參入Linux內核開發?
嘿嘿,缺乏常識和寫操作系統的知識,不可能勝任這份工作。
是什麼讓你對這份工作始終抱有熱情?
僅就技術層面來說,我喜歡不斷完善做些修修補補的事情。可事實是這份工作讓我和其他人打交道,這一點真算得上意外收穫。
在協作開發過程中你覺得好玩的是什麼(嘴仗,愚蠢代碼的提交,驚人的成就)?
我認為我喜歡的部分是某人使用Linux做一些完全瘋狂的事情。從技術角度看,是一些毫無意義但又令人嘆為觀止的事情(甚至花費幾個月干這事)。
像Alan Cox移植Linux到8086上的工作。或者一些使用了擁有RAM和SD卡的8位微處理器來構建自己的計算機的傢伙,在開發板上編寫一個ARM模擬器,然後啟動 Linux (非常非常慢)。
你對想進入該領域的開發者有什麼建議?
從小事做起。不一定非要做Linux,有很多的開源項目需要幫助,你可以學習如何參與到其中。一旦你確實覺得用戶模式的編程是在浪費時間,想要參與到內核開發中,不要嘗試對內核代碼進行大改,應該嘗試找出一些小的問題,然後解決掉。一些像驅動程序沒有如期的運行的問題。
如果大家看到你在提交很多複雜的補丁前已經做了一些事情,花些時間學習協同開發是有幫助的。
但最重要的是要有「好的品味」。這個不太好描述的,卻是我個人尋找的東西。人們通常用「正確的方法」做事,我在這裡的意思並不是指你應該遵守我們這麼多年摸索積累出來的那些規則(但是你確實最好按照這些規則來做事)。其實我特別想談論一些可能出現的難以捉摸的代碼質量問題,寫代碼需要有強烈鮮明的意識去做對一件事情並且不會漏掉特殊情況和複雜性, 同時也可以避免不必要的抽象、做它應該做的, "只做一件事,並且把它做好"。
你在編碼的時候聽什麼?
我需要完全安靜的辦公環境。當我驅車帶孩子的時候才聽音樂,工作時我不想聽到任何聲響。不能有音樂,電腦的風扇也不能有噪音。只要安靜。
在哪個郵件列表或IRC頻道或會議中可以找到你?
我不使用IRC或其他的實時通訊工具,我只用郵件。我接收所有的內核和git郵件列表,但我有自動分析模式,這樣我就可以查看我關注的或者我有被CC或要求查看的主題。
說到會議,對我來說通常是指 Linux 內核峰會,然而大多數年份,我也會儘可能出席Linux Conf Australia (LCA)峰會。我喜歡這個會議因為它召開的時候在澳大利亞正值他們的夏季。但是 LCA 對我來說只是一個工作完成之後的放鬆, 所以我僅僅是隔年參加一次或者更長時間才參加一次。
有時候我也會出席一些其他的會議,(而出席的原因)通常是因為這些會議某些地方很有趣,比如說某次會議結束之後我能順便潛個水。
感謝你,Linus!下周我們將對話Thomas Gleixner。