再談Android的許可證(續)

阮一峰發表於2010-02-20

前一篇網誌時,我參考了Ryan Paul的文章。

他是資深Linux程式設計師和評論者。他對Android許可證的評論,是我見到的最準確、最通俗易懂的介紹。當時,我翻譯了一些片段,打算在自己的文章中引用,但是後來沒用上。我覺得不甘心,於是今天就把全文譯出,貼在下面,希望讓更多的朋友看到。

如果你對GPL、ASL、BSD這一類的許可證名字,只有一些模模糊糊的概念,搞不清楚它們之間的區別。那麼,我強烈推薦你閱讀此文,讀完後,你就會對開源軟體的許可證,有一個基本的認識了。

值得指出的是,此文寫於2007年,當時Google剛剛宣佈Android專案,程式碼還沒有完成,工程樣機更是沒有,外界只能憑几句文字敘述,猜測這個系統的樣子。但是,Ryan Paul就是有這個本領,只看許可證選擇,就判斷出Android的開發模式。事實證明,他的判斷完全正確,除了一點:他沒有料到,Google會修改Linux核心,故意造成兩者不相容。

bg2010022001.jpg

(圖片說明:自由軟體基金會的標誌)

bg2010022002.gif

(圖片說明:Apache基金會的標誌)

bg2010022003.jpg

(圖片說明:FreeBSD基金會的標誌)

=================================

Why Google chose the Apache Software License over GPLv2 for Android

為什麼Android不是GPL許可證?

作者:Ryan Paul

譯者:阮一峰

發表日期:2007年11月6日

原文網址:http://arstechnica.com/old/content/2007/11/why-google-chose-the-apache-software-license-over-gplv2.ars


Google finally entered the mobile software market by turning the 2005 acquisition of Android into the Open Handset Alliance.

Google終於進入了手機市場。2005年,它收購了Android。在此基礎上,現在,它組建了"開放手機聯盟"(Open Handset Alliance)。

Google hopes to promote third-party mobile software development and foster a broad developer community on top of Android's Linux-based mobile platform.

Android是一種Linux核心的手機作業系統。Google希望,這會吸引來第三方軟體開發者,建立起一個大規模的開發者社群。

In the wake of Google's announcement, one topic that has been discussed by some members of the open-source software community is the significance of Google's licensing choice.

但是,此事公佈後不久,開源軟體社群就議論紛紛,大家在討論Google為Android選擇的許可證。

Although the underlying Linux kernel is licensed under version 2 of the Free Software Foundation's General Public License (GPLv2), much of the user-space software infrastructure that will make up the Open Handset Alliance's platform will be distributed under version 2 of the Apache Software License (ASL).

Linux核心的許可證,是自由軟體基金會的GPL許可證第二版。但是,"開放手機聯盟"的主要程式碼,卻是Apache許可證(ASL)第二版。

This raises certain questions about Google's goals in the mobile space and the nature of the third-party application ecosystem that will emerge around the platform.

這使得有人懷疑Google的動機。它的目標到底是什麼?Android平臺上,到底會有怎樣的第三方軟體?

ASL, which is widely used in the open-source software community and has been approved by the Open Source Initiative, is a permissive license that is conducive to commercial development and proprietary redistribution. Code that is distributed under the ASL and other permissive licenses can be integrated into closed-source proprietary products and redistributed under a broad variety of other terms.

ASL許可證被開源軟體廣泛使用,並且得到了"開放原始碼促進會"(Open Source Initiative)的認可。它是一種不設限的許可證(permissive license),允許軟體的商業性開發和壟斷式釋出。以ASL釋出的程式碼,可以被合併入閉源的專有軟體(proprietary product),並且在各種各樣的限制性條件下發布。

Unlike permissive open-source licenses, "copyleft" licenses (such as the GPL) generally impose restrictions on redistribution of code in order to ensure that modifications and derivatives are kept open and distributed under similar terms.

與ASL不同,GPL則是一種Copyleft許可證。它對程式碼的釋出做出了限制,規定所有對原始碼的修改和衍生,都必須公開,並且以相似的許可證釋出。

Permissive licenses like the ASL and BSD license are preferred by many companies because such licenses make it possible to use open-source software code without having to turn proprietary enhancements back over to the open source software community. These licenses encourage commercial adoption of open-source software because they make it possible for companies to profit from investing in enhancements made to existing open-source software solutions. That potential for proprietary investment on top of an open stack is most likely what inspired Google to adopt the Apache Software License for its mobile platform. Availability of Android under the ASL will ensure that a broader number of companies will be able to adopt the platform and build on top of it without having to expose the inner workings of proprietary technologies that give them a competitive advantage.

