Linux Kernel驅(qū)逐Android:到底發(fā)生了什么?
前日Linux Kernel維護(hù)者Greg Kroah-Hartman把Android代碼從Linux Kernel代碼庫(kù)中刪除的消息引來(lái)了廣泛關(guān)注,開發(fā)界已有很多評(píng)論對(duì)此事進(jìn)行討論。ifanr今日提供了當(dāng)天Greg聲明的全譯文,下面就讓我們來(lái)看看。
2.6.33 版內(nèi)核移除了Android的代碼。很多人不斷地問(wèn)我發(fā)生了什么,對(duì)于Android下一步要怎么辦。這里是我對(duì)整件事情的澄清:
首先,我很喜歡Android平臺(tái)。直到上周,我還每天使用我的開發(fā)手機(jī)G1。它工作良好,作為用戶我很滿意。另外,從技術(shù)角度我也很喜歡他。令人驚奇的是,Google僅僅使用Linux內(nèi)核構(gòu)建了一個(gè)可移植的和健壯的手機(jī)平臺(tái),而并沒(méi)有使用”傳統(tǒng)”Linux的任何其他東西。更加難能可貴的是,你可以 在Android系統(tǒng)之上安裝一個(gè)”真正”的Linux鏡像,兩者都能正常工作而無(wú)需任何修改。
Android 也解決了手機(jī)制造商多年來(lái)遇到的問(wèn)題:它創(chuàng)造了一個(gè)免費(fèi)的Java虛擬機(jī)和統(tǒng)一的應(yīng)用軟件層,使程序可以在所有集成它的手機(jī)平臺(tái)上運(yùn)行。因?yàn)樗某霈F(xiàn), 所有現(xiàn)存的”Linux手機(jī)協(xié)會(huì)”(”Linux Phone Consortium” )組織都宣告終結(jié),或者即將關(guān)閉。
出了什么問(wèn)題?
發(fā)生了什么致使Android內(nèi)核代碼被刪除? 簡(jiǎn)單的說(shuō),沒(méi)有人關(guān)心代碼,所以他被刪除了。正如我之前的聲明,開發(fā)分支的代碼需要繼續(xù)修改才能合并進(jìn)內(nèi)核主線內(nèi)核樹,否則將被刪除。但是,這兒還有更嚴(yán)重的問(wèn)題。Android代碼不僅僅是drivers/staging/android目錄下的一些驅(qū)動(dòng)程序。 Android系統(tǒng)的正常運(yùn)行,需要Google創(chuàng)建的一種新的內(nèi)核鎖和其安全模型鎖依賴的核心系統(tǒng)中的鉤子(hooks)。要寫出能夠在Android上執(zhí)行的驅(qū)動(dòng)程序,你需要恰當(dāng)?shù)氖褂眯碌膬?nèi)核鎖,有時(shí)候還需要使用怪異的安全模型。
這意味著所有為Android硬件平臺(tái)編寫的驅(qū)動(dòng)都不能融合進(jìn)主線內(nèi)核樹,它們?cè)谥骶€內(nèi)核中會(huì)編譯失敗。因?yàn)樗鼈円蕾嚨拇a只存在于Google的內(nèi)核分支中。因?yàn)樯厦孢@些,Google阻礙了大量硬件驅(qū)動(dòng)、平臺(tái)代碼和主線內(nèi)核樹的整合。并創(chuàng)建了一個(gè)很多制造商現(xiàn)在依賴的內(nèi)核分支。(譯者評(píng)論:邪惡的做法,利用開源的成果謀利,而并沒(méi)有回饋開源社區(qū))
創(chuàng)造內(nèi)核源代碼分支并沒(méi)有問(wèn)題,幾乎每一個(gè)發(fā)行版都有自己的分支。但是更糟的是,Google不把他們的代碼整合進(jìn)主線內(nèi)核樹,使編寫驅(qū)動(dòng)和平臺(tái)代碼的公司無(wú)法回饋開源社區(qū)。內(nèi)核開發(fā)社區(qū)早在幾年前就告訴這些公司使他們的代碼合并進(jìn)主線內(nèi)核,以得到自動(dòng)的安全修復(fù)和自動(dòng)處理API變動(dòng),很多公司聽從建議,內(nèi)核的每次發(fā)布都包含大量這些公司貢獻(xiàn)的代碼。
但是現(xiàn)在他們被卡主了,Android相關(guān)平臺(tái)代碼和驅(qū)動(dòng)不能被整合進(jìn)上游系統(tǒng),這迫使這些公司維護(hù)和開發(fā)周期的大幅延長(zhǎng)。
具體要怎么做?
我真的不知道。Google沒(méi)有表現(xiàn)出要使他們的代碼向上游整合的任何跡象。一些公司想要修改Android相關(guān)接口使其向上游整合,但是這需要大得多的努力,這并不是必須的。
希望
#t#我還抱有希望,希望Google能花時(shí)間修改他們的代碼庫(kù),使其融合進(jìn)上游代碼,停止他們對(duì)大量嵌入式Linux硬件公司造成的巨大阻礙。
過(guò)去,我私下里提議幫助完成這個(gè)工作,現(xiàn)在我再次公開表態(tài),但是我需要Google開發(fā)人員的幫助。沒(méi)有他們,什么都改變不了。好消息是所有對(duì)內(nèi)核/用戶空 間API的修改對(duì)于Android堆棧上層所有的代碼(例如應(yīng)用程序)都沒(méi)有任何影響,所以這些工作可以在不對(duì)全局造成影響的情況下完成。
我會(huì)在”2010Linux消費(fèi)電子論壇”(CE Linux Forum 2010 conference.)上再次討論這個(gè)問(wèn)題。希望他們?cè)跁?huì)議之前改進(jìn)這個(gè)問(wèn)題,否則論壇將遵循長(zhǎng)久以來(lái)的傳統(tǒng),由演講者對(duì)與會(huì)者們大聲控訴他們正在做的壞事。




























