歡迎您光臨本站 註冊首頁

Andriod被Linux拋棄的真正原因

←手機掃碼閱讀     火星人 @ 2014-03-12 , reply:0
  在Linux2.6.33發布並且刪除了Andriod內核代碼之後,很多人問我到底發生了什麼,以及接下來我們會如何對待Andriod,下面我以我的理解談一談這整件事。

  首先我得說我很喜歡Andriod平台,我一直都在使用G1,直到上周每一天都在用。它對我還有像我一樣的使用者都很好用,我對此感到很高興。

  從技術角度來說我也感到很高興,Google選用Linux內核並在此基礎上創建一個跟傳統linux系統完全不同的手機操作平台是一件很讓人吃驚的一件事,同時你還可以在Andriod設備上直接運行“真正的”Linux系統,並且它同Andriod系統都能在無需做出什麼改變的情況下良好運行。

  Andriod同時解決了手機製造商多年以來就不得不面對的一個問題,即一個免費版本的Java和一個統一的程序運行平台,在這個平台上程序員可以寫出在其他任何支持Java的系統都能運行的程序,因為這所有現存的“Linux手機聯盟”都將面臨這瓦解的境地,大概再過不久它們就會悄無聲息的關上大門,假如它們還有門可以關。

  發生了什麼?

  那麼到底是什麼導致Andriod內核代碼被排出Linux內核之外?簡單的說,就是因為沒人關心代碼,所以它才會被排出Linux內核。就像我早先聲明的那樣,在架構樹上的所有代碼都應該和主分支內核相容,否則它就會被排除,但是這裡有一個更大的問題是,Andriod不僅僅只是在/drivers/staging/andriod目錄里多出一些“怪異的”驅動程序,假如你想要運行Andriod,你就必須先了解Google在安全模塊中新寫出來的鎖類型,當然還有鉤子類型。為了使你寫出來的驅動程序能在Andriod中使用,你得把它恰當的同這個鎖相容和,你有時甚至還要考慮這整個“怪異的”安全模塊,天呀,這可是同Linux系統完全不同的驅動架構。

  因為這些驅動只能使用在Google的內核樹上,這就意味著為所有為Andriod硬體平台編寫出來的驅動都不可能進入主內核樹,正因為這,Google現在開始阻止這些硬體和驅動代碼進入Linux主驅動樹,並且積極地建立一個很多計算機銷售商都依賴的內核分支。

  現在Linux發行版內核源代碼樹的分支都被維護地很好,但假如任事態發展的話,事情也許會變得很糟糕,因為Google沒有使其代碼進入主內核,這些編寫驅動和平台代碼的公司都被排除在外而不能為內核社區做出貢獻。內核社區幾年以來一直都在試圖說服這些公司把它們的代碼加入內核,這樣它們就可以使用安全更新,並自動處理應用程序介面的問題,這些公司聽從了他們的建議,你可以看到越來越多的大公司出現在在每個內核版本里,可現在這個進程因為Google停滯下來了,因為Andriod的周邊公司不能回報上游Linux內核,這就導致了這些公司需要在維護花費更多的資源同時增加了開發周期。

  為使Andriod融入內核需要做些什麼?

  在早前Andriod加入架構樹的時候,很多內核開發者檢查了Andriod代碼,並且指出了為了能被接受應該清理和改變的地方,這些改變很多影響到了Andriod內核和用戶空間邊界,同時如果Andriod內核發生變動,Andriod用戶空間邏輯也需要做出相應改變,所以就不要指望Google員工去做這件事了。

  那麼,該怎麼辦?

  我真的不知道該怎麼辦,Google再也沒有表現出希望把它的代碼加入上游的打算,一些公司試圖把它們的代碼加入上游,可是那樣需要去做更大的工程工作,是一種本來根本就不必要的痛苦。

  冀望

  我真地希望Google能夠修改Andriod代碼庫,使其重回Linux的懷抱,並停止它所造成的同很多嵌入式Linux硬體公司的隔閡,我曾私下裡幫助完成這個工作,而現在預備公開地再做一次,但是為了達到這點我需要來自Google開發者的幫助,沒有他們,一切都不會改善。

  好消息是似乎所有對內核/用戶空間應用程序介面的改變都不會影響在堆棧以上的Andriod代碼(比如應用程序),所以這項工作的實施不會影響到整個系統。

  我會在CE Linux Forum 2010 conference上發表一個演講,希望在那之前事情有所改觀,要知道這個年會可是有對其參與者所做的壞事進行叫喊的傳統的。



[火星人 ] Andriod被Linux拋棄的真正原因已經有440次圍觀

http://coctec.com/news/soft/show-post-74341.html