博客專欄

EEPW首頁 > 博客 > 【原創(chuàng)】Fuchsia——谷歌未來的OS

【原創(chuàng)】Fuchsia——谷歌未來的OS

發(fā)布人:tuozi241 時間:2021-05-14 來源:工程師 發(fā)布文章

Fuchsia——谷歌未來的OS

谷歌正在開發(fā)一個新的OS: Fuchsia OS,這個技術團隊放棄了 Linux 架構(gòu),轉(zhuǎn)而基于自行開發(fā)的微內(nèi)核 ZirconFuchsia 不僅可以取代桌面OS Chrome OS,還可以取代為移動設備設計的 Android,盡管 Android占據(jù)了智能手機操作系統(tǒng)85%的市場份額。這個操作系統(tǒng)最終可以取代谷歌現(xiàn)有的操作系統(tǒng),成為一個跨所有設備的統(tǒng)一系統(tǒng),但在這個時候說這個還為時過早,因為它還處于試驗階段。

谷歌的Fuchsia是未來的OS? 我們已經(jīng)仔細研究了這個項目。


什么是谷歌Fuchsia?

Fuchsia不僅是介于紅色和藍色之間的顏色,而且是谷歌自2016年以來一直在公眾面前開發(fā)的模塊化、基于版權的實時OS的名稱。該系統(tǒng)是用 c、 c + + Dart、 Go Rust 編寫的,運行在現(xiàn)代64位英特爾ARM 處理器上。

 

與基于 Linux Android OS Chrome OS 不同,Fuchsia是基于 Zircon內(nèi)核構(gòu)建的,Zircon是谷歌創(chuàng)建的一個新內(nèi)核。與此同時,Armadillo 內(nèi)置在谷歌的 Flutter SDK 中,該軟件用于創(chuàng)建跨平臺的代碼,能夠在多個設備和操作系統(tǒng)上運行。使用 Armadillo,不同的卡片可以在分屏或選項卡界面中拖動使用

 

RTOS能夠?qū)κ录鞒鲰憫?,并在預定義的時間內(nèi)即時提供處理結(jié)果。

谷歌自己的文檔將該軟件描述為針對現(xiàn)代手機和現(xiàn)代個人電腦快速處理器大量內(nèi)存它還明確指出“ Fuchsia 不是 Linux” Fuchsia GitHub 頁面上列出了兩位開發(fā)者——一位是谷歌的高級軟件工程師,一位是 Android TV Nexus q 的前工程師——他們都是嵌入式系統(tǒng)領域的知名專家

正如我們所提到的,Fuchsia 是建立在 Zircon 之上的,這是一個中等大小的微內(nèi)核,基于 LittleKernel 項目,用于嵌入式系統(tǒng),比如一個不需要整個操作系統(tǒng)的設備,比如一個物聯(lián)網(wǎng)設備。Google 的文檔說明 Zircon 支持用戶模式、圖形渲染和基于能力的安全模型。這一切都表明 Fuchsia 是物聯(lián)網(wǎng)的操作系統(tǒng)。

Fuchsia OS 的源代碼有開源許可證(包括 BSD MIT Apache 許可證) ,任何人都可以在 Google 的公共 Git 倉庫中查看和下載。這里有一個關于這個項目的全面文檔。

根據(jù)文檔,Fuchsia OS 同樣適用于智能手機、平板電腦、筆記本電腦和臺式電腦。從20175月開始,Armadillo 已經(jīng)有了一個觸摸優(yōu)化的用戶界面(UI)和一個圖形用戶界面。谷歌正在為 Fuchsia OS開發(fā)一個名為 Capybara 的桌面用戶界面。從那時起,就有傳言說谷歌正在研究一種幾乎無與倫比的安卓系統(tǒng)的替代品。

 

