Fuchsia OS簡介
前沿技術?/ 最新技術
由于微信公眾號近期改變了推送規(guī)則,如果你想第一時間看到我的文章就置頂+星標公眾號。

谷歌正在開發(fā)一個全新的操作系統(tǒng),F(xiàn)uchsia OS。
Fuchsia OS不是Android的繼任者,至少這不是它的意圖。在官方文檔中,F(xiàn)uchsia團隊描述說,它不會專注于“用戶體驗”,而是專注于“多種體驗”。
與Android相比,F(xiàn)uchsia將更具響應性和多平臺性,“定位”在多個平臺上,例如:智能手機,電視,HomeCasts,Speeches,Desktops,Watch,也許還有其它任何平臺。
模塊化
Fuchsia OS,現(xiàn)在只是Fuchsia,被設計成一個完全模塊化的系統(tǒng),允許其庫和應用程序完全刪除,更新和添加,而不會影響系統(tǒng) 。
除了確保系統(tǒng)完整性之外,這還使其更加安全,例如可以使用簡單的軟件包輕松獲得安全補丁更新,而不會影響用戶數(shù)據(jù)或其他應用程序。
技術 / 堆棧
Fuchsia開發(fā)中使用的技術當然是C,C++,Rust,Go和Dart。因此,F(xiàn)uchsia開發(fā)人員將能夠選擇后端使用的語言 — 因為作為一個完全模塊化的系統(tǒng),F(xiàn)uchsia沒有問題。
它的原生前端應用程序是在Dart/ Flutter中開發(fā)的,這將極大地促進從Android平臺到Fuchsia的遷移,并且仍在市場采用中,因為Flutter是過去幾年最成功的技術之一!
值得檢查的一點是,今天使用Dart / Flutter和低級語言(直接與操作系統(tǒng)通信的語言,如C / C++和Rust)開發(fā)應用程序是完全可行的,通過使用Dart:ffi庫。
架構

Fuchsia被設計成一個安全、高度可升級、模塊化和高性能的系統(tǒng)。
該系統(tǒng)不再是以前的“實驗”,而是生產(chǎn)級系統(tǒng)。就像新的Google Nest Hub已經(jīng)附帶了一個原生運行的Fuchsia版本一樣。
安全
這意味著在Fuchsia上運行的所有軟件,包括應用程序和系統(tǒng)本身的組件,都遵循最小特權原則(最小特權原則),簡而言之,這要求在操作系統(tǒng)環(huán)境的抽象層中,每個模塊(例如進程,用戶或應用程序)只能訪問其執(zhí)行所需的信息和資源。
可更新
可升級意味著Fuchsia軟件包被設計為獨立更新,甚至是即時交付,或Enphemery,這意味著軟件包被設計為解耦,因此根據(jù)需要從設備來來去去,并且系統(tǒng)始終保持最新狀態(tài)。
模塊化/包容性
模塊化意味著系統(tǒng)與語言無關。由于它被設計為可擴展的,并允許集成用多種語言和運行時編寫的軟件,因此您可以使用C,C++,Rust,Go,Python或Dart / Flutter進行開發(fā)。
內(nèi)核
系統(tǒng)核心是Zircon,它是具有一組庫的內(nèi)核,用于管理系統(tǒng)的啟動和引導。內(nèi)核之外的所有系統(tǒng)組件都是在所謂的用戶空間中實現(xiàn)的,并且與系統(tǒng)的關鍵層完全隔離 - 正如我們已經(jīng)在這里討論的那樣,加強了最小特權的原則 - 所以即使是設備驅(qū)動程序也在用戶空間中隔離。
Zircon帶來了我們通過微內(nèi)核了解的架構和許多概念。這種架構使Fuchsia能夠盡可能地減少信任代碼的數(shù)量,從而限制內(nèi)存管理,調(diào)度和IPC(進程間通信)。

因此,我們遇到了一個可能的問題:如果系統(tǒng)的整個核心與用戶空間隔離,我們?nèi)绾伍_發(fā)需要信息甚至與系統(tǒng)“對話”的應用程序?
因此,我們的代碼執(zhí)行交互,例如:手動內(nèi)存管理,系統(tǒng)任務或進程,IPC,設備I / O等;我們可以使用系統(tǒng)調(diào)用。這些執(zhí)行系統(tǒng)調(diào)用的進程由 vDSO(虛擬動態(tài)共享對象 — libzircon.so)庫執(zhí)行,該庫讀取生成的內(nèi)核映像,而不是直接讀取內(nèi)核中的文件。
如果您是開發(fā)人員,那么您可能需要為Fuchsia開發(fā)的絕大多數(shù)應用程序,您可能會使用事件,流,頻道,套接字等。





結論
如果您是開發(fā)人員,并且有興趣開始在Fuchsia上測試開發(fā),那么仍然存在一些問題。標準的 Flutter SDK 尚不支持對 Fuchsia 主機進行調(diào)試,因此有必要使用 Fuchsia 存儲庫中提供的 SDK。作為Fimage,你甚至可以進行調(diào)試,但它需要一些調(diào)整,但是Fimage不支持。
自從我在2018年年中遇到Fuchsia 以來,我就一直看好它。我相信這是一個革命性的系統(tǒng),不是因為它帶來了新的東西,因為有幾個開源系統(tǒng)在一段時間內(nèi)具有相似的特征和概念,而是因為它帶來了這些概念,并且掌握在谷歌手中。對于那些不記得Dart的人來說,它從一個實驗開始,得到了一個網(wǎng)絡提案,最后是Flutter,隨著Flutter的發(fā)展,語言隨著框架的發(fā)展而增長。
但我并不是說Flutter會拖累Fuchsia的發(fā)展,而是說通過擁有整個系統(tǒng)的堆棧,可能會受到Google本身的限制。想想看,系統(tǒng)是針對多個用戶體驗(多個平臺),而Flutter是為多平臺設計的,所以我們在同一個房子里支持兩個層,(不包括谷歌硬件:Nest Hubs,Google TV,Google Home等)。


