最近更新: 2011-08-02

Android 對 Linux 的負面影響

我看不出 Android 對 Linux 帶來什麼正面影響,所以我的標題就直接寫「負面影響」。 我目前看到的負面影響,主要分成兩個方面。一是智慧財產權,二是硬體設備的支援。

智慧財產權方面的負面影響

著作權

我個人對於 Google 使用 Linux kernel 的手法一直非常不滿,借用「洗錢」概念稱呼 Google 的手法為「洗碼」,對 Copyleft 精神是一種侵害。關於這件事,我的看法在《Google Android 又涉嫌違反 GNU GPL》的回應中說的很清楚。 從現行著作權的使用行為來看,Google 的 patches 可能不侵害著作權。 而 GPL/LGPL 是基於著作權的再授權條款,著作權不約束的事,GPL/LGPL 也不能約束,這就讓 Google 有了上下其手的空間。

雖然從著作權的法條來看似乎沒有問題。但若著眼於 Copyleft 的源碼權利共同分享精神,則 Google 的作法已經違反這一基本精神。

專利

根據 U.S. District Court, Northern District of California, is Oracle America, Inc v. Google Inc, 10-3561 的報告,關於 Android 的專利問題接近定調,即 Google 確實侵害了 Oracle 的專利。但是法官認為 Oracle 提出的損害金額數據太不合理,要求 Oracle 重提評估報告。所以 Google 可以少賠一點。新聞見《Judge rejects Oracle damages estimate versus Google》。

"Zero is ridiculous," said Alsup, who rejected Google's argument that its ad sales should not be included in estimating damages from the Android system.

UPDATE 1

Alsup rejected Oracle's damages report in a written ruling on Friday, saying that Oracle had "overreached in multiple ways."

UPDATE 2

當自由軟體與開放源碼界經過多年的努力,逐步完善了自由軟體的著作權內容,開始將焦點轉移到軟體專利領域時,Android 這件事著實傷害了自由軟體與開放源碼界。它一方面在一般使用者心中形成使用自由軟體或開放源碼還是會侵害智慧財產權的印象;另一方面也分散了自由軟體與開放源碼界用於對抗軟體專利的資源。

我在《Android 捲入專利風暴的內容,應不牽涉 Linux》提到自由軟體與開放源碼社群正在構築一張專利保護網,包含像 Open Invention Network (OIN) 之類的科技大廠互相結盟機制。我認為 Android 將會分散構築專利保護網的資源,也讓防禦態勢從主動預防變成了被動賠償。

硬體設備支援度的負面影響

這個影響可能一般使用者還感受不到,我是因為工作需求才注意到這方面。

我們公司前陣子買了幾台 Atom 平板電腦,也拿到一些廠商送出的機上盒樣機,想評估公司現行產品配合這些終端設備的應用效益。 而我們公司的產品是在 Linux 上開發的,理所當然要先在它們上安裝 Linux 。 問題來了,我從 Ubuntu 10.04 到 11.04、MeeGo 1.1 到 1.2,嘗試了多種版本後,沒有任何一種 Linux 散佈套件可以完全驅動這些電腦的硬體設備。顯示晶片不支援、觸控面板有問題、3G 設備抓不到等狀況不斷。向廠商拿了硬體驅動程式的源碼一看,竟然是 Android 的驅動程式。 問了廠商,廠商也只說我們有支援 Windows7 和 Android 啊。至於 Linux 的部份,完全沒下文。

後來陸續從其他硬體廠商直接或間接聽到的消息,都有類似的情形。廠商提供的硬體,有 Windows 驅動程式,也有 Android 驅動程式,但就是沒有 Linux 驅動程式。 我聽到的消息是,已有硬體廠商決定延宕或是取消支援 Linux 的工作項目。 亦即 Android 直接分散了 Linux 硬體驅動程式的開發資源。這真是個壞消息。

相關文章
樂多舊網址: http://blog.roodo.com/rocksaying/archives/16204837.html

