【原創(chuàng)】Fuchsia——谷歌未來(lái)的OS
Fuchsia——谷歌未來(lái)的OS
谷歌正在開(kāi)發(fā)一個(gè)新的OS: Fuchsia OS,這個(gè)技術(shù)團(tuán)隊(duì)放棄了 Linux 架構(gòu),轉(zhuǎn)而基于自行開(kāi)發(fā)的微內(nèi)核 Zircon。Fuchsia 不僅可以取代桌面OS Chrome OS,還可以取代為移動(dòng)設(shè)備設(shè)計(jì)的 Android,盡管 Android占據(jù)了智能手機(jī)操作系統(tǒng)85%的市場(chǎng)份額。這個(gè)操作系統(tǒng)最終可以取代谷歌現(xiàn)有的操作系統(tǒng),成為一個(gè)跨所有設(shè)備的統(tǒng)一系統(tǒng),但在這個(gè)時(shí)候說(shuō)這個(gè)還為時(shí)過(guò)早,因?yàn)樗€處于試驗(yàn)階段。
谷歌的Fuchsia是未來(lái)的OS嗎? 我們已經(jīng)仔細(xì)研究了這個(gè)項(xiàng)目。
什么是谷歌Fuchsia?
Fuchsia不僅是介于紅色和藍(lán)色之間的顏色,而且是谷歌自2016年以來(lái)一直在公眾面前開(kāi)發(fā)的模塊化、基于版權(quán)的實(shí)時(shí)OS的名稱(chēng)。該系統(tǒng)是用 c、 c + + 、 Dart、 Go 和 Rust 編寫(xiě)的,運(yùn)行在現(xiàn)代64位英特爾ARM 處理器上。
與基于 Linux 的 Android OS 或 Chrome OS 不同,Fuchsia是基于 Zircon內(nèi)核構(gòu)建的,Zircon是谷歌創(chuàng)建的一個(gè)新內(nèi)核。與此同時(shí),Armadillo 內(nèi)置在谷歌的 Flutter SDK 中,該軟件用于創(chuàng)建跨平臺(tái)的代碼,能夠在多個(gè)設(shè)備和操作系統(tǒng)上運(yùn)行。使用 Armadillo,不同的卡片可以在分屏或選項(xiàng)卡界面中拖動(dòng)使用
RTOS能夠?qū)κ录鞒鲰憫?yīng),并在預(yù)定義的時(shí)間內(nèi)即時(shí)提供處理結(jié)果。
谷歌自己的文檔將該軟件描述為針對(duì)“現(xiàn)代手機(jī)和現(xiàn)代個(gè)人電腦”的“快速處理器”和“大量?jī)?nèi)存”它還明確指出“ Fuchsia 不是 Linux”在 Fuchsia 的 GitHub 頁(yè)面上列出了兩位開(kāi)發(fā)者——一位是谷歌的高級(jí)軟件工程師,一位是 Android TV 和 Nexus q 的前工程師——他們都是嵌入式系統(tǒng)領(lǐng)域的知名專(zhuān)家
正如我們所提到的,Fuchsia 是建立在 Zircon 之上的,這是一個(gè)“中等大小的微內(nèi)核” ,基于 LittleKernel 項(xiàng)目,用于嵌入式系統(tǒng),比如一個(gè)不需要整個(gè)操作系統(tǒng)的設(shè)備,比如一個(gè)物聯(lián)網(wǎng)設(shè)備。Google 的文檔說(shuō)明 Zircon 支持用戶(hù)模式、圖形渲染和“基于能力的安全模型”。這一切都表明 Fuchsia 是物聯(lián)網(wǎng)的操作系統(tǒng)。
Fuchsia OS 的源代碼有開(kāi)源許可證(包括 BSD、 MIT 和 Apache 許可證) ,任何人都可以在 Google 的公共 Git 倉(cāng)庫(kù)中查看和下載。這里有一個(gè)關(guān)于這個(gè)項(xiàng)目的全面文檔。
根據(jù)文檔,Fuchsia OS 同樣適用于智能手機(jī)、平板電腦、筆記本電腦和臺(tái)式電腦。從2017年5月開(kāi)始,Armadillo 已經(jīng)有了一個(gè)觸摸優(yōu)化的用戶(hù)界面(UI)和一個(gè)圖形用戶(hù)界面。谷歌正在為 Fuchsia OS開(kāi)發(fā)一個(gè)名為 Capybara 的桌面用戶(hù)界面。從那時(shí)起,就有傳言說(shuō)谷歌正在研究一種幾乎無(wú)與倫比的安卓系統(tǒng)的替代品。
安卓系統(tǒng)仍然存在碎片化問(wèn)題。這是由于數(shù)十家制造商的數(shù)百臺(tái)設(shè)備使用不同的自定義 Android 版本,而不是最新、最純的版本。安卓系統(tǒng)也有更新問(wèn)題,源于開(kāi)源操作系統(tǒng)。谷歌為 Android 系統(tǒng)的更新制定了年度發(fā)布計(jì)劃,但是需要一段時(shí)間才能完全覆蓋整個(gè)生態(tài)系統(tǒng)。谷歌把安卓系統(tǒng)提供給 oem 和運(yùn)營(yíng)商,讓他們修修補(bǔ)補(bǔ),隨機(jī)加載到硬件上,導(dǎo)致系統(tǒng)分裂。如果已經(jīng)做了任何修改,谷歌不能直接向設(shè)備推送更新。也是基于 Linux 的,Linux 一直受到許多法律問(wèn)題的困擾,而且內(nèi)核已經(jīng)被完全調(diào)整,為 bug 和漏洞的增長(zhǎng)創(chuàng)造了一個(gè)主要的環(huán)境。
Fuchsia的OS是如何工作的?
谷歌在Fuchsia OS的開(kāi)發(fā)上開(kāi)辟了新天地??梢哉f(shuō),蘋(píng)果公司已經(jīng)從過(guò)去的錯(cuò)誤中吸取了教訓(xùn)——尤其是在更新和修改 Android 和 Chrome OS方面的限制和問(wèn)題?,F(xiàn)有的谷歌OS的核心區(qū)別在于: Fuchsia OS 從開(kāi)始到結(jié)束都是模塊化的。這不僅反映在模塊化系統(tǒng)體系結(jié)構(gòu)中,而且反映在對(duì)應(yīng)用程序的全新理解中。
模塊化應(yīng)用程序設(shè)計(jì)
Google Fuchsia 基于模塊化設(shè)計(jì),打破了應(yīng)用的概念。軟件單元稱(chēng)為軟件包。包是文件的選擇——包括元數(shù)據(jù)、清單文件和可執(zhí)行元素。后者在谷歌術(shù)語(yǔ)中被稱(chēng)為Components。
Fuchsia components最接近我們今天所說(shuō)的應(yīng)用程序。每個(gè)組件執(zhí)行一個(gè)特定的任務(wù),并且可以與其他組件組合以支持復(fù)雜的應(yīng)用程序。組件的各個(gè)部分包括一個(gè)清單文件以及關(guān)聯(lián)的代碼。組件總是在自己的沙箱中運(yùn)行,通過(guò)名稱(chēng)空間訪(fǎng)問(wèn)對(duì)象,并通過(guò)導(dǎo)出目錄發(fā)布它們。Fuchsia OS 主要關(guān)注兩種類(lèi)型的組件: 模塊和代理。
Components中的組件在后臺(tái)工作,并為其他組件提供服務(wù)。代理被另一個(gè)組件或系統(tǒng)調(diào)用——例如,響應(yīng)某些觸發(fā)器,如推送通知或其他屏幕上的進(jìn)程。
Modules是在前臺(tái)執(zhí)行、用戶(hù)可見(jiàn)的具有用戶(hù)界面的組件。OS中的每個(gè)模塊都是為特定任務(wù)設(shè)計(jì)的,并相應(yīng)地標(biāo)記,以便在需要時(shí)能夠自動(dòng)訪(fǎng)問(wèn)。這是通過(guò)模塊的函數(shù)完成的,可以用所謂的動(dòng)詞和名詞來(lái)描述。
每個(gè)模塊都包含一個(gè)動(dòng)詞列表,用于指示模塊可以完成哪些工作,以及一個(gè)表示正在處理的實(shí)體的名詞列表。根據(jù) Google 的術(shù)語(yǔ),術(shù)語(yǔ)實(shí)體包括任何唯一可識(shí)別的人、地點(diǎn)、事物、事件或概念,它們作為結(jié)構(gòu)化數(shù)據(jù)對(duì)象存在,可以被引用、檢索、呈現(xiàn)、操作或共享。
實(shí)際上,使用實(shí)時(shí)OS Fuchsia 的情況如下: 只要用戶(hù)執(zhí)行一個(gè)操作,Fuchsia OS 就會(huì)自動(dòng)確定任務(wù)的合適模塊。所需的動(dòng)作被翻譯成動(dòng)詞和名詞的組合。然后系統(tǒng)檢索所有支持所需謂詞的模塊列表,在下一步中,根據(jù)也可以處理所需名詞的模塊進(jìn)行過(guò)濾。
相關(guān)的模塊可以組合成所謂的故事。情景根據(jù)當(dāng)前需求將不同的操作和任務(wù)組合在一起,并且應(yīng)該使用戶(hù)能夠根據(jù)自己的想法和需求組裝復(fù)雜的應(yīng)用程序。
小結(jié)
借助于 Fuchsia OS 的模塊化應(yīng)用概念,Google 將重點(diǎn)從應(yīng)用轉(zhuǎn)移到了動(dòng)作和內(nèi)容上。與傳統(tǒng)的應(yīng)用程序OS不同,Fuchsia 的任務(wù)由一組組件在所謂的故事中處理,這些組件通過(guò)模塊訪(fǎng)問(wèn)當(dāng)前所需的資源。
下面的圖形說(shuō)明了 Fuchsia OS 應(yīng)用程序開(kāi)發(fā)背后的模塊化概念。Fuchsia OS應(yīng)用程序的開(kāi)發(fā)是基于模塊化結(jié)構(gòu)
模塊化系統(tǒng)體系結(jié)構(gòu)
Fuchsia OS 的系統(tǒng)架構(gòu)也是基于模塊化的方法。OS由四個(gè)或多或少相互獨(dú)立的級(jí)別組成,每個(gè)級(jí)別都有自己的任務(wù): Garnet、Zircon、Peridot和Topaz。
Zircon
Zircon (原名 Magenta)是谷歌新OS的基礎(chǔ),但嚴(yán)格來(lái)說(shuō)它不是 Fuchsia OS 的一部分,也可以與其他OS一起使用。
Zircon 包含 Fuchsia OS 內(nèi)核、設(shè)備管理器、最核心和第一方設(shè)備驅(qū)動(dòng)程序,以及 libc 和 launchpad 等低級(jí)系統(tǒng)庫(kù)。此外,Zircon 還提供了 FIDL (Fuchsia 接口定義語(yǔ)言) ,一種用于進(jìn)程間通信的協(xié)議。FIDL 是獨(dú)立于編程語(yǔ)言的,但與流行的編程語(yǔ)言如 c、 c + + 、 Dart、 Go 和 Rust 有聯(lián)系。
作為 Fuchsia OS 的基礎(chǔ),Zircon 為后續(xù)級(jí)別提供硬件訪(fǎng)問(wèn),在共享的硬件資源上創(chuàng)建軟件抽象,并作為低級(jí)別軟件開(kāi)發(fā)的平臺(tái)。Zircon 是小內(nèi)核項(xiàng)目(LK)的結(jié)果,它充當(dāng) Android 的引導(dǎo)裝載程序。
Garnet
Garnet是第一個(gè)基于Garnet的Fuchsia特定系統(tǒng)層。在設(shè)備級(jí)別提供各種系統(tǒng)服務(wù),以及網(wǎng)絡(luò)、媒體和圖形服務(wù)——例如軟件安裝、系統(tǒng)管理和與其他系統(tǒng)的通信。Garnet 包含圖形渲染器 Escher,包管理和更新系統(tǒng) Amber,以及文本和代碼編輯器 Xi。
Peridot
Peridot是OS的Fuchsia OS的水平,其中模塊化的應(yīng)用程序(見(jiàn)上文)是管理和編譯根據(jù)目前的用戶(hù)需求。Peridot的核心成分是Ledger和Maxwell。
Ledger: Ledger 是一個(gè)基于云的存儲(chǔ)系統(tǒng)(分布式存儲(chǔ)系統(tǒng)) ,它為每個(gè) Fuchsia 組件(模塊或代理)提供單獨(dú)的數(shù)據(jù)存儲(chǔ)。這在不同的設(shè)備之間是同步的。這使得用戶(hù)可以在 Fuchsia 設(shè)備上繼續(xù)使用另一款Fuchsia設(shè)備。分類(lèi)帳是安全的到用戶(hù)的谷歌帳戶(hù)
Maxwell: 通過(guò)Maxwell,谷歌在Fuchsia OS中集成了一個(gè)組件,支持用戶(hù)的人工智能。就像 Fuchsia 一樣,Maxwell采用了模塊化設(shè)計(jì)。人工智能系統(tǒng)由一系列代理組成,這些代理分析用戶(hù)的行為及其使用的內(nèi)容,確定后臺(tái)中的適當(dāng)信息,并向OS提出建議——例如,應(yīng)該加載哪些模塊或故事以適應(yīng)用戶(hù)在特定時(shí)間的行為。谷歌語(yǔ)言助手也是人工智能組件的一部分,該組件正在代號(hào)為 Kronk 的 Fuchsia 項(xiàng)目框架內(nèi)進(jìn)一步開(kāi)發(fā)
注意
Kronk 是迄今為止唯一一個(gè)不是作為開(kāi)源項(xiàng)目開(kāi)發(fā)的 Fuchsia OS 組件。
Topaz
Topaz 是 Fuchsia OS 的系統(tǒng)級(jí)別,用戶(hù)與OS進(jìn)行交互。這里顯示了下面級(jí)別定義的組件的用戶(hù)界面: 帶主屏幕的圖形用戶(hù)界面和模塊的視覺(jué)前端。谷歌的跨平臺(tái)開(kāi)源移動(dòng)應(yīng)用程序框架 Flutter 也集成在這個(gè)系統(tǒng)級(jí)別。因此,我們可以假定,Fuchsia OS 用戶(hù)將來(lái)也能夠運(yùn)行和使用其他系統(tǒng)的應(yīng)用程序——比如 Android 或 iOS 應(yīng)用程序。
Fuchsia OS的四個(gè)系統(tǒng)級(jí)別: Zircon, Garnet, Peridot, Topaz
Fuchsia OS 的優(yōu)缺點(diǎn)一目了然
按照模塊化的方法,Fuchsia OS 的開(kāi)發(fā)人員將系統(tǒng)體系結(jié)構(gòu)劃分為具有特殊任務(wù)的獨(dú)立區(qū)域。這不僅提高了代碼的可讀性,而且影響了OS的適應(yīng)性和更新。除此之外,谷歌還解決了 Android 長(zhǎng)期以來(lái)一直難以解決的升級(jí)問(wèn)題。
安卓生態(tài)系統(tǒng)正在努力解決更新問(wèn)題??纯垂俜降陌l(fā)行指示板就會(huì)發(fā)現(xiàn): 新版本的OS正在緩慢擴(kuò)展。這是一個(gè)競(jìng)爭(zhēng)對(duì)手沒(méi)有面對(duì)的問(wèn)題。雖然蘋(píng)果的硬件和軟件來(lái)自同一個(gè)來(lái)源,并且可以直接適應(yīng),但是每次 Android 升級(jí)必須首先由不同的硬件制造商來(lái)實(shí)現(xiàn)。
此外,模塊化的系統(tǒng)架構(gòu)滿(mǎn)足了谷歌銷(xiāo)售合作伙伴的需求,他們希望根據(jù)自己的想法改進(jìn)或擴(kuò)展Fuchsia OS。
硬件制造商有可能在不影響其他級(jí)別功能的情況下,用自己的產(chǎn)品交換OS的各個(gè)級(jí)別。例如,三星可以用自行開(kāi)發(fā)的 touchwiz 風(fēng)格的用戶(hù)界面取代 Topaz。亞馬遜可以放棄Peridot和谷歌語(yǔ)言助手,而是為 Fuchsia OS 裝備一個(gè)基于 aws 的應(yīng)用程序模塊,包括 Alexa。
在這兩種情況下,設(shè)備制造商都可以提供個(gè)性化版本的Fuchsia OS,而不會(huì)影響Garnet和Zircon的特性,也不會(huì)影響這些層的官方更新周期。
優(yōu)點(diǎn) | 缺點(diǎn) |
Fuchsia OS 的模塊化系統(tǒng)架構(gòu)使得谷歌能夠比 Android 更快地推出安全更新 | 谷歌使Ledger成為Fuchsia OS的核心組件。Ledger 控制跨多個(gè)設(shè)備的應(yīng)用程序同步,將系統(tǒng)緊密地綁定到云上 |
由于模塊化設(shè)計(jì),硬件制造商有可能用自己的模塊替換Fuchsia OS的單個(gè)系統(tǒng)級(jí)別,而不影響其他級(jí)別的功能 |
發(fā)展?fàn)顩r
Fuchsia的OS正在慢慢形成,但還遠(yuǎn)遠(yuǎn)沒(méi)有為市場(chǎng)做好準(zhǔn)備。即使是官方的發(fā)布日期也沒(méi)有被谷歌公布。據(jù)媒體報(bào)道,第一批硬件測(cè)試已經(jīng)開(kāi)始。作為第一個(gè)測(cè)試 Fuchsia OS 的設(shè)備制造商,華為已經(jīng)在 honorplay 上成功啟動(dòng)了新的OS。這款智能手機(jī)配備了華為麒麟970芯片,該芯片也用于該制造商的其他設(shè)備,如 Mate 10、 Mate 20和 Mate 20 Pro。
Fuchsia OS 演示
Fuchsia OS 可以編譯成 APK (Android 軟件包) ,早在開(kāi)發(fā)階段就安裝在 Android 智能手機(jī)和平板電腦上。Mgoulao.github.io 的 Manuel Goul?o 的 Fuchsia OS 演示版本展示了它的樣子。
如果你在瀏覽器中訪(fǎng)問(wèn) Fuchsia OS 演示,你會(huì)看到一個(gè)網(wǎng)站,顯示OS的啟動(dòng)屏幕。這將向用戶(hù)提供背景圖像和當(dāng)前時(shí)間。此外,還有三個(gè)按鈕可用: 打開(kāi) Wi-Fi 設(shè)置的按鈕、注冊(cè)用戶(hù)的登錄按鈕和來(lái)賓登錄。
這個(gè)演示只允許你以客人身份注冊(cè)。
注冊(cè)用戶(hù)可以訪(fǎng)問(wèn)Fuchsia OS的主屏幕,在一個(gè)頁(yè)面上顯示所有信息。
主屏幕上最突出的元素是屏幕中央的一個(gè)窗口,其中包含谷歌搜索欄、谷歌語(yǔ)言向?qū)Ш桶惭b在設(shè)備上的應(yīng)用程序。
如果你啟動(dòng)一個(gè)應(yīng)用程序(它只能讓演示作為一個(gè)虛擬應(yīng)用程序可用) ,你會(huì)看到谷歌選擇了一個(gè)基于窗口的用戶(hù)界面。
單擊主屏幕中間的用戶(hù)圖像會(huì)打開(kāi)一個(gè)帶有常用設(shè)置的菜單。
參考資料:
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)友個(gè)人發(fā)布,僅代表博主個(gè)人觀(guān)點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。