Flutter 和 Fuchsia 會(huì)取代你最喜歡的操作系統(tǒng)嗎?
Fuchsia 是 Google 正在開發(fā)的一種新操作系統(tǒng)。大多數(shù)人都知道 Fuchsia 是眾所周知的 Android 操作系統(tǒng)的替代品。谷歌已經(jīng)開發(fā)并改進(jìn)了兩個(gè)操作系統(tǒng)。Chrome OS和Android。我們可以看到,這兩個(gè)操作系統(tǒng)都很穩(wěn)定,而且工作做得很好。那么,為什么谷歌要開發(fā)一個(gè)新的操作系統(tǒng)呢?Fuchsia團(tuán)隊(duì)甚至從內(nèi)核層面來構(gòu)建它。
Chrome OS是基于Linux的,另一方面,安卓也使用Linux內(nèi)核。Google顯然為Linux內(nèi)核修改維護(hù)了獨(dú)立的開發(fā)分支,因?yàn)樾枰獌?nèi)核級(jí)特性。此外,他們還經(jīng)常將新實(shí)現(xiàn)的功能回饋給原始倉庫。Linux內(nèi)核為幾乎所有的網(wǎng)絡(luò)提供動(dòng)力,而且它現(xiàn)在非常穩(wěn)定。然而,谷歌想要的幾個(gè)重要功能在Linux內(nèi)核架構(gòu)中是缺失的。根據(jù)我的觀察,Google構(gòu)建一個(gè)新的操作系統(tǒng)是由于以下原因:
- Android操作系統(tǒng)的設(shè)計(jì)并不符合谷歌的期望,Android最初有基于JIT編譯的Dalvik運(yùn)行時(shí)來執(zhí)行應(yīng)用程序。后來,他們引入了基于AOT編譯的ART。盡管如此,Android仍然需要用額外的工具從APK文件中制作支持的二進(jìn)制文件。同樣,進(jìn)一步的改進(jìn)也會(huì)使Android系統(tǒng)變得臃腫、笨拙和復(fù)雜。
- Google需要擺脫Java。Oracle的新授權(quán)模式讓Java社區(qū)不高興。谷歌有自己的編程語言Dart。
- 如果Google有一個(gè)新的操作系統(tǒng),他們對(duì)設(shè)備有更多的控制。無聲的內(nèi)核級(jí)升級(jí)不會(huì)是一個(gè)大問題。
- Linux內(nèi)核遵循的是單片機(jī)設(shè)計(jì)模式。換句話說,整個(gè)操作系統(tǒng)的核心在一個(gè)有堆疊模塊的進(jìn)程內(nèi)運(yùn)行。如果一個(gè)模塊崩潰了,整個(gè)內(nèi)核就會(huì)崩潰。
Fuchsia 有一個(gè)微內(nèi)核
如前所述,Linux 內(nèi)核是一個(gè)運(yùn)行在內(nèi)核空間上的大型進(jìn)程,因此,不可能輕松地自動(dòng)升級(jí)模塊。此外,單體內(nèi)核設(shè)計(jì)是一種舊的不太安全的方法,因?yàn)樵O(shè)備驅(qū)動(dòng)程序也在內(nèi)核空間中工作。另一方面,微內(nèi)核模式將操作系統(tǒng)的模塊分解為孤立的服務(wù),稱為服務(wù)器。每個(gè)服務(wù)器可以通過進(jìn)程間通信(IPC)通道與其他服務(wù)器進(jìn)行通信。如果一個(gè)服務(wù)器發(fā)生故障,整個(gè)微內(nèi)核不會(huì)失敗,這與單片機(jī)內(nèi)核的設(shè)計(jì)不同。
微內(nèi)核設(shè)計(jì)支持快速升級(jí),因?yàn)槊總€(gè)內(nèi)核模塊都是一個(gè)獨(dú)立的組件。微內(nèi)核方法是解決Android碎片化問題的好辦法。Android碎片化是指不同手機(jī)廠商創(chuàng)造的各種Android風(fēng)格的存在。在這種情況下,Google 無法直接為所有 Android 設(shè)備發(fā)送內(nèi)核級(jí)升級(jí)。微內(nèi)核設(shè)計(jì)解決Android碎片化問題。然而,微內(nèi)核也有幾個(gè)缺點(diǎn),主要問題是微內(nèi)核的執(zhí)行速度比單片內(nèi)核慢。這種緩慢是由于客戶端-服務(wù)器架構(gòu)的通信渠道造成的。由于這個(gè)問題,Windows 和 XNU (Mac) 內(nèi)核遵循單片和微模式,稱為混合模式。
或許,Google是因?yàn)楝F(xiàn)代操作系統(tǒng)的需要而選擇了微內(nèi)核模式。例如,加強(qiáng)安全性、實(shí)時(shí)內(nèi)核更新和穩(wěn)定性。而且,它們可能具有不同的概念來優(yōu)化微內(nèi)核實(shí)現(xiàn)的通信方法。
從頭開始學(xué)習(xí)
毫無疑問,Google擁有世界上最優(yōu)秀的工程師,他們與每個(gè)流行的操作系統(tǒng)和每個(gè)操作系統(tǒng) API 密切合作。因此,F(xiàn)uchsia 將是世界上最優(yōu)秀的頭腦和他們經(jīng)驗(yàn)的結(jié)果。請(qǐng)記住,他們?yōu)楦咝阅苡?jì)算場景制作了 Golang。與任何其他現(xiàn)有語言不同,Golang 提供了一種具有良好性能的人性化語法。例如,C/C++ 語言具有良好的性能,但缺乏對(duì)開發(fā)人員友好的語法。另一方面,類似 Python 的語言具有開發(fā)人員友好的語法,但不會(huì)表現(xiàn)出良好的性能因素。
同樣,所有現(xiàn)有的操作系統(tǒng)都有幾個(gè)痛點(diǎn)——沒有完美的操作系統(tǒng)。 Windows 是一個(gè)被廣泛使用的操作系統(tǒng),但它確實(shí)在 Windows XP 版本之后變得臃腫。
macOS 對(duì)開發(fā)人員和用戶都有很多不必要的限制。GNU/Linux 很棒,但它是由許多開發(fā)人員構(gòu)建的不同組件的集合——沒有明確定義的標(biāo)準(zhǔn)。事實(shí)上,谷歌擁有所有這些經(jīng)驗(yàn)。因此,他們可以通過最大限度地減少現(xiàn)代操作系統(tǒng)上存在的這些問題來構(gòu)建操作系統(tǒng)。這些原因?yàn)? Fuchsia 成為有史以來最成功的操作系統(tǒng)帶來了更高的機(jī)會(huì)。
Flutter 幫助 Fuchsia 流行起來
Flutter 現(xiàn)在是一個(gè)流行的框架,率先進(jìn)入跨平臺(tái)移動(dòng)應(yīng)用開發(fā)市場。之后,它也通過進(jìn)入跨平臺(tái)的桌面應(yīng)用開發(fā)市場來警告Electron。Google表示 Flutter 也為 Fuchsia 編譯應(yīng)用程序,但我們并沒有太注意它。我的觀點(diǎn)是 Flutter 是作為 Fuchsia 的主要應(yīng)用程序開發(fā)工具包而構(gòu)建的,就像 Windows 的 .NET 框架一樣。也許,F(xiàn)lutter 團(tuán)隊(duì)最初專注于 Android 和 iOS 來解決他們當(dāng)前的移動(dòng)應(yīng)用程序開發(fā)問題。此外,針對(duì) Android 和 iOS 是接觸開發(fā)者社區(qū)的好方法——因?yàn)闆]人知道 Fuchsia 到底是什么。
當(dāng)每個(gè)人都傾向于用Flutter制作他們的應(yīng)用程序時(shí),當(dāng)Google發(fā)布Fuchsia時(shí),這些應(yīng)用程序?qū)⑴cFuchsia原生兼容。
與其他操作系統(tǒng)的競爭
顯然,F(xiàn)uchsia 將成為Google設(shè)備的默認(rèn)操作系統(tǒng):Chromebook、Google眼鏡、Pixel 和 Nest(Google的家庭自動(dòng)化產(chǎn)品)。Fuchsia 是一個(gè)像 Linux 一樣的開源產(chǎn)品,而且,它是來自世界科技巨頭的產(chǎn)品,因此,很多人會(huì)嘗試使用 Fuchsia。另一方面,Chromebook 和 Pixels 等設(shè)備可能會(huì)比 Apple 設(shè)備更受歡迎,因?yàn)?Google 設(shè)備將作為自己的操作系統(tǒng)出現(xiàn)。
然而,世界上幾乎所有的人都不是技術(shù)極客。因此,他們不會(huì)檢查為什么從高度技術(shù)角度看Fuchsia更好。Fuchsia 的成功取決于它如何解決用戶的問題。 Linux 確實(shí)比 Windows 好,但仍然有大約 87% 的人使用 Windows。原因是Windows比Linux更能解決一個(gè)典型人的問題。讓我們等待,直到Fuchsia發(fā)出一些聲音。