樂多舊回應
ystuan@gmail.com(PowerOp) (#comment-21898693)
Wed, 03 Aug 2011 18:51:21 +0800
https://linuxfr.org/nodes/85904/comments/1230981

上面的連結是 Linus 接受訪問(應該是因為 Linux kernel 誕生20年),他有提到對 Android 的看法
Wakelock 的部份,之前很多人引述 Greg K-H 去年十二月的這一篇:
http://www.kroah.com/log/linux/android-kernel-problems.html
不過今年三月他又貼了一篇
http://www.kroah.com/log/linux/android-wakelock-solution.html

貼了這麼多,我其實是門外漢,想聽聽你的意見囉。
cwhuang@android-x86.org(cwhuang) (#comment-21899971)
Thu, 04 Aug 2011 15:35:27 +0800
Android driver 就是 Linux driver 呀? 沒有什麼實質不同。如果廠商能提供 driver source,你拿來在你的 ubuntu kernel 之類的重編一下就好了。就算上面有 Android specific code,例如 early suspend,只要夾進 #if #endif 中就 OK 啦。反正有 source 的話,一切都不是問題。

除非廠商只提供 userspace driver,而且又不提供 source code。那才有點麻煩,但也不難解決。
未留名 (#comment-21900267)
Thu, 04 Aug 2011 18:09:33 +0800
首先謝謝 PowerOp 提供的資訊。

如果廠商提供的 driver 能夠直接用編進 linux kernel,那他就不會「只說支援 android 了」。
就是要修改、要patch、要搞這搞那的,才有可能讓 linux kernel 用。
更多的情形是,廠商提供的就是 userspace driver,而且是專屬授權,你不能修改它們。
cwhuang 說的簡單。但實際做起來,將會是一件很繁雜的工作。

像我們公司是純軟體公司,然後經常有其他硬體廠商來談合作,他們送來的樣機什麼規格有。
如果這些亂七八糟的機器,每個 driver 都要我們自己去修改 android driver 移植到 linux,那將會是很重的工作負擔。
事實上,根本不合效益。我們公司並不是幫別人寫 linux driver 的公司啊。

參考 PwerOp 提供的連結,Linux kernel team 寄望 'wakelock' 可以消除 Android driver 的源碼提交回 Linux 主幹的障礙。至於效果如何,就讓我們觀察下去吧。

PowerOp 和 chhuang 提到的都是 driver 的技術問題。
我個人認為法律問題比較重要。
victor@ossii.com.tw(威豆) (#comment-21901199)
Fri, 05 Aug 2011 09:22:26 +0800
唉,我們也面臨同樣的困擾 !!
Android 被大眾誤認就是 Linux ... 真是無言
marsyang1@gmail.com(mars) (#comment-21914127)
Sat, 13 Aug 2011 12:34:30 +0800
我個人是滿菜的PG,前陣子玩了一下android.
我個人是滿喜歡android的出現,因為這樣子對開發user終端產品來說方便多了.
但是看不出android帶給Linux陣營任何的好處or回饋,感覺很像撿現成得來用.
未留名 (#comment-22685892)
Fri, 16 Nov 2012 10:02:21 +0800
那個單純式懶惰不想處理而已,不然android的驅動程式根linux的驅動程式很相近,使用patch總比從無到有寫出來更方便。
我本身學過android和linux,基本上不一樣就只是在用途和硬體而已。

再加上,通常android使用的driver,正常來講linux不會用得到,如果你想要拿linux去用嵌入式,driver要自己開發那個很正常= =。
未留名 (#comment-22685910)
Fri, 16 Nov 2012 11:07:28 +0800
Linus 本人在一次Linux conf (大概是年初吧) 表示,在3~5年後,Linux OS 和 Android 可望使用相同的 kernel 。

這表示,在那之前,任何一個想要同時推出 Linux OS 與 Android 應用設備的資訊系統廠商,面對「不斷地」汰換的硬體設備,就必須「經常地」 patch driver. 不幸的是,有時候光是 patch driver 還不夠。

某A廠和某S廠等系統業者,都曾找過我們公司談軟體合作開發案。
不過他們的提供的各種樣機(不只一款),從沒有兩邊表現一致的。
要嘛 Android 穩、Linux OS 不穩;要嘛 Linux OS 穩、Android 不穩。
喔,就連 Android 也要把 2.3.x 和 4.x 分開來評估設備穩定性。

「重複」是軟體開發生產力最大的敵人。
雖然我只是看戲的,但我仍然覺得他們的工程師耗費了不少時間在重複性的工作上頭。
我一直認為「懶惰」是幹軟體設計這行的人所必要的性格。

未留名 (#comment-22685928)
Fri, 16 Nov 2012 11:41:08 +0800
沒辦法,重複性工作一定會有,除非你的硬體,一個不改,不然你很難避免重複性工作,再加上用的是別人的opensource。
不然就是要想辦法寫出通用的driver,不過這個不太可能。
重複性的工作再windows已經不少了,更不用說再linux,我覺得這個只是工程師有沒有心要去支援他而已。
未留名 (#comment-22685932)
Fri, 16 Nov 2012 11:46:05 +0800
補充,應該是說有有心和那個能力能夠支援他。
雖然android本來對linux就沒有甚麼影響,linux主要的功用不是為了要讓使用者覺得GUI很好用。