安卓系統(tǒng)仍然存在碎片化問題。這是由于數(shù)十家制造商的數(shù)百臺設備使用不同的自定義 Android 版本,而不是最新、最純的版本。安卓系統(tǒng)也有更新問題,源于開源操作系統(tǒng)。谷歌為 Android 系統(tǒng)的更新制定了年度發(fā)布計劃,但是需要一段時間才能完全覆蓋整個生態(tài)系統(tǒng)。谷歌把安卓系統(tǒng)提供給 oem 和運營商,讓他們修修補補,隨機加載到硬件上,導致系統(tǒng)分裂。如果已經(jīng)做了任何修改,谷歌不能直接向設備推送更新。也是基于 Linux 的,Linux 一直受到許多法律問題的困擾,而且內(nèi)核已經(jīng)被完全調(diào)整,為 bug 和漏洞的增長創(chuàng)造了一個主要的環(huán)境。


FuchsiaOS是如何工作的?

谷歌在Fuchsia OS的開發(fā)上開辟了新天地。可以說,蘋果公司已經(jīng)從過去的錯誤中吸取了教訓——尤其是在更新和修改 Android Chrome OS方面的限制和問題?,F(xiàn)有的谷歌OS的核心區(qū)別在于: Fuchsia OS 從開始到結(jié)束都是模塊化的。這不僅反映在模塊化系統(tǒng)體系結(jié)構(gòu)中,而且反映在對應用程序的全新理解中。

 

模塊化應用程序設計

Google Fuchsia 基于模塊化設計,打破了應用的概念。軟件單元稱為軟件包。包是文件的選擇——包括元數(shù)據(jù)、清單文件和可執(zhí)行元素。后者在谷歌術語中被稱為Components。

Fuchsia components最接近我們今天所說的應用程序。每個組件執(zhí)行一個特定的任務,并且可以與其他組件組合以支持復雜的應用程序。組件的各個部分包括一個清單文件以及關聯(lián)的代碼。組件總是在自己的沙箱中運行,通過名稱空間訪問對象,并通過導出目錄發(fā)布它們。Fuchsia OS 主要關注兩種類型的組件: 模塊和代理。

Components中的組件在后臺工作,并為其他組件提供服務。代理被另一個組件或系統(tǒng)調(diào)用——例如,響應某些觸發(fā)器,如推送通知或其他屏幕上的進程。

Modules是在前臺執(zhí)行、用戶可見的具有用戶界面的組件。OS中的每個模塊都是為特定任務設計的,并相應地標記,以便在需要時能夠自動訪問。這是通過模塊的函數(shù)完成的,可以用所謂的動詞和名詞來描述。

每個模塊都包含一個動詞列表,用于指示模塊可以完成哪些工作,以及一個表示正在處理的實體的名詞列表。根據(jù) Google 的術語,術語實體包括任何唯一可識別的人、地點、事物、事件或概念,它們作為結(jié)構(gòu)化數(shù)據(jù)對象存在,可以被引用、檢索、呈現(xiàn)、操作或共享。

實際上,使用實時OS Fuchsia 的情況如下: 只要用戶執(zhí)行一個操作,Fuchsia OS 就會自動確定任務的合適模塊。所需的動作被翻譯成動詞和名詞的組合。然后系統(tǒng)檢索所有支持所需謂詞的模塊列表,在下一步中,根據(jù)也可以處理所需名詞的模塊進行過濾。

相關的模塊可以組合成所謂的故事。情景根據(jù)當前需求將不同的操作和任務組合在一起,并且應該使用戶能夠根據(jù)自己的想法和需求組裝復雜的應用程序。

小結(jié)

借助于 Fuchsia OS 的模塊化應用概念,Google 將重點從應用轉(zhuǎn)移到了動作和內(nèi)容上。與傳統(tǒng)的應用程序OS不同,Fuchsia 的任務由一組組件在所謂的故事中處理,這些組件通過模塊訪問當前所需的資源。

下面的圖形說明了 Fuchsia OS 應用程序開發(fā)背后的模塊化概念。Fuchsia OS應用程序的開發(fā)是基于模塊化結(jié)構(gòu)

 

模塊化系統(tǒng)體系結(jié)構(gòu)

