每日最新頭條.有趣資訊

谷歌不要Android了?新系統或將支持Java

今年年初,市場調查公司 Gartner 發布了一份調查報告,報告結果顯示當前的移動操作市場中,Android 的市場佔比為 85.9%,iOS 系統的佔比為 14%,而兩者合計佔據市場鋼彈 99.9% 的份額。反觀其他移動作業系統累計僅有 0.1% 的佔比,毫無疑問,這意味著其他小眾的作業系統在當前的大環境之下,幾乎沒有生存太空。

同時,從此前落敗的 BlackBerry OS、Symbian OS 以及 Windows Phone 等系統來看,是否真的很難再出現第三大移動作業系統了?

整體看來,說尚未落地的Fuchsia將取代 Android 還為時尚早,但是根據接連不斷的消息也不難推測出,Google 似乎正在培養繼 Android 之後的二號產品,也大有第三大作業系統之勢。

融合了 Android 和 Chrome OS 的跨設備作業系統——Fuchsia

2016 年 8 月,全球知名的開發者社區 GitHub 上悄然上出現了一名為 Fuchsia 的項目(https://github.com/fuchsia-mirror),而點開其詳情,該項目可直接鏈接到 Google 的 Git 源碼庫(https://fuchsia.googlesource.com/),就此,Fuchsia 才得以曝光。據了解,Fuchsia 作業系統並不是像 Android 和 Chrome OS 一樣使用 Linux 內核,而是使用一種名為“Magenta”的內核,Magenta 構建於“Little Kernel”(LK)之上,主要使用 C 和 C++ 語言編寫,這是一個專為嵌入式設備設計的小型內核,也是 FreeRTOS 或 ThreadX 等實時作業系統的競爭對手,不過,2017 年,“Magenta”被重新命名為“Zircon”。

之所以在新系統中放棄 Linux 內核,是因為如今的 Liunx 內核包含了 1500 萬行代碼,其中許多代碼都不是 Google 作業系統所必需的。且如此多的代碼行也代表了一個巨大的攻擊面,儘管 Linux 發行版通常被認為比 Windows 和 macOS 更安全。

新作業系統 Fuchsia 的內核Zircon雖然是在 LK(Little Kernel)基礎上建立,但是和 LK 有很大的不同。諸多,LK 是專門為具有少量 RAM 的設備而設計,而Zircon主要針對具有更多 RAM 和更高處理能力的智能手機及 PC 等設備。Zircon還支持系統進程,而 LK 則不支持。但是,Zircon進程由 LK 級構造(如線程和記憶體)組成。

與 LK 相比,Zircon還具有一流的用戶模式支持,是一個對象處理系統,並具有基於功能的安全模型。安全性應類似於 Android 的權限模型。但是,它可能更嚴格,因為新架構是從頭開始創建的,並考慮到“最小特權”安全模型。據了解,Fuchsia 作業系統將支持 32 位和 64 位 ARM 設備(包括 RaspberryPi3)以及 AMD64 架構。

此外,Fuchsia 系統最大的優勢是可以作為一款融合 Android 和 Chrome OS 的跨設備作業系統出現,即根據硬體的不同,將作業系統分成兩個單獨的用戶界面。據 9to5Google 報導,Fuchsia由兩個截然不同但相互關聯的用戶界面(UI)組成,一個以手機為中心,代號為"Armadillo"的 UI(也被認為是 Fuchsia 的系統 UI),另一個是傳統的桌面 UI,內部代號稱為"Capybara"。而該界面和系統的應用程式是用 Google 的 Flutter SDK 編寫的,這個項目可以提供跨平台即 Android 和 iOS 上運行的代碼。而 Flutter App 使用的是 Dart 語言編寫。

Fuchsia 或將支持 Java!

同時,外媒 9to5Google 在最新的報導中還表示,在 Android的 Gerrit 源代碼管理中,有人發現 Google 的提交記錄,該提交記錄顯示,Google 一直在私下處理 Fuchsia 與 Android 的 Libcore 的兼容性,他們現在正在將其公之於眾。

而 Libcore 正是 Android 使用 Java 的基礎。其中值得注意的是,Libcore 中大部分添加了對 Fuchsia 的兼容性,其被稱之為'ojluni',分別代表 OpenJDK Lang、Util、Net、IO。這些是使用開源 OpenJDK 實現 Java 的四個基礎部分。至少,這表明 Fuchsia 最終將會運行 Java 代碼。

除此之外,提交記錄本身並沒有透露任何其他有趣的細節,它只是調整了部分需要為 Fuchsia 和Zircon工作的代碼而並非針對 Linux 和 Android 做的改變。不過,在 Fuchsia 的代碼中目前也沒有相匹配的更改來表明其確切目的。

為什麽 Google 需要新的作業系統?

寫到了這裡,或許很多人還是很不解,難道僅是因為 Android 被判壟斷,Google 就要放棄世界第一大作業系統這個香餑餑?事實上,Google 弱化 Android 這個品牌也絕非一天兩天,此前 CSDN 也總結了 Google 對於 Android 的種種動作,並發出《Google 要放棄 Android 了?》的疑問,對此,有網友@xg15 表示道:

Google 目前正在維護三個不同的作業系統:Android,Chrome 作業系統和現在的 Fuchsia——過去就有很多消息謠傳他們可能會將它們統一起來。

所以我的猜測是他們要麽不再強調 Android,想要弱化之前作業系統碎片泄漏的事件影響,要麽他們真的計劃在某些時候放棄 Android 技術基礎。

而即使是弱化 Android,那為何 Google 甚至也要棄 Linux 內核去使用新的內核?對此,外媒 Tomshardware 分析其中主要原因,一共有三:

從頭開始

曾經的移動互聯網已在潛移默化中向萬物互聯時代過渡,Google 希望創建一個包羅萬象的作業系統,而這個系統需要足夠纖薄,足以安全地處理從物聯網設備到個人電腦的任何事情。簡而言之,可以把它想象成 Android(用於物聯網的移動作業系統)和 Windows(用於移動和物聯網的桌面作業系統)的更薄版本。

過去很長的一段時間內,Google 早已在構建作業系統方面積累了豐富的專業知識和專業知識,現在旨在利用所有這些知識去創建一個不受過去錯誤和遺留代碼困擾的新作業系統。這是一個全新的開始,也可以從開發現代作業系統的所有最新研究中受益。

拉開與 Java 的間隔,控制編程語言

第二點,今年 3 月,Google 和 Oracle 糾纏長達八年的“Java 侵權案”最終有了結果,令 Google 懊惱的是,美國聯邦巡回法院判其向 Oracle 賠償 88 億美元,其中主要緣由 Oracle 認為 Android 抄襲了 Java 項目的部分。

不過即使沒有訴訟,Google 也沒有蘋果公司(Objective-C 和 Swift)和微軟(C#)的語言開發自由。所以,開發新一代作業系統 Fuchsia 也是 Google 可以選擇更好控制的編程語言機會。

之前,Google 已經創建了兩種語言,Go 和 Dart。現在看來,Google 似乎選擇 Dart 作為 Fuchsia 的主要應用程式開發語言,且他們可能最終希望所有Android 開發人員轉而使用 Dart 開發應用程式。

減輕如同老系統 Android 帶來的碎片化問題

開源的 Android 不像閉源的 iOS 系統那般容易管理,Android 的更新模式對Google 而言尤其令人頭痛,Google 修複 Android 漏洞的速度幾乎無關緊要,因為手機制造商和運營商可以自行推出系統更新,這樣是常說的 Android 碎片化問題。

Chrome OS 已經逃脫了這一更新的噩夢,因為雖然它背後的核心代碼是開源(Chromium OS),但商用的 Chrome OS 本身只能由 Google 修改。這使得 Google 可以完全控制更新周期。

Fuchsia 的未來

截止目前,Google 對於其新一代作業系統 Fuchsia 的態度可謂非常的低調。那麽對於這樣的一個項目,贏面究竟有多大?

此前,Google 的 Android 工程副總裁 Dave Burke 對 Fuchsia 系統做出過解釋稱,Fuchsia 是一個早期的實驗項目,而在 Google 內部有很多這種實驗項目,由於是早期項目,因此其還存在很大的變數。

確實如此,就國內而言,至今仍未有一款真正的國產移動作業系統來與 Android 和 iOS 相抗衡,除了人才稀缺、財力消耗巨大等因素之外,重要的是系統生態問題。即使 Google 在 Fuchsia 上研發成功,倘若不能將 Android 上超過 10 億的用戶、開發商以及製造商平穩的過渡,那麽最終結局可能只會如微軟的 Windows Phone 一樣,失敗而終。

參考

https://www.tomshardware.com/news/google-fuchsia-new-operating-system,32475.html

https://9to5google.com/2018/11/09/fuchsia-friday-java-borrowing-from-android/

https://zh.wikipedia.org/zh-hans/Google_Fuchsia

微信改版了,

想快速看到CSDN的熱乎文章,

趕快把CSDN公眾號設為星標吧,

打開公眾號,點擊“設為星標”就可以啦!

獲得更多的PTT最新消息
按讚加入粉絲團