雷鋒網(wǎng)按:本文作者何楚,開源軟硬件愛好者,Linux重度用戶,工程師、分析師。雷鋒網(wǎng)獨(dú)家文章。
近日,據(jù)外媒報(bào)道,Google 目前正在致力于開發(fā)一款新的開源操作系統(tǒng)—— Fuchsia,使用不同的內(nèi)核全新編寫,支持 PC、手機(jī)以及其他智能設(shè)備。業(yè)界的聲音普遍認(rèn)為:Fuchsia 的目的就是打通PC和手機(jī),可能會(huì)是谷歌未來 IoT 的融合操作系統(tǒng),甚至有聲音說是為了代替 Android 和 Chrome OS 而研發(fā)的下一代操作系統(tǒng)。
根據(jù)網(wǎng)絡(luò)信息:它使用的不是 Linux 內(nèi)核而是叫 Magenta 的新內(nèi)核;它的UI層使用的是 Dart 語言開發(fā)的Flutter;渲染器是Escher;應(yīng)用程序框架Mojo。除此之外沒有太多對這個(gè)項(xiàng)目細(xì)節(jié)的說明。創(chuàng)始人在 irc 上被問道:“為啥沒個(gè)文檔說明也不宣布一下,就把它開源了?”,回答:“(我們)決定把它開源,而且覺得應(yīng)從項(xiàng)目初期開始(因此一切都不完善,也因此沒有對外宣布)”。
所以要了解這個(gè)項(xiàng)目的具體情況,比較好的方法就是翻文檔和代碼。
| Fuchsia 會(huì)是什么樣子?
官網(wǎng)的文檔資料很少,筆者把能找到的都翻出來過了一遍,嘗試把 Fuchsia 運(yùn)行起來。
前面所說的 Magenta,是一個(gè)微內(nèi)核和一系列用戶空間的服務(wù)、驅(qū)動(dòng)的組合。目前它已經(jīng)能夠在虛擬機(jī)、某幾款NUC小電腦和某款筆記本上啟動(dòng)運(yùn)行。在虛擬機(jī)里面運(yùn)行后就是一個(gè)字符終端,執(zhí)行一個(gè)叫 mxsh 的 shell,另外還有少量的基本工具和測試程序集 。
只有 Magenate 內(nèi)核的 Fuchsia 系統(tǒng),在虛擬機(jī)運(yùn)行起來是這個(gè)樣子:
圖:虛擬機(jī)內(nèi)跑起來的 magenta 內(nèi)核
看起來一點(diǎn)都不酷,對不對?!因?yàn)檫@個(gè)基本系統(tǒng)沒有圖形用戶界面(GUI)部分。繼續(xù)閱讀 Fuchsia 編譯文檔,經(jīng)過長時(shí)間的下載、編譯、等待和嘗試,筆者也沒有能成功見到一個(gè)在 magenta 內(nèi)核上運(yùn)行的 GUI 程序。再仔細(xì)檢查源碼和文檔才發(fā)現(xiàn),UI 部分現(xiàn)在還沒有被合并入項(xiàng)目。
好吧,資料說“它的UI層使用的是 Dart 語言開發(fā)的 Flutter;渲染器是Escher;應(yīng)用程序框架Mojo”。那我們試試單獨(dú)編譯跨平臺的 Flutter,看看用戶界面會(huì)是啥樣。其他如內(nèi)核、開發(fā)語言、基礎(chǔ)框架等,普通用戶是感知不到的——還是留給工程師們關(guān)注吧。
Flutter 是可以運(yùn)行在 Android 和 iOS 上的用戶界面開發(fā)庫,從它的源代碼提交和bug跟蹤日志中的信息看,目前它的引擎還不能運(yùn)行在 Fuchsia 上,不過已經(jīng)很接近可以工作。Flutter 官網(wǎng)聲稱自己還是一個(gè)早期階段的開源項(xiàng)目,經(jīng)筆者檢驗(yàn)雖然是早期項(xiàng)目,但是在 Android 手機(jī)上運(yùn)行起來演示程序還是很容易的。所以,一起圍觀下 —— “未來” 操作系統(tǒng)上的程序可能會(huì)是什么樣子(請忽略Android自帶黑邊和某運(yùn)營商標(biāo)志):
圖:跑在 Android 手機(jī)上的 Flutter Gallery 演示程序
Flutter采用 Materal Design 設(shè)計(jì)語言(規(guī)范),該規(guī)范定義了用戶界面上的元素的用途、外觀、展現(xiàn)形式以及形態(tài)變化的規(guī)范。
從用戶可見的角度來看,未來 Fuchsia 操作系統(tǒng)內(nèi)運(yùn)行的程序,其中的按鈕,對話框,圖片框等等界面組件,基本就應(yīng)該跟上面圖片中差不多——當(dāng)然未來也可能會(huì)改變——而那些科幻電影中炫酷亮眼的3D特效、隔空指點(diǎn)、虛擬(增強(qiáng))現(xiàn)實(shí)畫面,暫時(shí)還不能從演示程序中看到。
嗯,目前來看 Fuchsia 上的 App 的界面,大概就是這個(gè)感覺。
| 插播,扒一下 Fuchsia 開發(fā)者
Fuchsia 項(xiàng)目的知名參與者包括 Travis Geiselbrecht 和 Brian Swetland。
早在久遠(yuǎn)的上個(gè)世紀(jì)九十時(shí)代中期,當(dāng)時(shí)的蘋果公司因自家的操作系統(tǒng)無法及時(shí)推出,正尋找替代品。當(dāng)時(shí)有兩個(gè)理想的候選產(chǎn)品分別是 Be 公司的多媒體操作系統(tǒng)BeOS,以及被蘋果公司掃地出門的喬布斯開辦的 NeXT 公司的產(chǎn)品 NeXTSTEP。后來由于 Be 公司要價(jià)太高等原因,蘋果公司收購了NeXT公司重新獲得喬布斯繼而研發(fā)出后來大放異彩的 OSX,而 Be 公司則由于經(jīng)營不善在2001年黯然被Palm公司收購。
能被蘋果公司列為收購目標(biāo)的 BeOS 實(shí)力自然不弱,而上面這兩位小哥,就曾在 Be 公司做操作系統(tǒng)開發(fā)。由于 BeOS 在當(dāng)時(shí)來說設(shè)計(jì)非常先進(jìn),公司關(guān)門后很多工程師和愛好者覺得可惜,所以繼承BeOS的設(shè)計(jì)重新實(shí)現(xiàn)了一個(gè)開源系統(tǒng)名字叫 Haiku,Haiku 使用的內(nèi)核叫做 NewOS。自然地 —— NewOS 的發(fā)起人和主力開發(fā)就是這倆哥們。
可能倆人對極度精簡的產(chǎn)品比較偏愛,又或者是覺得 NewOS 內(nèi)核的設(shè)計(jì)還太過厚重,總之,2008 年倆人又針對嵌入式設(shè)備設(shè)計(jì)了一個(gè)極其輕巧的內(nèi)核 littlekernel(簡稱:lk)。
一晃快20年過去,隨著所供職公司的關(guān)停并轉(zhuǎn),他們又分別在Danger、Palm、Android、Apple、Google等巨頭公司工作過。Brian Swetland 最近的一份工作是在谷歌任高級軟件工程師,負(fù)責(zé)管理 Linux 內(nèi)核開發(fā)相關(guān)事務(wù)。幾天前,他在 github 上公布了 Fuchsia,用到的內(nèi)核叫做 Magenta,正是基于他們的 lk 內(nèi)核項(xiàng)目擴(kuò)展功能而來。
可以看出來,項(xiàng)目負(fù)責(zé)人絕對是經(jīng)驗(yàn)豐富的老司機(jī)了。
| Fuchsia 操作系統(tǒng)的特點(diǎn)
所以,現(xiàn)階段 Fuchsia操作系統(tǒng)的基本情況是:
內(nèi)核:Magenta,有可以在特定設(shè)備運(yùn)行的早期版本,框架設(shè)計(jì)、核心功能、相關(guān)工具鏈較完善。如果需要支持新的(外圍)設(shè)備,還有大量驅(qū)動(dòng)需要移植。
UI層:Flutter,組件庫已經(jīng)基本完善,寫一些簡單程序沒有障礙,暫時(shí)還無法在 Fuchsia 運(yùn)行。官方自稱屬于早期階段的版本,實(shí)際也是。另外目前沒有OpenGL ES 方面 3D相關(guān)的支持,官方承諾未來會(huì)公開自己的優(yōu)化版 3D編程接口。(所以可能也是暫時(shí)沒有炫酷亮閃未來界面的原因)
渲染引擎:Escher,資料較少不了解,不過應(yīng)該在渲染速度和效果上有非常突出的優(yōu)勢。
主力編程語言:Dart,面向?qū)ο蟮目缙脚_語言,相關(guān)的庫已經(jīng)比較完善且是 Flutter 的開發(fā)語言。以后為 Fuchsia 開發(fā)App主要使用 Dart語言。
如果需要了解現(xiàn)在這個(gè)項(xiàng)目各個(gè)部件所處階段以及項(xiàng)目上資源投入的情況,也許下面的圖能有個(gè)簡單說明。圖中列出了最近一年以內(nèi),幾個(gè)項(xiàng)目源代碼每周被提交的數(shù)據(jù)(代表活躍情況)。左邊縱坐標(biāo)是被提交的次數(shù),每個(gè)項(xiàng)目的橫坐標(biāo)是最近一年周期。
圖:項(xiàng)目活躍度圖
圖中標(biāo)明了重要項(xiàng)目名字以及目前項(xiàng)目的貢獻(xiàn)人數(shù)。
可以看到參與人數(shù)多代碼提交比較活躍的,是內(nèi)核 Magenta 和圖形界面層 Flutter 兩個(gè)項(xiàng)目。Flutter 項(xiàng)目比較特殊,它其實(shí)很早就啟動(dòng)了,一直致力于為 Android/iOS 移動(dòng)設(shè)備提供編碼統(tǒng)一的開發(fā)環(huán)境。除了 Flutter 之外,其他所有項(xiàng)目大概都是最近兩個(gè)月內(nèi)被啟動(dòng)的。其中目前最活躍的是操作系統(tǒng)內(nèi)核部分,22 名貢獻(xiàn)者中可以看到不少 Google, Chromium 官方成員在提交代碼。內(nèi)核開發(fā)極度需要技術(shù)和經(jīng)驗(yàn),也不是勞動(dòng)力密集型工種,幾名核心工程師已經(jīng)足夠,由此可見目前谷歌對內(nèi)核項(xiàng)目的干勁還是比較足的,只是其他配套項(xiàng)目關(guān)注的人數(shù)就稍微少了點(diǎn)。
圖上已經(jīng)很明顯了,總的來說就是 Fuchsia 操作系統(tǒng)現(xiàn)在還在很早期的的階段,構(gòu)架已經(jīng)設(shè)計(jì)好,正一步步完善內(nèi)容。
從搭建的框架可以看出,其特點(diǎn)基本上是其所選取組件的優(yōu)點(diǎn)的組合,比較有代表性的是:
適合嵌入式設(shè)備和高性能設(shè)備:magenta內(nèi)核的基礎(chǔ)lk就是一個(gè)嵌入式系統(tǒng)的內(nèi)核,它的代碼非常的簡潔,適合移植到不同的設(shè)備上。可以想象到的目標(biāo)設(shè)備是:物聯(lián)網(wǎng)、移動(dòng)手持設(shè)備、可穿戴設(shè)備等。
低延遲、高效率:在 Magenta、Escher、Flutter 的項(xiàng)目介紹中都可以看到“實(shí)時(shí)”、"高效”、“低延遲”這幾個(gè)關(guān)鍵字,那么可以預(yù)見 Fuchsia 的目標(biāo)也是實(shí)現(xiàn)一個(gè)實(shí)時(shí)性非常高的操作系統(tǒng)。低延遲有什么用呢,想象一下VR眼鏡上看虛擬現(xiàn)實(shí)的時(shí)候,畫面沒有延遲的驚艷爽快感。所以低延遲對這個(gè)操作系統(tǒng)一個(gè)非常重要的考慮指標(biāo),也是核心優(yōu)點(diǎn)之一。順便提一下,我們普通人用到的 Windows,Linux,Android 都不是實(shí)時(shí)操作系統(tǒng)。OSX, iOS的延遲都比較低,但是一般也沒有把他們劃為實(shí)時(shí)操作系統(tǒng)。
高級編程語言:Dart 的目標(biāo)是設(shè)計(jì)一個(gè)隨處部署、接口穩(wěn)定、基礎(chǔ)庫完善的開發(fā)語言。用在 Fuchsia 可以看出來要擺脫掉 Java 語言的意圖比較明顯,另外它也是一種需要VM的語言。不過Flutter 的官方資料顯示:經(jīng)過對比測試,Dart 的在執(zhí)行性能、開發(fā)效率、面向?qū)ο?、快速?nèi)存分配(回收)上的得分都非常高,因此才會(huì)被 Flutter 選為開發(fā)語言。
統(tǒng)一的UI體驗(yàn):由于采用了 Matrial Design 設(shè)計(jì)語言,所以在 Fuchsia 上運(yùn)行的程序理論上具有統(tǒng)一的UI體驗(yàn)。
沒有歷史包袱:完全從頭設(shè)計(jì)的系統(tǒng),不會(huì)有為了兼容考慮的歷史包袱——比如 Java 虛擬機(jī)的慢速,又比如 Android 較慢的渲染速度。因此也可以把體積做的很小,塞到存儲(chǔ)容量很小的設(shè)備中。
| Fuchsia 會(huì)融合PC和手機(jī),取代 Android、Chrome OS 么?
網(wǎng)上提到 Fuchsia 取代 Android、Chrome OS,又或者 Fuchsia 跨平臺融合,筆者覺得可能性不是很大。且不說 Fuchsia 連是否會(huì)做出來最終發(fā)布都不確定,假設(shè)這個(gè)操作系統(tǒng)真的發(fā)布了,想代替 Androd 和 Chrome OS,或者融合現(xiàn)有市場上的應(yīng)用形態(tài),都會(huì)非常難。
在一個(gè)存量市場上,任何一個(gè)全新的產(chǎn)品想替代舊的產(chǎn)品,必須要考慮兩個(gè)最大的阻礙:1、用戶習(xí)慣;2、生態(tài)環(huán)境。
Android 系統(tǒng)海量的用戶養(yǎng)成的使用習(xí)慣要想被 Fuchsia 替代,除非 Fuchsia 在兼容 Android 上做得非常好,否則用戶很難會(huì)使用一個(gè)不熟悉的新系統(tǒng)替換本來用著好好的老系統(tǒng)。另外Android 的上下游生態(tài)環(huán)境從開發(fā)語言、相關(guān)資料資源、從業(yè)人員數(shù)量、軟件開發(fā)商、設(shè)備廠商,到最終作出的軟硬件產(chǎn)品,這個(gè)生態(tài)圈內(nèi)的資源數(shù)量都是巨大的。生態(tài)圈會(huì)自動(dòng)將相關(guān)資源繼續(xù)留在原有陣營,很難被攻破。
關(guān)于生態(tài)圈最好的例子就是想與 Android/iOS 競爭的 Windows Phone——它已經(jīng)從我們生活中消失了。
既然在存量市場上難以成功,全新開發(fā)的 Fuchsia 的目標(biāo)一定是新興市場 —— 一種 Android 和 Chrome OS 等現(xiàn)有操作系統(tǒng)無法適應(yīng),而且應(yīng)用形態(tài)又不一樣的——未來市場。
網(wǎng)上的猜測都說得比較清楚了,這個(gè)市場可能是:物聯(lián)網(wǎng)、虛擬現(xiàn)實(shí)、增強(qiáng)現(xiàn)實(shí)、可穿戴等。這些領(lǐng)域還沒有成為標(biāo)準(zhǔn)的壟斷者,現(xiàn)有的 Android,Chrome OS 等操作系統(tǒng)又不太適合這些領(lǐng)域的應(yīng)用形態(tài)。而未來這幾個(gè)領(lǐng)域增長的想象空間巨大,值得投入。
回頭看 Fuchsia 的特點(diǎn):嵌入式、低延遲、高性能、一致性,正是為了這些產(chǎn)品領(lǐng)域而設(shè)計(jì)。
所以,操作系統(tǒng)會(huì)融合么?Fuchsia會(huì)取代其他么?我認(rèn)為非常長一段時(shí)間內(nèi)都不會(huì)。
注1:本文內(nèi)容從 Haiku 中文社區(qū)負(fù)責(zé)人 kurain 處獲得諸多有價(jià)值的史料信息。kurain 是 Haiku 官方國際化項(xiàng)目中的 Chinese Language Manager,幾乎獨(dú)自中文化翻譯了所有的 Haiku 官方文檔和開發(fā)手冊。同時(shí) kurain 也是一名軟硬件極客,他的 github 賬號是 haiku-cn。在此對 kurain 表示感謝。
注2:本文行文倉促,相關(guān)文檔資料未能深入閱讀理解,如有錯(cuò)誤敬請指正!非常感謝!
雷鋒網(wǎng)注:轉(zhuǎn)載請聯(lián)系我們授權(quán),并保留出處和作者,不得刪減內(nèi)容。
聯(lián)系客服