「一套系統走天下」夢碎?Google 從 Android 移除大量 Fuchsia 相關程式碼

整理 | 蘇宓

Android 的神話能否在 Google 打造的 Fuchsia 作業系統身上延續,或許挺難。

近日,有媒體發現大量與 Fuchsia 相關的程式碼已經被從 Android 開源項目(AOSP)中刪除,刪除的具體原因不明。不過這意味著在 Fuchsia 系統上運行的 Android、Linux 程序的方法似乎受阻。

Fuchsia:希望能夠運行 Android、Linux 程序

過去幾年來,Google 對於 Fuchsia 的期望,如同華為對 HarmonyOS 的期望一樣,不指望其能夠取代 Android,但都希望它們能夠以一套作業系統實現橫跨多平臺的願景,包括運行在智慧手機、 PC、智慧設備、物聯網等設備之上。

不過,要為新的作業系統謀出路,首先也要兼容 Android、Linux 應用程序,這樣才能實現生態互通。為此,Google 投入數以十億美元計的資金來開發,然而有些遺憾的是,其成果寥寥無幾。

截至目前,作為一套獨立的作業系統,Fuchsia 支持的硬體設備只有 Nest Hub 和 Nest Hub Max 兩款智慧顯示屏。

當然,並不是 Google 不想在其他設備上運行,從理論上來看,搭載 Fuchsia 系統的設備無縫替換 Chromebook 或 Android 手機來保持其平臺上的應用程序正常運行,這種方法並非不可以。

過去一段時間裡,據外媒報道,Google 也正在嘗試一些辦法,旨在讓 Fuchsia 這款不是基於 Linux 的作業系統能夠運行 Android、Linux 應用程序。譬如:

方法一:在虛擬機器中運行 Android 作業系統的完整實例。

這是 Google 最早的嘗試方法之一,因為那時 Google 在 Chrome OS 上已經有了成功開發的經驗。彼時,通過在虛擬機器上運行完整的 Linux 實例,Chrome OS 能夠運行 Linux 應用程序。另外,Google 還用了相同的策略併發起了一個名為 arcvm 的項目,可以在 Chrome OS 上運行 Android 應用。

於是,Google 也想著可以將此應用到 Fuchsia 系統上。不過,這種方案如果應用到 Fuchsia 系統上會存在一些性能問題,如在「host」(Fuchsia)和「guest」(Android)之間管理檔案可能有些棘手或繁瑣。此外,Fuchsia 強調安全,試圖儘可能地讓程序相互隔離。為了保持 Linux 應用的這種隔離程度,Fuchsia 需要運行多個虛擬機器,這就可能會降低性能。

方法二:通過 Android Runtime 支持 Android 應用程序。

早在 2019 年,有媒體發現 Fuchsia 可以使用 Android Runtime 運行 Android 程序。其背後是 Google 將兩個與 Fuchsia 相關的儲存庫添加到了 Android 開源項目(AOSP)清單中。

這兩個儲存庫分別是「platform/prebuilts/fuchsia_sdk」,其中包含了 Fuchsia SDK 的與構建副本,用於創建 Fuchsia 應用程序。第二個是「device/google/fuchsia」,這個項目中,Fuchsia 將使用專門設計的 Android 運行時版本(ART)來運行 Android 應用程序。這個版本的 ART 將使用 .far 檔案安裝在任何 Fuchsia 設備上,Fuchsia 相當於 Android 的 APK。

不過,在 2021 年 2 月,不少人發現 Android 內部 Fuchsia 項目的工作即「device/google/fuchsia」停滯不前。

本週,「device/google/fuchsia」的所有程式碼都從 Android 上刪除了,這也標誌著 Google 放棄了通過這條路徑來讓 Fuchsia 運行 Android 應用。

從 Android 系統中刪除的 Fuchsia 程式碼

在刪除 Fuchsia 相關程式碼後,目前,不知道 Google 的下一步計劃是什麼,但是據悉,負責此次更改的開發人員正在開發 Fuchsia 的「Starnix」項目。

所謂 Starnix 項目,最早於 2021 年被披露出來。該項目最初旨在運行 Fuchsia 原生支持運行 Android 和 Linux 應用程序和庫。為了實現這一目標,Starnix 還將低級核心指令從 Linux 轉換為 Fuchsia 的 Zircon 核心。

簡單來看,Fuchsia 將通過 Starnix 系統,該系統將充當 Linux 核心指令和 Fuchsia 的 Zircon 核心指令之間的轉換器,而並非讓 Fuchsia 直接運行 Linux。

在 Starnix 作為提案被予以落地實踐的一年以來,Google 做了大量的工作想要讓 Android、Linux 與 Fuchsia 的 Zircon 核心兼容。為此,Google 提供了專用的 Starnix Shell,可以幫助開發者和發燒友玩 Fuchsia 工作站。

值得注意的是,這個 shell 不是簡單的 Linux 設計,而是一個「包含在系統中的小型 Android 發行版」。日前,這一功能被替換為通過此 adb 命令訪問 Fuchsia 和 Starnix 的 Android 功能,可以說與訪問任何其他 Android 設備一樣簡單。

