多年來(lái),Android一直是Linux的一個(gè)變體。Linux 3.3的發(fā)布使兩者又合二為一了。
Android從來(lái)都是Linux,但多年來(lái)Android一直獨立發(fā)展,其代碼沒(méi)有被整合到主流Linux中。Linux鼻祖、首席開(kāi)發(fā)者萊納斯·托瓦茲(Linus Torvalds)希望Android正式回歸Linux。
Android和Linux的糾紛起源于2010年秋季,Google工程師帕特里克·布拉迪(Patrick Brady)當時(shí)稱(chēng)Android不是Linux。但實(shí)際情況并非如此,從本質(zhì)上來(lái)說(shuō)Android就是Linux。
Google為Android確立了不與主流Linux內核兼容的策略。Linux基金會(huì )(Linux Foundation)穩定版Linux內核維護工程師、Linux驅動(dòng)程序項目(Linux Driver Project)掌門(mén)格雷格·克羅赫曼(Greg Kroah-Hartman)表示,“Android內核代碼不只是drivers/staging/android目錄下的一些驅動(dòng)程序。Android系統的正常運行需要Google新開(kāi)發(fā)的lock類(lèi)型,以及核心系統中的hook。要為Android開(kāi)發(fā)硬件驅動(dòng)程序,開(kāi)發(fā)者需要正確地使用新lock和奇異的安全模式。另外,Android還使用了完全不同的幀緩沖器驅動(dòng)程序接口?!?/p>
Android和Linux之間的差異來(lái)自多個(gè)方面。其中之一是Google的Android開(kāi)發(fā)團隊采用自主方式解決能耗問(wèn)題;另外一個(gè)因素是Android團隊忙于開(kāi)發(fā)Android設備細節問(wèn)題,在與Linux核心團隊合作方面做得不夠好。
開(kāi)發(fā)者社區在如何恰當地在Linux中處理Android特有代碼方面有很多爭論,爭論的結果是托瓦茲2009年年末將Android驅動(dòng)程序剔出Linux內核。
盡管Android團隊和Linux團隊有分歧,但Android從來(lái)沒(méi)有面臨因違反GPLv2而遭到Linux團隊起訴的風(fēng)險。托瓦茲曾表示,有關(guān)Android違反GPL的說(shuō)法是“完全錯誤的”。
托瓦茲去年秋季曾表示,“盡管還有許多工作需要做,但Android和Linux最終將回歸相同的內核,這一工作在4-5年內無(wú)法完成?!笨肆_赫曼當時(shí)也表示,問(wèn)題之一是,“Google的Android團隊人員少,任務(wù)緊,資源有限,從長(cháng)期來(lái)看,與我們合作有助于他們降低成本”。托瓦茲說(shuō),“我們只是過(guò)去一段時(shí)間的方向不同,從長(cháng)期來(lái)看我們還會(huì )合二為一,所以我沒(méi)有什么好擔心的?!?/p>
Android和Linux整合的步伐快于預期。在去年10月份的內核峰會(huì )上,Linux內核開(kāi)發(fā)者“一致認為,Android內核代碼應當整合到主流內核中”,并因此創(chuàng )建了Android主流化項目(Android Mainlining Project)。
克羅赫曼去年12月份表示,“在3.3版內核發(fā)布時(shí),Android內核的絕大部分內容將被整合到主流內核中,但還有許多工作需要完成,才能更好地滿(mǎn)足內核社區的需求,這需要更長(cháng)的時(shí)間?!?/p>
目前,Android代碼可以在Linux 3.3中編譯,而且能夠運行。但克羅赫曼指出,Android的WakeLocks尚未被整合到主流內核中。
聯(lián)系客服