谷歌新操作系統(tǒng)Fuchsia是另起爐灶的“新安卓”?

在新興操作系統(tǒng)領域,谷歌除了承擔著Android與Chrome OS的開發(fā)和維護之外,一直以來還有著新系統(tǒng)Fuchsia的研發(fā)傳聞,這在不久前得以證實。谷歌公司在開源博客對外公開,F(xiàn)uchsia是建立通用開放源代碼操作系統(tǒng)的長期項目,并承認公司近年來一直致力于Fuchsia的研發(fā),同時向團隊外部尋求更多開發(fā)者。
消息一出,沉寂了四年來的Fuchsia操作系統(tǒng)再次浮出水面。早在2016年8月,有媒體發(fā)現(xiàn)開源托管平臺上的神秘代碼,項目顯示谷歌正在開發(fā)一個名為“Fuchsia”的新操作系統(tǒng),經開發(fā)者分析該源代碼能跨平臺運行,包括傳統(tǒng)終端和嵌入式設備。
谷歌實驗室有許多半途而廢的項目,原本趨于被遺忘的Fuchsia卻低調堅持了四年且再次被搬上臺面,說明Fuchsia與那些“實驗型”產品有著根本不同。所以,一個四年前的問題被再次重談——谷歌為什么要開發(fā)一款全新的操作系統(tǒng)?這個問題的解答在今天看來被賦予了更多新時效的觀點。
● 梳理知識產權,消除Java案的影響
2010年,甲骨文起訴安卓系統(tǒng)侵權一事將谷歌拉入了長達近十年未果的軟件知識產權訴訟大案。Java案成了一場拉鋸戰(zhàn),歷時長久,影響深遠,其比之上世紀90年代著名的AT&T訴加州伯克利BSD侵權Unix案有過之而無不及。
甲骨文認為安卓系統(tǒng)抄襲了37個JavaAPI代碼段,而這些代碼屬于Oracle商業(yè)私有JDK的一部分。本案最大的爭議在于,API應用程序接口作為代碼產物的一部分,用于約定軟件系統(tǒng)不同組成部分的銜接,其是否適用于版權法的保護效力,在開發(fā)者未有自主聲明的情況下并無法律明文約束?!?7個JavaAPI代碼段”成了該案雙方爭論的焦點。
Java案的塵埃落定至今仍不明朗,不僅如此,連Chrome OS也一度陷入麻煩,甲骨文律師曾表示,谷歌在官司期間推出的Chrome OS版Play商店正試圖在桌面端打入Java SE市場,此舉使甲骨文蒙受巨大損失。為了一舉消除Java對谷歌未來的負面影響,因而在2016年Java案訴訟進入白熱化之時,谷歌秘密開啟了Fuchsia操作系統(tǒng)的研發(fā)項目,也就在那個時候,坊間有了Fuchsia將取代安卓系統(tǒng)和Chrome OS的傳聞。當谷歌意識到軟件知識產權問題的嚴重性時,安卓系統(tǒng)的更替方案也隨之提上日程。當然也有可能讓Fuchsia套上安卓的殼,但操作性就很難說了。
● 重塑內核,規(guī)避開源許可證GPL的傳染性
要重新梳理軟件知識產權問題最徹底的解決方法就是另起爐灶,因為任何對原系統(tǒng)的修改都難以避免最初源代碼權屬問題而引起巨大的商業(yè)風險。谷歌曾試圖在2016年的Android 7.0 Nougat中將甲骨文專利的JDK替換成開源的OpenJDK,但后來證明于事無補。
眾所周知,安卓系統(tǒng)和Chrome OS都是基于Linux內核設計開發(fā)的,因為谷歌最早發(fā)跡于萬維網,移動時代又得利于Java的流行。在開源世界的體系框架里,Linux內核是在GPL第二版許可證下發(fā)布的,GPL要求基于開源衍生的作品必須繼續(xù)開源,這叫做GPL的“強傳染性”;但是安卓系統(tǒng)還有另一個開源許可證ASL(Apache許可證),這是一個比較寬松的允許閉源的許可證,為何如此呢?
安卓發(fā)布之初,谷歌修改了Linux內核,故意引入ASL其原因是允許廠商自定義個性化的安卓系統(tǒng)并成為他們的獨家產品,所以才會有后來的三星TouchWiz、華為EMUI等等百花齊放。但是這里有一個問題,安卓系統(tǒng)僅僅是部分采用了Apache許可證,系統(tǒng)真正的內核部分依然遵循GPL規(guī)范,這就解釋了為什么安卓不能完全實行閉源。?
ASL的引入成就了安卓系統(tǒng)高達85%的移動市場份額,同時也加劇了安卓移動設備碎片化和標準不一。因此為了一次性解決所有難題,重做內核確實是最徹底最有效的辦法。Fuchsia采用獨立微內核Zircon區(qū)別于Linux內核,編程語言Dart、開發(fā)引擎Flutter、渲染器Escher、應用程序框架 Mojo都與專有的商業(yè)專利無關,可以看出另起爐灶的Fuchsia系統(tǒng)旨在避開GPL開源的強傳染性,同時又著重避免再次遭遇類同Java案的影響。

● 效仿蘋果,建立可控的系統(tǒng)級生態(tài)
谷歌一直以來都在嘗試建立一個與蘋果操作系統(tǒng)生態(tài)相媲美的產品,但是安卓系統(tǒng)的歷史性問題讓這一愿景變得越來越難以實現(xiàn)。比如谷歌想設計一套穩(wěn)定的驅動API接口,因為Linux不具備穩(wěn)定的內核內部API接口,所有的驅動都必須放到內核里一起被維護,由于迭代過程碎片化嚴重,這些驅動很快過時并隨著內核大部隊一起向前走(新的版本)。
另外,F(xiàn)uchsia的內核抽象非常小,谷歌也有可能通過用戶空間的抽象層兼容目前的安卓系統(tǒng)上面的應用,從而實現(xiàn)“換核”操作。如果上述分析最終走向結果為真,那么Fuchsia基本上是取代現(xiàn)有安卓的全新操作系統(tǒng),或者是將經歷“換核”作業(yè)的“新安卓”。如此一來,替掉了GPL的核部分,安卓開發(fā)的碎片化或許能夠得到改觀。
但是谷歌將Fuchsia定義為通用OS,這一說法存在爭議。鑒于當今第三方軟件生態(tài)構建的難度,新的流行終端諸如VR、AR其開發(fā)者都在和類Unix操作系統(tǒng)打交道,暫時還看不到在Linux/BSD之外另起爐灶的必要。
文/陳徐毅 高級工程師,科技專欄作者,中國計算機學會會員。
本文同時刊發(fā)于《中關村》2020年12月第211期