走近Linux開發者:Alan Cox
30 Linux Kernel Developers in 30 Weeks 是 Linux.com 網站在2012年開始的一系列專題文章,該專題訪問了三十位 Linux Kernel 的開發者,其中包含了 Linus Torvalds 和 Greg Kroah-Hartman 等廣為人知的人士。這些人士所受訪的問題包括:負責的項目、任職的公司、居住地、喜好的工具甚至是工作時會聽的音樂等等。
對於想要了解內核開發的人而言,這些文章值得一讀,而且可以從中了解一些信息,例如多數的受訪者習慣於使用命令行界面的工具來工作,在桌面環境下亦然。此外有不少人表示自己偏好在安靜的環境下工作而不聽任何音樂。這些受訪者還分享了許多對於開發者新手的建議,例如可以從感興趣或者比較小的項目著手,並專註在上面,以及不用懼怕與其他開發者交流等。
Linux Story 本周為大家帶來被譽為 Linux 二號功臣的 Alan Cox 的訪談。
Alan Cox,英國程序員,自1991年開始投入Linux內核的開發工作,在開發者社群中有很高的地位。他是繼 Linus 後 Linux 內核的另一個主要維護者。在著名的計算機作家 Nikolai Bezroukov 所著的《開源運動先驅》一書中,作者認為在 Linux 業內,Alan Cox 的貢獻僅次於 Linus Torvalds,是 Linux 業內的二號人物。就連 Linus 本人也認為,Linux 能有今天,Alan Cox 功不可沒,是他最應該感謝的人!
Alan Cox 曾在1999年到2009年之間為 Red Hat 工作,2011年加盟 Intel。並於2013年通過Google+ 宣布因家庭原因離開英特爾,退出Linux開發。(退出或是因為他和 Linus 在工作上的分歧所致)
大家可以在 Linux Story 的 訪談 分類中查看本系列的所有文章。本系列文章將告訴大家他們是如何工作的,怎樣與他們協同工作以及他們成功的原因。
你的名字是?
額......所有的問題都這麼難嗎?
你在社區中扮演什麼角色 / 負責哪個子系統的開發?
在不同時期我的工作範疇涵蓋了 Linux 內核中相當大的一部分。目前(訪談時間:2012年)我正在重寫終端層,查找並修復其中的遺留 Bug。這基本上是一件無聊加可怕的純技術工作,大概沒有多少人會關心的。
除此之外我也正在努力使 Intel 的部分圖形設備實現穩定的2D圖像處理,以及獨自清理內核的 bugzilla。
你的收入來源是什麼?
在 Red Hat 任職10年後我於幾年前加入了 Intel,並且非常享受在這裡的工作。
你在哪居住?為什麼選擇那裡?
南威爾士的斯旺西。當年上大學到了斯旺西,並在這裡遇到了我太太,我們便就此定居下來。小城市相對大城市來說更讓人放鬆也更宜居,坐在窗前抬頭就能看到山脈和大海的感覺真的很棒。
你最喜愛的軟體開發工具是什麼?你通常使用什麼?在桌面系統上一般運行哪些程序?
頭腦、經驗有時候純靠運氣。我使用的技術工具相當傳統但是在編輯器方面品味非常。所以包括: bash shell, joe editor, gcc, make, git。
我的大部分設備會安裝 Fedora,桌面選用就多種多樣了,通常是隨機的,或是當我想要嘗試新玩意的時候會換上一個桌面。目前正在使用 Gnome3,其他情況下通常是 Xfce。
當我發現 Fedora bug 越來越多(當然它們技術上做的非常好,只是因為加入了太多新特性),偶爾也會嘗試下其他的發行版。
你是如何參與進 Linux 內核開發的?
純屬意外,我一直在自己的 Amiga 上使用 Unix 來實現 email 和 userids 功能,當時我迫切需要一款新的系統來運行多用戶遊戲 AberMUD(最早在Internet上發布的 MUD 遊戲,並在20世紀90年代初產生了重要的影響),要指望那時候的 Windows 簡直是開玩笑。也考慮到了386BSD,但該操作系統需要一塊浮點晶元。儘管BSD性能良好,但浮點晶元價格不菲,而這個時候 Linux 恰好滿足我的需求。
但很快我就發現 Linux 存在很多 bug 有待修復,在最初解決幾個問題後我用到了 Linux 網路方面的功能,並逐漸成為 Linux 網路代碼的維護者。在這個過程中我與 Thomas Radke 合作使 Linux 支持 SMP,並也嘗試參與過一些不健全的項目—— Linux Mac68K 和8086上的迷你 Linux。
是什麼讓你對這份工作始終抱有熱情?
某種程度上是因為不斷的變化。隨著硬體、軟體不停的更新換代,我們總會面臨新的挑戰。
其他方面便是我們所做的工作能夠改變世界,直接的說我們的工作讓那些買不起專利許可軟體的人可以使用電腦。
在協作開發過程中你覺得好玩的是什麼(嘴仗,愚蠢代碼的提交,驚人的成就)?
我不太確信能夠舉出一個特定的例子,很高興看到 Android 能如此普及,按照這個速度,Android 的使用量將會超過披頭士上一張專輯的發售數量。
你對想進入該領域的開發者有什麼建議?
對任何項目來說:你都應該選擇自己喜歡的事情並且以正確的方式來做,這樣說可能有些籠統:如果你的代碼給你帶來快樂,並且是按照你認為正確的方式實現的,那就可以了。
五年後當你回過頭來重新審視的時候很可能會氣的發抖,但這就是學習的過程。
初學者最好不要把精力過多放在內核項目上,因為它太大太出名了。很多因素導致這是一項很難的工作。
新的項目和技術就要開放靈活的多,如 HTML5,3D 列印,webgl 等,沒有太多既定的東西,並且滿是可以做的事情。
你在編碼的時候聽什麼?
如果是在忙著複雜的編碼,什麼也不會聽。如果是簡單的工作,就要看工作有多無聊了,從民謠到搖滾。
在哪個郵件列表或IRC頻道或會議中可以找到你?
相當多的內核列表,不過參加的會議並不是很多。我並不熱衷於長途旅行,並且很討厭坐飛機。
但我卻很喜歡從斯旺西坐火車到布拉格,你在鐵路模型展覽上遇到我的幾率要比在 Linux 會議上大的多,Linux 或許很有趣,但也只是工作而已。
LinuxStory 翻譯地址: http://www.linuxstory.org/linux-developers-alan-cox/
少譯了一段:
For inclusivity the Ubuntu VM I used for building Android bits is still running Unity, which seems to be a poor remake of Windowmaker without the style.