科技報報/谷歌為何從頭開發新作業系統Fuchsia?

Google。

一群Google人近日做了件奇怪的事情:他們悄悄披露了一套新的作業系統,從理論上來說,這套系統跟Google自己的Android OS是有競爭關係的。

根據驅動之家報導,目前正在研發中的這套開源作業系統代號為Fuchsia,可運行在一切東西上,下至輕量的單用途的設備(比如ATM和GPS單元),上至桌面電腦都可以支持。但跟Android不一樣的是,Fuchsia並不是基於Linux,也不是衍生自任何構成個人計算和通信基礎的其他軟體。相反,這是一次從零開始的嘗試。

Fuchsia還處在早期研發階段,至於這個系統打算怎麼用,Google還沒有放出任何重大公告,這只是一次實驗的可能性也是存在的。儘管如此,Google仍然有大量理由來重置幾十年的軟體史。

執拗的內核

這個東西跟你的手機、平板和筆記型都有關,但你可能還意識不到:它們大多數採用的軟體『內核』都相當老。Android使用的Linux內核,是在1991年開始研發的。Mac OS X、iOS等蘋果平台是以Unix為基礎的,後者源自1969年的貝爾實驗室。Windows電腦基於的Windows NT內核要追溯回1993年。

內核的目的是管理作業系統的最底層。它處理鍵盤等硬體設備的請求,進行任務調度,並管理文件和記憶體。為此,它要對作業系統的紛繁複雜之處進行抽象,而這是有幫助的,比方說可以讓開發者不必知道具體印表機型號的情況下進行列印。

對於一個癡迷於最新技術的行業來說,像Unix、Linux以及Windows NT等老內核的彈性似乎有點矛盾。但行業分析師Horace Dediu認為,從最底層水準來看,計算基本上跟幾十年前是一樣的。比方說,今天的Windows電腦使用的晶片就是第一款IBM PC的英特爾處理器的直接後代。從這個意義上來說,內核只不過是件商品罷了。

『我們仍然使用一模一樣的架構,仍然使用一模一樣的計算概念——寄存器、門電路、電晶體——出於這個原因,並沒有做一個更好的內核的必要,』Dediu說:『內核的問題已經解決了。』

我們大概也這麼想吧。這段時間以來我們把傳感器和計算能力打包進更多的東西裡面,比方說,把日常家庭變成了智慧家庭,並且通常把一切都連接得更加緊密(行話叫做物聯網)。Fuchsia背後的想法也許是認為,像Linux那樣老化的內核已經不足以應對這波新設備了。同樣,創造者也在替現代設想一個新的內核。(內核本身叫做Magenta,基於Google最近的另一個實驗專案LittleKernel)

Zach Supalla的公司Particle為物聯網提供硬體工具包和開發者工具。他指出,對於這些小規模計算設備來說,Linux存在若干問題。

一是Linux對於這類應用來說太大了。即便Linux內核是模組化的,能夠讓開發者剔除不必要的部分,但最終仍會占據好幾兆的空間。這意味著更難以把Linux內核塞進廉價的微控制器裡面,從而讓處理器成為必須,而後者往往大得多、貴得多且更耗能。

『全新的供應鏈這道鴻溝還沒有跨越,這對製造提出了更高的品質要求,而且成本還得低很多,』 Supalla說。

另一個問題是Linux並不是『即時』的。跟ATM、醫療產品等單用途設備採用的嵌入式系統不同,Linux利用調度機制來處理大批任務。儘管這可以極大發揮通用電腦的性能,但也會導致需要精確定時的設備,比如說3D印表機或者汽車內部的許多電動控制系統出現問題。

『要想確保這玩意兒在確切的微秒時刻運行,你不會希望有個進程在那裡決定什麼時候跑什麼東西,』 Supalla說。

Supalla說,對於物聯網應用來說,像Linux這樣的通用作業系統的安全性可能也會更低。其代碼量更大,這意味著可能存在更多的安全性漏洞需要處理或者透過防火牆或VPN鎖定。

『運行即時作業系統或者嵌入式系統的價值之一在於,這些系統無需鎖定任何東西,』 Supalla說:『它不需要運行一批你需要考慮的東西。除了你寫的軟體以外它不會運行任何東西。』

Supalla的推斷是,Fuchsia是集兩家之大成的一次嘗試,在讓應用和硬體透過作業系統進行通信方面Linux仍然處理得更好,而當今的一些嵌入式作業系統,比如FreeRTOS和ThreadX就沒有前面提到的Linux的那些問題。

『他們可能既想要有Linux那種水準的抽象,又想獲得RTOS的那種性能、小規模以及即時性,』 Supalla說:『這些都是非常有價值的東西,而且我認為從理論上來說是可以實現的。只是之前沒做過而已。』

縱向擴展

如果Fuschia的目標只是小規模設備的話,可能就沒那麼值得關注了。但是Fuschia的開發者野心要比這大,他們宣稱該作業系統可擴展到智慧手機和桌面電腦上。理論上,這會使得Fuschia成為Google的Android和Chrome OS的直接替代方案。

為什麼要這麼做呢?據Supalla說,可能從頭開始能夠做出一個更高效的作業系統,這反過來又能支持更高效的伺服器——對此Google一直都很感興趣。他還指出桌面相容性還可以模擬一次運行大量更小的設備,從而確保規模化運行。

『讓一千台伺服器每次都同時跑同樣的軟體應用,要比折騰一百萬晶片跑起來更容易,所以這對測試更好。』 Supalla說。

Dediu的理論不一樣:一套新的作業系統可以讓Google遠離Android遭遇的智慧財產權授權問題。『因為這是一張白紙式的設計,不會碰到有人去找IP(智慧財產權)方面的麻煩,』他說:『這也許是一個合理的假設,因為Linux的確有一些棘手的IP問題。』

要記住的是,這也可能就是學術性的。Fuchsia的開發者說他們會完整記錄並最終發布這套作業系統,但要走的路還很長,而且還不清楚Google會不會給予其充分的支持。Android生態體系已經很龐大(並且正在跟Chromebooks進行合併)。與此同時,Google還在擴展Android的某個版本到物聯網設備,這個帶嵌入式特性的版本叫做Brillo——Linux的缺點見鬼去吧,它正在成為一個成熟的平台,而不僅僅是一個簡單的作業系統。

還有,Unix開始只是一個志工專案,並未得到貝爾實驗室的承認;Linux Torvalds做Linux也只是自己的愛好。也許幾十年後,我們會討論起 Fuchsia 當初在 Google 內部不太被重視的事情。