許多軟體公司更願意採用不設限的許可證(比如ASL和BSD),因為這使得它們既可以使用開源軟體,又不用向開源社群公開對軟體所做的修改。所以,ASL和BSD鼓勵了開源軟體的商業性使用,使得軟體公司願意對開源軟體投資,因為這些公司可以從中獲利。這種在開源基礎上吸引商業投資的潛力,很可能是Google為自己的手機平臺選擇ASL許可證的最大原因。將Android置於ASL之下,可以確保許多商業性公司會接受這個平臺,並且在它上面使用自己的專有技術。

Although using a permissive license like ASL is the best way to build support for the Android platform, critics argue that Google has sacrificed an opportunity to encourage greater openness in the broader mobile software space. If Android was distributed under the GPLv2, companies building on top of the platform would have to share their enhancements, which could theoretically lead to widespread sharing of code and a more rapid acceleration of mobile software development.

雖然ASL確實是保證Android獲得支援的最好方法,但是批評者認為,Google這樣做的代價,是喪失了創造一個更開放的手機軟體平臺的機會。如果Android的許可證是GPLv2,那麼在它上面做開發的那些公司,將不得不公開對系統所做的改進,理論上就會導致程式碼被更廣泛地分享,因而手機軟體的開發也會更快速地進步。

The counterargument is that distributing Android under a copyleft license could potentially limit the evolution of the mobile software ecosystem by discouraging commercial development on top of the platform. Proprietary mobile software development companies that integrate Android into their technologies would have to dramatically change their business models if they aren't given the ability to keep their enhancements proprietary.

另一些人不同意這種看法。他們認為如果Android選擇copyleft許可證,會使商業性公司不願意介入開發,從而使系統本身的發展困難重重。如果那些公司沒有辦法保護自己的專有技術不公開,那麼即使它們願意採用Android平臺,也必須急劇地改變經營模式,而這是有風險的。

It is important to note that the ASL is only being applied to the assortment of user-space platform components that make up Android. The kernel itself is still licensed under the GPLv2, and third-party software that runs on top of the platform can be distributed under pretty much any license, including commercial and copyleft licenses.

有一點是不能忽視的,那就是隻有Android的userspace部分是ASL許可證。系統的核心依然是GPLv2許可證。而執行在系統上方的第三方軟體,可以用任何許可證釋出,包括商業性許可證和copyleft許可證。

It is also important to note that, although the ASL was not compatible with previous versions of the GPL, it is entirely compatible with the GPLv3. This means that code distributed under the ASL can be incorporated into GPLv3 software. As a result, developers can choose to distribute Android derivatives under the GPLv3 in order to ensure that further development on top of their own enhancements remains open.

還有一點也很重要,那就是雖然ASL與GPLv2不相容,但是它與GPLv3完全相容。這意味著,在ASL下發布的程式碼,可以被用於GPLv3許可證的軟體。因此,程式設計師可以選擇將Android程式在GPLv3下發布,這樣就能保證他們作品的進一步開發,將始終是開源的。

Ultimately, the decision to use the ASL is sensible. Although it would be beneficial to all if Google were to use Android licensing to further open the market, that likely would have stifled adoption of the platform by handset makers.

最終來說,Google選擇ASL是情有可原的。雖然Android如果在GPL許可下發布,會使所有人得利,但那樣也會阻礙這個系統被手機廠商採用。

When it comes right down to it, the handset makers are the developers who are most significantly affected by the Android license, since they are the primary distributors of mobile phone platforms. The ASL will allow individual handset makers to develop proprietary customizations for the platform as needed to accommodate the unique technologies in their individual products.

如果單就手機廠商而言,他們才是受Android許可證影響最大的開發者,因為他們是手機平臺主要的釋出渠道。ASL允許手機廠商對平臺進行改造,使得Android變得好像他們的獨家產品一樣。

Third-party software developers who are building applications on top of Android will largely be unaffected by Google's licensing decision since the individual applications can be distributed under their own licenses.

而第三方的軟體開發者,總體上不受Google許可證選擇的影響,因為他們可以為自己的軟體選擇任何的許可證。

Another point worth noting is that Linux-based mobile platforms created by other mobile technology coalitions like the LiMo Foundation also facilitate mixing proprietary and open software.

還有一個值得注意的地方是,其他Linux核心的手機平臺,比如LiMo,也是閉源軟體和開源軟體的混合。

As more details emerge and more source code becomes available, it's likely that third-party developers and handset makers will eagerly flock to Android in order to benefit from the ecosystem that Google is creating.

隨著更多的細節和更多的原始碼被公佈,手機廠商和第三方開發者,很可能會熱切地投入Android的懷抱,享受Google創造的這個平臺。

(完)

相關文章