當前位置:
首頁 > 最新 > Google Fuchsia微內核Zircon先睹為快

Google Fuchsia微內核Zircon先睹為快

作者| Sergio De Simone

編譯| 蓋磊 、覃雲

日前,Google 發布了名為「the book」的 Fuchsia 官方文檔。Fuchsia 是 Google 針對 IoT 和移動設備新推出的一種操作系統,它基於名為「Zircon」的全新微內核。

Fuchsia 是什麼?

Google Fuchsia 的源碼於 2016 年 8 月首次在 GitHub 上出現,當時 Google 沒有任何的官方說明,但其源碼顯示其能夠支持跨平台開發,不僅支持手機和 PC,還包括汽車媒體系統、傢具物聯等其他嵌入式設備。

與之前的 Android 相同,Fuchsia 是一款開源且免費的系統。但是與 Chrome、Android 不同的是,Fuchsia 不是基於 Linux,而是基於 Google 自己的新微內核,名為 Zirco。

關於 Zirco

Zirkon 由一位名叫 Travis Geiselbrecht 的程序員開發,他還創建了支持 Haiku OS 的 NewOS 內核。Zircon 使用 C++ 編寫,在組成上包括一個微內核,以及一組用戶空間服務、驅動和軟體庫,可處理系統啟動、進程載入等一些經典內核任務。Zircon 的系統調用除了 wait_one, wait_many, port_wait and sleep 之外,一般是非阻塞的。

Zircon 支持在 Linux 或 macOS 上構建,進而創建一個可引導的 bootfs 鏡像。Zircon 最初是 LK 的一個分支。LK 是 Google 為嵌入式系統開發的另一種內核,意在實現對 FreeRTOS 或 ThreadX 的開源替代。但是 Zircon 沒有 LK 那麼嚴格的需求,因為它是設計運行在具有充足內存和高速處理器的現代設備上。

Zircon 可管理的資源包括:處理時間、內存、I/O、中斷、信號與等待等。用戶區域(user land)通過句柄(handle)使用資源,句柄有權利(rights)關聯到資源,並傳遞複製、傳遞、讀取、寫入、執行等行動的執行許可權。Zircon 中的驅動實現為 ELF 軟體庫,並載入到進程中。驅動管理進程 devmgr 追蹤所有的驅動和設備情況,管理對驅動的發現,並管控對設備的訪問。設備可以使用 PCI protocol、USB protocol 等 C ABI 實現協議(Protocol)。

Zirocn 並不支持 Unix 風格的信號,也沒有提供任何可直接實現的機制。它支持句柄上的等待操作。等待包括一系列不同的信號狀態,例如寫入就緒、運行、停止等。同樣,Zircon 不具有類似於 Unix 的 fork 和 exec 操作,而是使用 launchpad 軟體庫創建進程。下面給出了使用 launchpad 創建進程的一個示例代碼段:

要全面了解 Zircon,建議閱讀全部文檔。Zircon 依然處於繁重的開發過程中,但是 Google 當前並未積極需求第三方的貢獻。

Fuchsia 的未來之路

正如上文所說,Fuchsia 能夠嵌入傢具、汽車等硬體系統,這是 Chrome、Android 目前無法做到的,可以看出,Fuchsia 是 Google 從 PC 端、手機端過渡到現在物聯網領域的一項戰略。在很多人看來,Fuchsia 是 Google 統一 Chrome、Android 的一項重要舉措,它把移動、PC 和物聯網圍成一個閉環的 Google 生態,像蘋果那樣,能從根本上解決碎片化的問題。

據了解,Fuchsia 還將支持 Dart 和 Flutter,Dart 是 Google 開發腳本語言,現在已經用於 Google 內部的項目中,而 Flutter 是 Dart 中構建跨平台、高性能移動應用程序的工具,雖然 Flutter 目前仍處於測試階段,但從 Google 這兩年的動作來看,Flutter 或許也是 Google Fuchsia 戰略計劃中的一部分。所以,作為開發者,時刻保持積極的學習態度,跟上技術的發展潮流,其他的,等待時間告訴我們答案。

文檔鏈接

https://fuchsia.googlesource.com/docs/+/master/the-book/

前端之巔

「前端之巔」是 InfoQ 旗下關注大前端技術的垂直社群。緊跟時代潮流,共享一線技術,歡迎關注。

活動推薦

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 前端之巔 的精彩文章:

你所不知道的移動開發
蘇寧易購Android架構演進史

TAG:前端之巔 |