內(nèi)核維護(hù)者Andrew Morton與騰訊科技展開獨(dú)家對話。Andrew Morton半開玩笑的說,灰頭發(fā)的(人)——真的長時間在內(nèi)核里做貢獻(xiàn)的在Linux內(nèi)核修改時得到優(yōu)先權(quán)。
作為Linux內(nèi)核維護(hù)者,Andrew的工作就是每天與來個各地的Linux社區(qū)溝通,平衡來自各方的代碼,決定哪些可以進(jìn)入內(nèi)核,哪些還需求修改。
Andrew說,十年前,大部分Linux內(nèi)核貢獻(xiàn)人純粹是好玩,將自己希望貢獻(xiàn)到內(nèi)核?,F(xiàn)在大部分的貢獻(xiàn)者背后是有支持的,但并專業(yè)沒有改變,改變的只是比例。而且與其他社區(qū)不同的是,Linux內(nèi)核工程師參與進(jìn)來后很少離開。這些年來任命采工具和方法論都在不停地優(yōu)化,但我們的產(chǎn)量始終都在提高。
Andrew認(rèn)為,維護(hù)者不是獨(dú)裁者,而是一個法官,對于一個開源的項目它需要達(dá)到某個程度。寫成什么樣、格式怎么樣等。
Andrew會告訴那些貢獻(xiàn)者,他們提供的代碼是否合乎法則。如果是不符合法則的話,告訴他哪里不對、為什么不對,作為用戶來說因?yàn)檫@個法則也不會跟維護(hù)者爭論,因?yàn)檫@是大家都知道規(guī)矩。
在對話中,Andrew還透露,內(nèi)核維護(hù)者并沒有想象那么神秘,而且有大部分的內(nèi)核代碼現(xiàn)在是沒有維護(hù)者的,如果誰想拿到內(nèi)核維護(hù)者也非常簡單,難的地方是他要讓人家認(rèn)同他。
舉例說,比方說串口等甚至很多驅(qū)動現(xiàn)在隨手可得,只要它走進(jìn)去說我有足夠的實(shí)力、有足夠的代碼貢獻(xiàn),可以繼續(xù)維護(hù)這個代碼。(文/徐志斌 王恩斌)以下是Linux內(nèi)核維護(hù)者Andrew Morton與騰訊科技獨(dú)家對話實(shí)錄:
內(nèi)核的維護(hù)者如何決定內(nèi)核的增減騰訊科技:我們想了解您作為內(nèi)核的仲裁者,如何決定哪些代碼可以進(jìn)入內(nèi)核?
Andrew:對我來說有一個非常清晰的觀點(diǎn),作為一個維護(hù)者不是獨(dú)裁者,而是一個法官,對于一個開源的項目來說有它的法則,需要達(dá)到某個程度。
比如說你的代碼應(yīng)該寫成什么樣、格式怎么樣等等,有一些開發(fā)規(guī)矩。我是看他對開源的貢獻(xiàn)是否合乎法則。如果是不符合法則的話,就會告訴他哪里不對、為什么不對,作為用戶來說因?yàn)檫@個法則也不會跟維護(hù)者爭論,因?yàn)檫@是大家都知道規(guī)矩,我其實(shí)是一個法官的角色。
對于我來說不希望看到的是,作為一個法官來判斷是進(jìn)去還是不進(jìn)去,而是希望每一個進(jìn)來的貢獻(xiàn)都能夠進(jìn)去。我更希望的是作為一個支持角色,把為什么你不能進(jìn)去、做什么樣的改動然后進(jìn)去,希望我是能夠幫助貢獻(xiàn)者的角色。這個問題問的非常好。
騰訊科技:您做維護(hù)內(nèi)核的工作有多久了?
Andrew:我1999年開始貢獻(xiàn)開發(fā)Linux內(nèi)核,從2001年開始是內(nèi)核管理很大的貢獻(xiàn)者,2002年作為一個內(nèi)核管理者的委員。在內(nèi)核來說我說自己是一個新人,很多人在1999年前就開始做貢獻(xiàn)了。
騰訊科技:在2002年剛開始做管理者時,向您提交想進(jìn)內(nèi)核的程序的人多嗎,到現(xiàn)在有多少?
Andrew:整體來說是不斷增長的。十年前,大部分貢獻(xiàn)人純粹是好玩,自己希望貢獻(xiàn)到內(nèi)核的態(tài)度。現(xiàn)在大部分的貢獻(xiàn)者背后是有支持的,有一些公司在支持他們的貢獻(xiàn)。但并不代表非專業(yè)的貢獻(xiàn)者少了,而是比例改變了。
另外一個優(yōu)點(diǎn),內(nèi)核工程師參與進(jìn)來后很少離開了。我們現(xiàn)在采用的工具和方法論都在不停地優(yōu)化,就算人數(shù)沒有改變我們的產(chǎn)量還是高了。
不是獨(dú)裁者是法官騰訊科技:2002年到現(xiàn)在比如說同樣一個方案很多人提出來,有多少種情況要在很多很知名的提案、社區(qū)中進(jìn)行選擇?
Andrew:有兩個問題,一個是個人與公司對內(nèi)核的改變,他們的參與會不會用錢或者是人來影響。企業(yè)基本上沒有人這么做,因?yàn)榇蠹乙仓婪椒?,不?yīng)該這樣做,也很少采用這樣的方法。

