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