Fuchsia OS 的系統(tǒng)架構(gòu)也是基于模塊化的方法。OS由四個或多或少相互獨立的級別組成,每個級別都有自己的任務: GarnetZircon、PeridotTopaz。

 

Zircon

Zircon (原名 Magenta)是谷歌新OS的基礎,但嚴格來說它不是 Fuchsia OS 的一部分,也可以與其他OS一起使用。

Zircon 包含 Fuchsia OS 內(nèi)核、設備管理器、最核心和第一方設備驅(qū)動程序,以及 libc launchpad 等低級系統(tǒng)庫。此外,Zircon 還提供了 FIDL (Fuchsia 接口定義語言) ,一種用于進程間通信的協(xié)議。FIDL 是獨立于編程語言的,但與流行的編程語言如 c、 c + + Dart、 Go Rust 有聯(lián)系。

作為 Fuchsia OS 的基礎,Zircon 為后續(xù)級別提供硬件訪問,在共享的硬件資源上創(chuàng)建軟件抽象,并作為低級別軟件開發(fā)的平臺。Zircon 是小內(nèi)核項目(LK)的結(jié)果,它充當 Android 的引導裝載程序。

 

Garnet

Garnet是第一個基于GarnetFuchsia特定系統(tǒng)層。在設備級別提供各種系統(tǒng)服務,以及網(wǎng)絡、媒體和圖形服務——例如軟件安裝、系統(tǒng)管理和與其他系統(tǒng)的通信。Garnet 包含圖形渲染器 Escher,包管理和更新系統(tǒng) Amber,以及文本和代碼編輯器 Xi。

 

Peridot

PeridotOSFuchsia OS的水平,其中模塊化的應用程序(見上文)是管理和編譯根據(jù)目前的用戶需求。Peridot的核心成分是LedgerMaxwell。

  • Ledger: Ledger 是一個基于云的存儲系統(tǒng)(分布式存儲系統(tǒng)) ,它為每個 Fuchsia 組件(模塊或代理)提供單獨的數(shù)據(jù)存儲。這在不同的設備之間是同步的。這使得用戶可以在 Fuchsia 設備上繼續(xù)使用另一款Fuchsia設備。分類帳是安全的到用戶的谷歌帳戶

  • Maxwell: 通過Maxwell,谷歌在Fuchsia OS中集成了一個組件,支持用戶的人工智能。就像 Fuchsia 一樣,Maxwell采用了模塊化設計。人工智能系統(tǒng)由一系列代理組成,這些代理分析用戶的行為及其使用的內(nèi)容,確定后臺中的適當信息,并向OS提出建議——例如,應該加載哪些模塊或故事以適應用戶在特定時間的行為。谷歌語言助手也是人工智能組件的一部分,該組件正在代號為 Kronk Fuchsia 項目框架內(nèi)進一步開發(fā)

注意

Kronk 是迄今為止唯一一個不是作為開源項目開發(fā)的 Fuchsia OS 組件。

 

Topaz

Topaz Fuchsia OS 的系統(tǒng)級別,用戶與OS進行交互。這里顯示了下面級別定義的組件的用戶界面: 帶主屏幕的圖形用戶界面和模塊的視覺前端。谷歌的跨平臺開源移動應用程序框架 Flutter 也集成在這個系統(tǒng)級別。因此,我們可以假定,Fuchsia OS 用戶將來也能夠運行和使用其他系統(tǒng)的應用程序——比如 Android iOS 應用程序。

The modular system architecture of Fuchsia OS Fuchsia OS的四個系統(tǒng)級別: Zircon, Garnet, Peridot, Topaz

Fuchsia OS 的優(yōu)缺點一目了然

按照模塊化的方法,Fuchsia OS 的開發(fā)人員將系統(tǒng)體系結(jié)構(gòu)劃分為具有特殊任務的獨立區(qū)域。這不僅提高了代碼的可讀性,而且影響了OS的適應性和更新。除此之外,谷歌還解決了 Android 長期以來一直難以解決的升級問題。

 