對個人來說,如果他非常有名或者是貢獻(xiàn)了很久的內(nèi)核工程師來說,本身作為可以更改內(nèi)核的代表,他們會更容易做到。如果真的不好的話我也讓他們離開。
如果有兩個相同或者是相接近的功能都進(jìn)去的話,我采用的方法不是選一個或者選兩個,而是盡可能把這兩個人拉在一起,讓他們來商量處理選擇什么樣的方法。
騰訊科技:什么樣的人在加入內(nèi)核時有優(yōu)先級?像您或者是Linux之父具有優(yōu)先級?
Andrew:灰頭發(fā)的會比較好一點(diǎn),真的是長時間在內(nèi)核里做貢獻(xiàn)的。(笑)騰訊科技:您自己現(xiàn)在還寫代碼嗎?
Andrew:很少,我也希望更多時間去寫代碼,但是機(jī)會很少,也可能幾個月有一段時間留給自己寫代碼的比例非常低。
多版本是Linux的靈魂騰訊科技:近400個Linux版本,會不會給Linux的推廣和發(fā)展,包括企業(yè)在選用Linux時帶來困惑?分散的版本會不會讓Linux步入Unix的后塵?
Andrew:首先我不認(rèn)同會變成這樣。其次如果看清楚的話,那些發(fā)行版本整合后可以歸類為四五個主要的發(fā)行,有一些是變種。
我更希望的是有一個具體的辦法,把不同版本都放在一個DVD或者是光盤里,我們作為Linux廠商用同一個源來安裝,但是賣服務(wù)時賣給不同的人更好。
發(fā)行商也不這么笨,他們也知道如果市場過渡分割會有問題,有很多資源包括Linux標(biāo)準(zhǔn)組,從2.4到2.6,Suse、紅帽這些發(fā)行中間的差異還是比較大的,但差異慢慢會越來越小,兼容度會越來越高。
騰訊科技:微軟很強(qiáng)大,但動不動會有嚴(yán)重的漏洞曝露出來,我們說互聯(lián)網(wǎng)很方便,但也是建立在很不安全的基礎(chǔ)之上,Linux在共用一個內(nèi)核,這個內(nèi)核足夠安全嗎?
Andrew:微軟我不重點(diǎn)關(guān)注,純粹從Linux角度來看,也不是一個內(nèi)核這么簡單的東西。
內(nèi)核本身提供安全的架構(gòu)和框架,不同廠商根據(jù)這個框架,在這個基礎(chǔ)上建立不同的方案。紅帽采用了suse Linux,如果真的有一個攻擊出來的話,紅帽上能攻擊到并不代表一定能夠攻擊到Suse。
從另外一個層面來看,很多人以前會說Linux的市場占有率非常低,所以沒有那么多受到攻擊。但是如果看服務(wù)器端市場領(lǐng)域Linux不會比Windows差多少,但我們也不會受到攻擊。所以這個說法是沒有根據(jù)的。安全就是安全的,不安全就是不安全的,不會說因?yàn)槟愕氖袌稣加新识嗌俣绊懓踩膯栴}。
新版本內(nèi)核何時出現(xiàn)騰訊科技:在看2.6時感覺花了很長時間從最終成形,下一個版本什么時候能夠出來?
Andrew:以前是2.4、2.6,屬于穩(wěn)定版本,單數(shù)2.1、2.3、2.5是開發(fā)版本,但是在三年前已經(jīng)改變了這個方向,從2.6開始所有開發(fā)與穩(wěn)定版本都以2.6打頭開始,開發(fā)版本是以RS開始的。從前一些大規(guī)模的改做從1.0到多核的2.0,到2.0多線程支持,到2.6硬盤筷子系統(tǒng)的改作,這些工作2.6基本上已經(jīng)做完了,對于2.6來說大部分的內(nèi)核工程師都認(rèn)為已經(jīng)有一個足夠穩(wěn)定、結(jié)構(gòu)強(qiáng)大的平臺關(guān)注在不是一個架構(gòu)上的改革,而是新功能的加強(qiáng),新創(chuàng)意的平臺。沒有想過什么時候會出3,沒有計劃,因?yàn)橐呀?jīng)不需要大規(guī)模的改作了,但是新的版本會不停地出來。
騰訊科技:昨天Jim在發(fā)布會上說要在中國招一個內(nèi)核作者,您認(rèn)為這個人需要什么樣的技能和威望?
Andrew:對于內(nèi)核維護(hù)者的需求很簡單,技術(shù)一定要非常好,英語讀寫非常好,溝通能力很好,C語言的功底非常好。有足夠的能力跟其他人溝通。能夠繼續(xù)地在一個非常悶的環(huán)境里工作,因?yàn)閮?nèi)核并不是非常令人激動的工作環(huán)境。能夠跟團(tuán)體合作、跟其他人交流。
其實(shí)跟一般招聘的要求差不多。而且內(nèi)核的代碼也非常多,對于能夠把代碼很快地讀懂或者是很快地理解其他人發(fā)過來的代碼是什么意思,或者是知道問題在哪里的工作也很重要。
成為內(nèi)核維護(hù)者并不難騰訊科技:成為內(nèi)核作者在Linux圈子里是比較好的榮譽(yù)嗎?
Andrew:對于所有的內(nèi)核開發(fā)人員來說,大家對你的認(rèn)可也是你以往的貢獻(xiàn)累積出來的成果。人家都認(rèn)可你,能夠把一部分代碼交給你管確實(shí)是一種尊重和榮耀。
但同時有大部分的內(nèi)核代碼現(xiàn)在是沒有維護(hù)者的,如果你想拿到內(nèi)核維護(hù)者也非常簡單,沒有我們想象的那么難。難的地方是你要讓人家認(rèn)同你。比方說串口等甚至很多驅(qū)動現(xiàn)在隨手可得,只要你走進(jìn)去說我有足夠的實(shí)力、有足夠的代碼貢獻(xiàn),可以繼續(xù)維護(hù)這個代碼。這個榮譽(yù)是看你愿不愿意付出拿到的,而不是說這么難的一件事。
愛華網(wǎng)本文地址 » http://www.klfzs.com/a/9101032201/282916.html
愛華網(wǎng)

