計算機與汽車都很多相似的地方,消費者無需懂得底層的紛繁複雜,隻要它能開啟并使用就行了——android、windows、os x、以及linux,也都是如此。當然,在開發出來之後,它們仍需經過多年的磨砺,才會變得更加成熟。不過google正在神秘開發的、名叫“fuchsia”的新系統,卻不是這麼一回事。

外媒android authority在幾天前撰寫了一篇介紹fuchsia的文章,其中包含了一個指向編譯指南的連結,感興趣的網友可以到那裡檢視如何建構一個可啟動的系統。
打造fuchsia的最簡單的方法,就是使用基于64位英特爾平台的ubuntu linux機器(當然也支援在os x和debian等其它linux發行版上編譯)。
如果你對linux不熟悉,接觸指令行的技能也相對有限,那麼這份工作可能并不是很适合。目前fuchsia主要由兩大部分組成——magenta核心,以及工具組、庫、程式等。
magenta是個小核心(lk),是以fuchsia也是個功能相對有限的小系統。其主要面向嵌入式裝置和bootloaders,支援連接配接諸多外設的驅動、還有一個“使用者模式”。
要建構fuchsia,你需要注意兩個方面。首先是打造在使用者空間運作所需的工具和庫,包括一個名叫“mxsh”的小型shell程式;其次是建構lk/magenta。
搞定了上述部分之後,你就可以在一個檔案系統上啟動magenta,然後用上fuchsia的可執行使用者空間。
想要運作fuchsia,最簡單的方法是使用熱門開源機器模拟器“qemu”。事實上,fuchsia的source tree中就已經包含了一個qemu副本。
當你啟動fuchsia的時候,可以看到很多核心級的調試資訊,告訴你與系統啟動相關的各種細節 —— 第一句話是“welcome to lk/mp”,然後是初始化各個子系統(如線程/計時器)。
再接着是cpu檢測、計劃任務、裝置管理器、以及網絡元件部分。引導完成之後,你可以看到一個名叫mxsh的簡單shell程式。
mxsh自帶了一些指令,包括cd(進出目錄)、cp(複制)、echo(列印變量或字元串)、ls(顯示目錄下的檔案)和rm(删除檔案或目錄)。
如果鍵入了非shell自帶的指令,那麼它會試圖運作 /boot/bin/ 路徑下的同名程式。該路徑下包含了許多不同的可執行檔案,大多面向fuchsia的測試和進一步開發。
以“thread-depth-test”為例,它主要用來測試fuchsia的現成建立能力。此外還有一些簡單的可執行檔案,比如 fortune 和 cowsay 。
當然,fuchsia最重要的是支援dart。作為google自家的腳本語言,其最初意在取代javascript)。但随着不斷的發展,dart已經是一款成熟的解釋語言(google甚至将它用到了adwords系統中)。
dart有兩種工作方式,要麼編譯為javascript(然後通過一個javascript解釋器來運作)、要麼直接通過單獨的dart vm來“解釋”(fuchsia用的就是後者)。
要在fuchsia上測試dart,隻需執行 /boot/apps 路徑下的 “hello_fuchsia.dart”—— 輸入“dart /boot/apps/hello_fuchsia.dart”即可。(隻會在控制台上顯示hello,fuchsia!)
看到“hello, fuchsia!”,意味着fuchsia已能夠運作複雜的解釋環境和運作腳本,如程序管理、線程管理、記憶體管理、檔案i/o等。(這肯定讓很多人想到了linux pre v1.0釋出的時候)
fuchsia os将讓dart發揮重要的作用,因為目前版本并未包含c編譯器和其它進階語言(比如java)。
鑒于google已在dart上投入了不少,這可能意味着該公司正在打造一款運作fuchsia的裝置、且會通過dart進行程式設計。
當然,我們知道fuchsia并不面向那些隻有幾kb記憶體的嵌入式裝置。這可能是一款虛拟現實裝置、家庭自動化産品、或者可以通路巨大的基礎設施的ai智能裝置。
有觀點認為,fuchsia可能是一款欲與windows或os x展開競争的桌面作業系統,但在小編看來是有些荒謬的,畢竟已有android和chrome os在前。