安卓生態(tài)系統(tǒng)正在努力解決更新問題??纯垂俜降陌l(fā)行指示板就會發(fā)現(xiàn): 新版本的OS正在緩慢擴展。這是一個競爭對手沒有面對的問題。雖然蘋果的硬件和軟件來自同一個來源,并且可以直接適應,但是每次 Android 升級必須首先由不同的硬件制造商來實現(xiàn)。

此外,模塊化的系統(tǒng)架構(gòu)滿足了谷歌銷售合作伙伴的需求,他們希望根據(jù)自己的想法改進或擴展Fuchsia OS。

硬件制造商有可能在不影響其他級別功能的情況下,用自己的產(chǎn)品交換OS的各個級別。例如,三星可以用自行開發(fā)的 touchwiz 風格的用戶界面取代 Topaz。亞馬遜可以放棄Peridot和谷歌語言助手,而是為 Fuchsia OS 裝備一個基于 aws 的應用程序模塊,包括 Alexa。

在這兩種情況下,設備制造商都可以提供個性化版本的Fuchsia OS,而不會影響GarnetZircon的特性,也不會影響這些層的官方更新周期。

優(yōu)點

缺點

Fuchsia OS 的模塊化系統(tǒng)架構(gòu)使得谷歌能夠比 Android 更快地推出安全更新

谷歌使Ledger成為Fuchsia OS的核心組件。Ledger 控制跨多個設備的應用程序同步,將系統(tǒng)緊密地綁定到云上

由于模塊化設計,硬件制造商有可能用自己的模塊替換Fuchsia OS的單個系統(tǒng)級別,而不影響其他級別的功能


發(fā)展狀況

FuchsiaOS正在慢慢形成,但還遠遠沒有為市場做好準備。即使是官方的發(fā)布日期也沒有被谷歌公布。據(jù)媒體報道,第一批硬件測試已經(jīng)開始。作為第一個測試 Fuchsia OS 的設備制造商,華為已經(jīng)在 honorplay 上成功啟動了新的OS。這款智能手機配備了華為麒麟970芯片,該芯片也用于該制造商的其他設備,如 Mate 10、 Mate 20 Mate 20 Pro

Fuchsia OS 演示

Fuchsia OS 可以編譯成 APK (Android 軟件包) ,早在開發(fā)階段就安裝在 Android 智能手機和平板電腦上。Mgoulao.github.io Manuel Goul?o Fuchsia OS 演示版本展示了它的樣子。

如果你在瀏覽器中訪問 Fuchsia OS 演示,你會看到一個網(wǎng)站,顯示OS的啟動屏幕。這將向用戶提供背景圖像和當前時間。此外,還有三個按鈕可用: 打開 Wi-Fi 設置的按鈕、注冊用戶的登錄按鈕和來賓登錄。

這個演示只允許你以客人身份注冊。

Armadillo – the graphical user interface of Fuchsia OS for mobile devices: start screen

注冊用戶可以訪問Fuchsia OS的主屏幕,在一個頁面上顯示所有信息。

主屏幕上最突出的元素是屏幕中央的一個窗口,其中包含谷歌搜索欄、谷歌語言向?qū)Ш桶惭b在設備上的應用程序。

Armadillo – the graphical user interface of Fuchsia OS for mobile devices: home screen 

如果你啟動一個應用程序(它只能讓演示作為一個虛擬應用程序可用) ,你會看到谷歌選擇了一個基于窗口的用戶界面。

Armadillo – the graphical user interface of Fuchsia OS for mobile devices: apps as windows on the home screen

單擊主屏幕中間的用戶圖像會打開一個帶有常用設置的菜單。

 

參考資料:

https://arstechnica.com/gadgets/2020/12/googles-secretive-fuchsia-os-is-open-for-contributions/

https://www.ionos.com/digitalguide/server/tools/fuchsia-os/

https://www.pocket-lint.com/laptops/news/google/138518-google-fuchsia-os-what-s-the-story-so-far

 


*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權請聯(lián)系工作人員刪除。




相關推薦

技術專區(qū)

關閉