谷歌 Fuchsia系統(tǒng)界面截圖
谷歌 Fuchsia系統(tǒng)界面截圖
最近,一款由谷歌開發(fā),被稱為Fuchsia的操作系統(tǒng)在網(wǎng)上曝光。 Fuchsia是在去年8月就進入了GitHub項目,但谷歌對此非常低調(diào),像操作系統(tǒng)這樣的重量級項目,卻沒有官方的宣傳和說明介紹。網(wǎng)上的介紹稱這個操作系統(tǒng)采用了代號為Magenta[一種給給的洋紅色]的微內(nèi)核設(shè)計[MicroKernel],是一種實時操作系統(tǒng)[real-time OS]。在谷歌官方介紹出現(xiàn)前,網(wǎng)上已經(jīng)有了大量的“解毒”:例如說Fuchsia是用來取代Android高性能操作系統(tǒng),兼容Android應(yīng)用;也有說是針對物聯(lián)網(wǎng)開發(fā)的一種實時操作系統(tǒng);甚至有說是為了混合現(xiàn)實[MR]設(shè)計的操作系統(tǒng),這眾說紛紜下,哪個比較有道理?
微內(nèi)核和實時系統(tǒng)
操作系統(tǒng)架構(gòu)分類[集成型-微內(nèi)核-混合型] - 圖片來自維基百科
微內(nèi)核在計算機術(shù)語中,特指的是操作系統(tǒng)的內(nèi)核小型化,即操作系統(tǒng)核心部分架構(gòu)只有線程管理、內(nèi)存管理和進程間通訊等最基本的系統(tǒng)調(diào)用功能,即使是系統(tǒng)服務(wù)、硬件驅(qū)動都放在了用戶空間應(yīng)用。不同應(yīng)用間通過進程通信方式完成。微內(nèi)核是相對于Linux這種龐大的集成式核心的最大優(yōu)勢就是較好的伸縮性,其硬件驅(qū)動和系統(tǒng)服務(wù)可以按需取舍,效率高,因此微內(nèi)核設(shè)計的操作系統(tǒng)和硬件在日常生活中常見于路由器等小型設(shè)備,以及一些分工明確的分布式系統(tǒng)。但隨著硬件性能的提升,小設(shè)備的系統(tǒng)也正在變得大而全起來,以Linux、Android為基礎(chǔ)的“智能硬件”已經(jīng)廣泛普及。
Windows NT
Mac OS
在PC上運行的操作系統(tǒng)中,基于Mach的MacOS就是微內(nèi)核系統(tǒng)的典型,雖然WindowsNT和OSX都曾經(jīng)自我標榜為微內(nèi)核操作系統(tǒng),但由于微內(nèi)核系統(tǒng)中用戶訪問程序、硬件等行為都需要通過通信而不是程序函數(shù)調(diào)用完成,因此在大型復(fù)雜的應(yīng)用下性能和效率都非常捉急。現(xiàn)在的Windows和OSX系統(tǒng)都將大量的系統(tǒng)服務(wù)和硬件驅(qū)動放入系統(tǒng)核心部分,其實更為接近Linux這樣的集成式核心設(shè)計,有時會把這種集成式內(nèi)核和微內(nèi)核設(shè)計的結(jié)合稱為混合式核心設(shè)計。
而實時系統(tǒng)是一種以實時[或盡快]并按時完成需求任務(wù)的操作系統(tǒng)類型,比較著名的有WindowsCE、VxWorks等。這類系統(tǒng)并不追求大數(shù)據(jù)吞吐量,而是要求有較快的響應(yīng)速度和靈活的任務(wù)執(zhí)行能力。
Fuchsia能做什么?
Google Fuchia Logo - 圖片來自互聯(lián)網(wǎng)
目前比較受歡迎的微內(nèi)核+實時系統(tǒng)有開源的FreeRTOS等,它沒有圖形操作界面,主要用于實現(xiàn)類似無線路由器等功能比較單一的設(shè)備系統(tǒng)。而Fuchsia已經(jīng)被歸類為微內(nèi)核+實時系統(tǒng),是不是真的奔著物聯(lián)網(wǎng)操作系統(tǒng)而去的?但Fuchsia出名就是因為在油管上有人演示了在手機上運行Fuchsia圖形界面的片段而開始火起來的,當然目前其圖形界面還處于初始演示階段,并沒有具體的功能,但可以看出人們還是希望更愿意接觸的是一個有圖形界面的全能型操作系統(tǒng),而不是早期的純命令行模式界面,然而對于大多數(shù)物聯(lián)網(wǎng)設(shè)備來說,UI只是個累贅。
但以此要推斷出Fuchsia是要做物聯(lián)網(wǎng)操作系統(tǒng)還是取代Android還為時過早,從硬件支持平臺來看,F(xiàn)uchsia主要支持的是ARM64和X86-64兩種高性能運算處理器類型,這類高功耗處理器顯然不適合用在追求低功耗和小型化的物聯(lián)網(wǎng)平臺,至少從Fuchsia開發(fā)者團隊的意愿來看,其設(shè)計目標應(yīng)該還是完整的圖形操作系統(tǒng)。
谷歌 Fuchsia系統(tǒng)界面截圖
那么Fuchsia的誕生是不是真為了取代基于Linux的Android?許多人對大數(shù)據(jù)和復(fù)雜應(yīng)用的理解可能是超算暴力運算任務(wù)或電信機房的服務(wù)器,因此誤認為小型化的微內(nèi)核和實時系統(tǒng)對于普通用戶應(yīng)用而言更有優(yōu)勢。但事實上用戶日常的游戲娛樂、瀏覽網(wǎng)頁看視頻等應(yīng)用對于目前使用微內(nèi)核和實時系統(tǒng)的單一個體硬件來說都是非常巨大的處理器運算和數(shù)據(jù)負擔[不信打開微信支付寶客戶端試試]。雖然Android的很多缺點是由于Linux內(nèi)核導(dǎo)致,但更多的是軟件開發(fā)者不注重效率地過度開發(fā)和功能堆砌,或谷歌在開發(fā)Android組件時技術(shù)水平有限造成的[類似Skia GPU的負優(yōu)化],改用微內(nèi)核和實時系統(tǒng)設(shè)計未必能顯著提升這類手機應(yīng)用環(huán)境下的性能和效率。
谷歌 Fuchsia系統(tǒng)源代碼開發(fā)語言構(gòu)成
另外,從Fuchsia的開發(fā)語言構(gòu)成來看,它采用了C、C++甚至是Dust、Go、Python等編程語言,但并沒有任何Java虛擬機、運行庫的兼容和支持跡象,肯定是無法正常安裝和運行Android應(yīng)用的[倒是包含了一個qemu操作系統(tǒng)虛擬機]。至少目前來看,兼容和取代Android也只是一些人的愿景,或者說腦補而已。這就好比微軟打算推出一款完全不支持Visual C++程序的桌面操作系統(tǒng)以取代現(xiàn)在的Windows,只會逼著客戶和開發(fā)者造反。當然也不能完全排除谷歌真有取代Android的打算。至于MR應(yīng)用,那只是一種特定應(yīng)用環(huán)境,并不太需要開發(fā)一套新的操作系統(tǒng)來解決應(yīng)用層的問題。
操作系統(tǒng)是最復(fù)雜軟件工程之一,往往需要花費頂級序員們數(shù)年甚至數(shù)十年的精力進行開發(fā)和完善,微機史上出曇花一現(xiàn)操作系統(tǒng)不計其數(shù),絕大多數(shù)并不會被人所銘記。也有類似FirefoxOS等試圖以“自主操作系統(tǒng)”的方式吸引市場和消費者,但失敗者居多,也正因為操作系統(tǒng)已經(jīng)變得越來越復(fù)雜,哪怕是利用現(xiàn)成的開放源代碼改造也很難在技術(shù)上做好并在市場上實現(xiàn)彎道超車。而目前Fuchsia的狀態(tài)也只是一個十幾人的小團隊項目,有很強的試驗性質(zhì),真要做一個完全取代Android的操作系統(tǒng),肯定需要更大的開發(fā)團隊規(guī)模,或許三五年以后,谷歌開發(fā)新系統(tǒng)的真正目的和意義才會變得明顯。