Google 發力 Fuchsia,一套系統走天下是否現實?

據 9to5google 報道,Google 下一步也正在準備元件 Fuchsia 的 Starnix 團隊,用來主攻構建一個穩定且與 Android 及其應用程序兼容的解決方案。除此之外,谷歌的 Fuchsia 團隊似乎仍在考慮打造智慧家居以外的產品。Google 希望讓 Fuchsia 成為一個類似 Android 的通用作業系統,與大量的 Android 應用程序兼容。

確實如此,如果 Fuchsia 不能與 Android 上超過 10 億的使用者、開發商以及製造商實現互通,那麼即使再次藉助開源,依然很難會有當初 Android 那樣的盛世。

當然就當前的環境而言,一套系統走天下宛如程式設計師界夢寐以求的「write once,run anywhere」,這是否真的能實現?在 2021 長沙·中國 1024 程式設計師節的技術英雄會上,我們也曾持以同樣的疑問諮詢了國產作業系統領域的幾位資深專家:

  • 指令集創始人兼 CEO 潘愛民:

我覺得從我們早期做作業系統大多數都是從底層做起,但是我們最終的目標是為了平衡共性和個性化。從軟體工程來講,一次編寫就能夠到處使用,是一個理想點。

可能等到將來實現理想狀態之後,我們不需要這麼多的應用程式設計師。因為當程序用烏托邦的思想最終讓程序寫出來之後,會發揮更多的價值。今天在大多數的 B 類項目招標裡面,好多都是把程式設計師當小時工來定價的,這是對程式設計師創造極大的貶低,因為他們只是寫了一次程序,一次運行,沒有第二次,這多麼諷刺。然而,我們做作業系統追求的就是寫一次可以到處使用,因此作為一種抽象的能力,這是我們追求的目標,而且在每一層上都要做到這一點。

隨著挖掘的需求越來越充分,我們需要不斷地把抽象的能力用在每一層上,這才是真正最終解決我們達到理想的軟體世界,做到軟體定義一切的關鍵。

  • 理想汽車副總裁、算力與 OS 部門總負責人許迎春:

其實軟體工程師有一個目標,就是想實現硬體工程師這個樣子,如每個模組做晶片,封裝以後就不用再改了,最終達到這一點的話就算我們實現了工程,否則的話永遠是一個藝術。

大家都覺得硬體晶片無法修改,卻不得不用,軟體隨時可以改,就導致了我們很輕易的放棄了對標準界面的定義。隨著算力的不斷增大,這種情況下是需要付出代價的。

  • 百度主任架構師王柏生:

我說說我的看法:

第一個,我覺得作業系統會是一種百花齊放形式,可能很難說只有一種或者兩種,因為大家可能會有個性化,或者是一些藝術方面的問題。

第二個,之前在傳統作業系統裡面有一個標準,該標準定義了一個良好的接口,承接上面的庫和下面的標準。

我覺得作業系統當前會是百花齊放的狀態,隨著時間的推移,大家可能會定位標準,並向標準逐漸靠攏。

  • 清華大學長聘副教授陳渝:

站在學校的角度來說,努力朝著「write once,run anyway」 這一願景方向發展,但可能達不到。

我比較認同「作業系統就是一種百花齊放的狀態」的說法。也正如許迎春老師所述,改硬體的成本太高,只有在改動成本越來越容易的情況下,我們就更容易實現百花齊放。

我感覺隨著剛才說的算力的提高,我們的程式設計,或者是計算機技術的發展,也許將來更是一種百花齊放的方式,我們其實也在探索,一些資料結構,一些基本的控制邏輯都不一定是人去想,也許 AI 可以幫助我們做一些輔助的改動,這種情況下,我們的成本、代價會更高,在這種情況下我們怎麼去構建一個符合應用需求的軟體系統,不一定是作業系統,是一個軟體系統,也許這就是一個新的問題。

我覺得這裡面是要快速的去適應將來的需求,要達到這一點會是將來的趨勢,而不是說我只做一個科目,只做某一塊,你要做就做一個系統,這是我個人的感覺。

為此,你如何看待「一套系統走天下」這個願景與 Fuchsia 的未來?

參考地址:

https://9to5google.com/2022/07/15/android-removes-fuchsia-code-starnix/

https://9to5google.com/2021/02/12/google-fuchsia-os-android-linux-programs-starnix/

相關文章

載入速度慢?Android Cocos 最佳化實戰

載入速度慢?Android Cocos 最佳化實戰

針對 Cocos 遊戲存在載入速度慢的問題,技術團隊進行了最佳化。不僅僅提升了使用者體驗的提升,而且最佳化了項目結構,還為未來遊戲-原生跨環...

React Native 開發真有那麼好?!

React Native 開發真有那麼好?!

整理 | 蘇宓 兜兜轉轉,不少開發者還是發現 React Native 的真相定律。 日前,國外知名聊天軟體 Discord 於官方部落格上...