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