最近更新: 2011-08-22

江湖傳言,國內某大廠把 Android 的 Dalvik 移植到 Linux 作業系統

某日,我與強者我朋友閒話時,強者我朋友說他某日和梅友仁閒話時,梅友仁告訴他一則我一定感興趣的江湖傳言。江湖傳言道:國內某系統大廠把 Android 的 Dalvik 移植到 Linux 作業系統,並且運行在x86平台。

我說,該不會是 Android-x86 吧?那不是什麼新聞了。強者我朋友說「非也」。傳言所說是無修無改的 Linux 核心配上 Dalvik ,不是用 Google 修補過再被其他人移植的 Android-x86 。

我一聽就來勁了。按這說法,同樣在 x86 平台上,Android-x86 其實並不等於 Linux 作業系統。 維基百科的 Linux 條目上說:

Linux,是一系列類Unix計算機作業系統的統稱。該作業系統的核心的名字也是「Linux」。Linux作業系統也是自由軟體和開放原始碼發展中最著名的例子。

嚴格來講,Linux這個詞本身只表示Linux核心,但在實際上人們已經習慣了用Linux來形容整個基於Linux核心,並且使用GNU專案各種工具和資料庫的作業系統(也被稱為GNU/Linux)。基於這些組件的Linux軟體被稱為Linux發行版。

http://zh.wikipedia.org/wiki/Linux

而 Android 條目則說:

Linux kernel patches are under GPL v2 ... the Android kernel is now a separate version or fork of the Linux kernel.

Android does not have a native X Window System nor does it support the full set of standard GNU libraries, and this makes it difficult to port existing GNU/Linux applications or libraries to Android.

http://en.wikipedia.org/wiki/Android_(operating_system)

基於上述的說法,強者我朋友說雖然 Android 的系統核心衍生自 Linux 核心,但整個核心外層的構成物都去除了 GNU 的味道 – 從殼層到桌面環境所用的軟體都跟我們一般所說的 Linux 發行版不同。Android-x86 是在使用 Google 修補過的 Linux 核心的情況下,搭配 Android 的殼層與桌面環境,將整個 Android 移植回 x86 平台上運行。而江湖傳言所說的做法,則是將 Android 系統的桌面環境與作業核心分割,捨棄 Google 修補過的核心,使用一般的 Linux 發行版的核心與殼層搭配 Android 的桌面環境。也就是把 Dalvik 當成一個獨立的桌面環境,搭配一般的 Linux 發行版。

根據江湖傳言,這套運行模式還相當不錯。所有 Linux 核心支援的裝置全都能用 (那些只支援 Android 的驅動程式不就不能用了?),而那些使用 Dalvik 開發的 Applet ,只要編譯時沒有指定 Arm 架構的最佳化選項,大部份也能直接安裝運作。

如果江湖傳言所指的系統大廠真的成功推出產品了,那證明 Dalvik 經過修補後,可以獨立於 Android 核心之外,運行於 Linux 核心主幹之上。我認為這是件好事,程序人員可以將 Dalvik 視為一個獨立的開發環境,在其上開發軟體。不過看看 Dalvik 的授權模式,該系統大廠就算做了,應該也不會開放他們的 Dalvik 源碼。

但從硬體支援的角度來看,這種做法有其風險。傳言隱隱指出該系統大廠的背後,似乎有 Intel 支撐。他們的 x86 平台與裝置,全都有 Intel 提供的 Linux 驅動程式支持。所有他們才會選擇把 Dalvik 切割出來的做法。

依我在「Android 對 Linux 的負面影響」中看到的現況,新硬體裝置的廠商,會優先開發只支援 Android 的驅動程式。至於 Linux 驅動程式的開發工作,就放著吧。大概等個四、五年,Android 核心回流到 Linux 核心主幹後,那些驅動程式就能直接給 Linux 核心用了。說明這個狀況的用意是,選擇 Linux 核心搭配 Dalvik 的途徑,將會失去 Android 驅動程式的支持。除非你的系統平台選用的裝置都有原廠的 Linux 驅動程式支持,否則你最好不要這麼搞。

講了那麼多江湖傳言的事,真真假假,大家聽聽就好。對號入座請自便,不要找我求證。

最後,我另外補上一則確定的消息吧。這則確定的消息是我今天在 ZDNet 上看到的新聞「Linus Torvalds on Android, the Linux fork」。Linus 在 LinuxCon 大會中表示:「雖然目前兩者的核心源碼作仍有大量的合併工作必須進行,但最終兩者將會回歸為共同的核心,但它可能不會需要四到五年在四到五年內實現」(there’s still a lot of merger to be done. … but that eventually Android and Linux would come back to a common kernel, but it will probably not be for four to five years.; 謝謝 penk 與喬老爺的指點)。

有趣的是,相較於 Linus 的肯定語氣,ZDNet 新聞編輯 sjvn 所下的摘要則是「There’s still a lot of distance between Google’s Android and its parent operating system Linux, but eventually, the gap will close… eventually」。依我的文學修辭知識,連用兩次 eventually 還夾了一個 ... 的用法,似乎並不那麼肯定;似乎在說 Google 給的是一份沒有實現期限的承諾。誰可以指點一下這段修辭的真實意涵嗎?

樂多舊網址: http://blog.roodo.com/rocksaying/archives/16408313.html

樂多舊回應
penkia@gmail.com(penk) (#comment-21940637)
Mon, 22 Aug 2011 23:13:07 +0800
Linus 的意思是「四五年內都不會發生(合併)」吧
未留名 (#comment-21941239)
Tue, 23 Aug 2011 13:12:23 +0800
我只好奇你們從哪聽來的。

我只能說這東西確實有在某些場合 Demo 出來 XDDDDDD

還有,驅動程式的部份和本篇文章說的不一樣,大部份 Android 用的 Driver 是可以正常跑在一般 Linux 上的 :-P。

而且會用 Intel 的主要原因,是目前只有他的 Graphic Driver 相對完整(擁有一些必要的功能)和穩定,最重要的是比較開放。
未留名 (#comment-21941475)
Tue, 23 Aug 2011 16:22:41 +0800
我的回應同樓上的penk, "but it will probably not be for four to five years" 應該是說 "但應該不會在四五年內發生"的意思...
未留名 (#comment-21941493)
Tue, 23 Aug 2011 16:43:25 +0800
江湖傳言又說年底就會推出產品。

to Fred:
我的經驗跟你不太一樣,我們公司現在還有幾台樣機,可以跑Android-x86,但不能跑Ubuntu/MeeGo。因為缺驅動。
或許對我們公司來說,少部份不能正常用在Linux上的Android driver,才是最關鍵的。
少了那一小部份,整台機器就不能用在專案中。
不過我們公司不是裝置開發廠商的下游包商,基於成本效益,沒事不會幫別人修補driver。

to Penk & 喬:
這麼說來,我一開始的直覺解釋沒搞錯意思。
這件事不會在四、五年內發生。

未留名 (#comment-21941627)
Tue, 23 Aug 2011 18:56:33 +0800
照你所說,缺的應該是上層 AP 用的的 interface 與 kernel driver 弦接,實際上 driver 應該是會動的,而這部份問題通常都不太大。 :-P

BTW, 我最好奇的是你們到底有沒有聽到是哪家廠商(還是只是為了保密?),又或者真的只是聽到有傳言而已。。(個人想知道還有誰在做,因為我們的進度沒這麼快呀~咦!?)
未留名 (#comment-21943469)
Wed, 24 Aug 2011 22:00:16 +0800