1. 程式人生 > >取代Android?聊聊谷歌的Fuchsia新操作系統

取代Android?聊聊谷歌的Fuchsia新操作系統

進程間通訊 軟件開發 行為 現在 無線路由 qemu 正常 這樣的 調用

最近,一款由谷歌開發,被稱為 Fuchsia 的操作系統在網上曝光。Fuchsia 是在去年 8 月就進入了 GitHub 項目,但谷歌對此非常低調,像操作系統這樣的重量級項目,卻沒有官方的宣傳和說明介紹。網上的介紹稱這個操作系統采用了代號為 Magenta[一種給給的洋紅色] 的微內核設計 [MicroKernel],是一種實時操作系統 [real-time OS]。在谷歌官方介紹出現前,網上已經有了大量的「解毒」:例如說 Fuchsia 是用來取代 Android 高性能操作系統,兼容 Android 應用;也有說是針對物聯網開發的一種實時操作系統;甚至有說是為了混合現實 [MR] 設計的操作系統,這眾說紛紜下,哪個比較有道理?

微內核和實時系統

技術分享
操作系統架構分類 [集成型-微內核-混合型] - 圖片來自維基百科

微內核在計算機術語中,特指的是操作系統的內核小型化,即操作系統核心部分架構只有線程管理、內存管理和進程間通訊等最基本的系統調用功能,即使是系統服務、硬件驅動都放在了用戶空間應用。不同應用間通過進程通信方式完成。微內核是相對於 Linux 這種龐大的集成式核心的最大優勢就是較好的伸縮性,其硬件驅動和系統服務可以按需取舍,效率高,因此微內核設計的操作系統和硬件在日常生活中常見於路由器等小型設備,以及一些分工明確的分布式系統。但隨著硬件性能的提升,小設備的系統也正在變得大而全起來,以 Linux、Android 為基礎的「智能硬件」已經廣泛普及。

技術分享
Windows NT

技術分享
Mac OS

在 PC 上運行的操作系統中,基於 Mach 的 MacOS 就是微內核系統的典型,雖然 WindowsNT 和 OSX 都曾經自我標榜為微內核操作系統,但由於微內核系統中用戶訪問程序、硬件等行為都需要通過通信而不是程序函數調用完成,因此在大型復雜的應用下性能和效率都非常捉急。現在的 Windows 和 OSX 系統都將大量的系統服務和硬件驅動放入系統核心部分,其實更為接近 Linux 這樣的集成式核心設計,有時會把這種集成式內核和微內核設計的結合稱為混合式核心設計。

而實時系統是一種以實時 [或盡快] 並按時完成需求任務的操作系統類型,比較著名的有 WindowsCE、VxWorks 等。這類系統並不追求大數據吞吐量,而是要求有較快的響應速度和靈活的任務執行能力。

Fuchsia 能做什麽?

技術分享
Google Fuchia Logo - 圖片來自互聯網

目前比較受歡迎的微內核+實時系統有開源的 FreeRTOS 等,它沒有圖形操作界面,主要用於實現類似無線路由器等功能比較單一的設備系統。而 Fuchsia 已經被歸類為微內核+實時系統,是不是真的奔著物聯網操作系統而去的?但 Fuchsia 出名就是因為在油管上有人演示了在手機上運行 Fuchsia 圖形界面的片段而開始火起來的,當然目前其圖形界面還處於初始演示階段,並沒有具體的功能,但可以看出人們還是希望更願意接觸的是一個有圖形界面的全能型操作系統,而不是早期的純命令行模式界面,然而對於大多數物聯網設備來說,UI 只是個累贅。

但以此要推斷出 Fuchsia 是要做物聯網操作系統還是取代 Android 還為時過早,從硬件支持平臺來看,Fuchsia 主要支持的是 ARM64 和 X86-64 兩種高性能運算處理器類型,這類高功耗處理器顯然不適合用在追求低功耗和小型化的物聯網平臺,至少從 Fuchsia 開發者團隊的意願來看,其設計目標應該還是完整的圖形操作系統。

技術分享
谷歌 Fuchsia 系統界面截圖

那麽 Fuchsia 的誕生是不是真為了取代基於 Linux 的 Android?許多人對大數據和復雜應用的理解可能是超算暴力運算任務或電信機房的服務器,因此誤認為小型化的微內核和實時系統對於普通用戶應用而言更有優勢。但事實上用戶日常的遊戲娛樂、瀏覽網頁看視頻等應用對於目前使用微內核和實時系統的單一個體硬件來說都是非常巨大的處理器運算和數據負擔 [不信打開微信支付寶客戶端試試]。雖然 Android 的很多缺點是由於 Linux 內核導致,但更多的是軟件開發者不註重效率地過度開發和功能堆砌,或谷歌在開發 Android 組件時技術水平有限造成的 [類似 Skia GPU 的負優化],改用微內核和實時系統設計未必能顯著提升這類手機應用環境下的性能和效率。

技術分享
谷歌 Fuchsia 系統源代碼開發語言構成

另外,從 Fuchsia 的開發語言構成來看,它采用了 C、C++甚至是 Dust、Go、Python 等編程語言,但並沒有任何 Java 虛擬機、運行庫的兼容和支持跡象,肯定是無法正常安裝和運行 Android 應用的 [倒是包含了一個 qemu 操作系統虛擬機]。至少目前來看,兼容和取代 Android 也只是一些人的願景,或者說腦補而已。這就好比微軟打算推出一款完全不支持 Visual C++程序的桌面操作系統以取代現在的 Windows,只會逼著客戶和開發者造反。當然也不能完全排除谷歌真有取代 Android 的打算。至於 MR 應用,那只是一種特定應用環境,並不太需要開發一套新的操作系統來解決應用層的問題。

操作系統是最復雜軟件工程之一,往往需要花費頂級序員們數年甚至數十年的精力進行開發和完善,微機史上出曇花一現操作系統不計其數,絕大多數並不會被人所銘記。也有類似 FirefoxOS 等試圖以「自主操作系統」的方式吸引市場和消費者,但失敗者居多,也正因為操作系統已經變得越來越復雜,哪怕是利用現成的開放源代碼改造也很難在技術上做好並在市場上實現彎道超車。而目前 Fuchsia 的狀態也只是一個十幾人的小團隊項目,有很強的試驗性質,真要做一個完全取代 Android 的操作系統,肯定需要更大的開發團隊規模,或許三五年以後,谷歌開發新系統的真正目的和意義才會變得明顯

取代Android?聊聊谷歌的Fuchsia新操作系統