Tuesday, March 17, 2009

自由軟體授權探討: Google Android

(http://antbsd.twbbs.org/~ant/wordpress/?p=1449, November 6th, 2008)

由軟體授權一直都有爭議上的問題。源頭出於廠商很想利用自由軟體營利,也很想在種種限制中找到適合自己的營利方式。這篇文章旨要探討 Google Android 與 GPL2 的曖昧關係。

GPL 的概念

我們要先知道的是,什麼是 GPL2。簡單說,當你的產品伴隨著含有 GPL2 的程式一起出售時 (光碟片、網路、嵌入式等種種型式),則所有的程式也都要開放源碼,這意謂著你自己開發的程式也要開放源碼。

這出現了什麼問題?不管你撰寫的是驅動程式或應用程式都要開放源碼,但往往這是台灣廠商想要保留的商業機密。有很多廠商指出,一旦把源碼開放,他們 的技術就很容易被競爭廠商追上。(需要補充的是,即使應用程式是使用介面的方式隔開 GPL2/3,但只要一起打包出售,理應就要開放源碼,除非分散下載。)

Google Android

上一段有說,只要是一起打包出售(隨手機一起出貨),不管程式是屬什麼層級,理應就要開放源碼,那麼為何廠商還是愛用 Google Android 來開發他們的產品?難道他們不怕開放源碼而失去競爭力?

事實是,廠商用 Google Android 開發的產品,不一定要開放源碼,即使是一起打包出售。

為什麼?因為我發現 Google Android 中,不管是作業系統(Linux kernel)、開發工具、函式庫(Library)、應用程式框架(Application Framework)或應用程式(Application),只有 Linux kernel 是屬於 GPL2,其它的都是較無感染性的 Apache、BSD 或 Google 自己的工具。(架構圖參照)

我們可以從 What is Android 看出一些訊息。整理如下:

因此,唯一可以訴訟 Google Android 或採用 Google Android 廠商未遵守自由軟體遊戲規則走的只有 Linux kernel。但 Linux kernel 團體本身未必會要求非要這些廠商公開源碼,而且目前在法律上也不太能夠要求(因為著作權人不明),再加上 Linux kernel 團體不會強烈要求一起打包的應用程式一定要開放源碼(但若是驅動程式則另當別論)。

也就是說,若產品中,只有 Linux kernel 是 GPL 授權,則不開放源碼的風險是最低的,而這也是 Google Android 目前採用的方式。

台灣硬體廠商採用 Google Android 模式的危險性

台灣硬碟廠商沒有辦法像 Google 有著這麼多的資金與能力去達到 Google Android 這般較完美的解決方案。因為台灣廠商很多是需要開發驅動程式 (Linux kernel 比較要求驅動程式要開放源碼),或者是用 GCC/Glib 等 GPL 程式/函式庫開發應用程式 (應用程式與 Glib 一起打包,不管是不是動態連結都要開放源碼,除非像 Google 般使用 BSD-style 的 C Library),所以在規避議題上很難達到。

台灣廠商需自創屬於自己的商業模式

很多案例會依實際情形有所不同,須視個案來解決。最後的重點是,廠商若要採用自由軟體,請以誠實為上,否則就不要使用自由軟體來作為營利。

題外話

想要下載完整的 Google Android 需要龐大的硬體空間,因為 Android 的專案包含很多項目。下載方式請參考 Using Repo and GitGoogle Android: Get source

No comments:

Post a Comment