03.02 谷歌 Fuchsia OS 進入開發者測試階段,它真的會代替安卓嗎?

谷歌 Fuchsia OS 進入開發者測試階段,它真的會代替安卓嗎?

作者 | Evana Margain

譯者 | 明明如月

出品 | CSDN(ID:CSDNnews)

在過去的 8 到 10 年裡,移動市場一直被兩個我們都熟悉的系統所主導: 安卓和 iOS。我們總是認為現在瞭解的事物永遠不會結束,但是隨著科技的發展,谷歌已經不再這麼認為。自 2016 年 8 月以來,谷歌一直致力於研發全新操作系統 Fuchsia。在預想中,這個“通用”的操作系統能夠無縫運行於所有平臺,如智能設備、平板電腦和智能手機。一些人認為它可能是 Android 的終結者。

在這篇文章中,我們來深入瞭解一下這個被稱為“Fuchsia”的操作系統,並討論它是否真的能替代安卓。

谷歌 Fuchsia OS 进入开发者测试阶段,它真的会代替安卓吗?

預計已進入開發者試用階段

據外媒的最新消息,谷歌新操作系統Fuchsia OS的開發已經接近尾聲,進入開發者親自試用的階段。

據說,谷歌在軟件開發週期中會進行多輪測試,在讓普通用戶測試之前,通常會有一個開發人員親自上陣的“狗糧”測試期,也就是讓開發者親自安裝使用操作系統,通過親身感受找到系統的優點和不足。“狗糧”測試很可能是谷歌將開發產品推向公眾之前的最後一次全公司範圍的測試階段。

除了阿爾法和貝塔等正常公共測試,谷歌還會有很多內部測試,如小範圍的“魚食”測試,以及在“魚食”和“狗糧”之間的“團隊食品”測試階段,等等,過程繁複嚴苛。

這次外媒之所以聲稱Fuchsia OS已接近尾聲,就是因為他們發現在過去的一年裡,有跡象表明,至少Fuchsia OS下一代操作系統的部分功能已經經歷了魚食階段和團隊食品階段的開發測試,而在最近Fuchsia OS的一些代碼變化中,出現了“為狗糧發行版本”準備的字樣,這代表著一些開發者可能已經啟動了“狗糧測試”。

如果最終的內部測試進展順利,谷歌完全有可能提前把Fuchsia OS測試版提交給第三方開發者,進入“開發者測試階段”。

雖然近期由於新冠病毒的全球蔓延,MWC、Facebook F8開發者大會相繼取消,但是谷歌卻暫時沒有取消2020年度I/O大會的跡象。不久前,谷歌還正式放了I/O開發者大會的註冊通道,入場券的價格為1150美元,學術類通行證售價375美元。

然而,特殊情況下一切皆有變數,2020年度I/O大會能否順利舉行,以及是否會在大會上公佈Fuchsia OS開發測試版,還是要打上大大的問號。

Fuchsia OS項目的起源、發展

自從4年前,也就是2016年8月15日公佈初始版本之前,Fuchsia OS就一直籠罩在一層神秘的色彩之下,直到2019年Fuchsia OS的開發者網站Fuchsia.dev上線,Fuchsia OS的神秘面紗才被徹底揭開。

為了更好地瞭解它,下面我們來簡單回顧下Fuchsia OS的起源與發展歷程的時間軸:

  • 2016年8月,媒體報道了發佈於GitHub上的神秘源碼,顯示Google正在開發一個名為“Fuchsia”的新操作系統,雖然官方沒有正式公佈,其源碼檢查顯示其能夠跨平臺運行,包括“汽車的娛樂媒體系統和嵌入式設備,如紅綠燈、數字手錶、智能手機、平板電腦與個人電腦”。

  • 2017年5月,外媒首次發佈關於Fuchsia的新用戶界面的文章,此後多家媒體提到“Fuchsia項目”和Android似乎有密切聯繫,有人猜測Fuchsia可能是“重做”或替換Android以在某種程度上修復該平臺上的問題。

  • 2017年11月,對Swift語言提供了初始支持。

  • 2018年1月3日,Google允許開發者以Google Pixelbook為目標設備,下載Fuchsia OS進行開發與測試。

  • 2018年4月,Fuchsia的源代碼出現在AOSP的ART當中,疑似是AOSP已經開始將ART移植至Fuchsia上,但源代碼仍處於被註釋處理的狀態。

  • 2019年5月13日,在息壤開源鏡像站和重慶大學鏡像站 weerac 的努力下,Fuchsia OS 源碼國內鏡像正式上線。國內開發者們可以通過 git 方式獲得主 repo 核心代碼;以及從鏡像站獲取完整代碼,包括第三方代碼,以及單獨的 tar 包,Fuchsia 鏡像同時提供每日當天打包的源碼包。

谷歌 Fuchsia OS 进入开发者测试阶段,它真的会代替安卓吗?

圖源:Fuchsia中文社區

  • 2019年6月28日,Fuchsia OS的開發者網站Fuchsia.dev上線。

  • 2020年2月,Fuchsia OS預計已進入開發者試用階段。

Fuchsia OS和之前的操作系統有何不同?

在谷歌 Fuchsia 開發者入門指南開頭, Fuchsia這樣描述這個項目: “ Pink(粉色) + Purple(紫色) == Fuchsia (Fuchsia,一種新的操作系統)”。

Fuchsia OS開發者入門指南:

https://fuchsia.dev/fuchsia-src/getting_started。關於入門指南,參考下文詳細解釋。

乍一看,這個短語只是顏色的定義以及這個產品是一個操作系統的明確聲明。但事實並非如此。Pink 是指蘋果第一個面向對象的微內核操作系統,而 Purple 是蘋果 iPhone 的第一個代號。我的第一反應是... 為啥和蘋果糾纏不清?

微內核操作系統

首先需要注意的是,該系統與基於Linux的Android或Chrome操作系統不同,Fuchsia源於一種名為“Zircon”操作系統微內核,是支持Fuchsia的核心平臺。Fuchsia還提醒開發者,Fuchsia的構建過程將考慮進Zircon的副作用,因此,為了順利單獨使用Zircon,需要按照Zircon指南文檔的指導進行:https://fuchsia.dev/fuchsia-src/development/kernel/getting_started

內核是所有計算機的核心,是控制一切的基本程序。這裡的“微”指的是非常小規模的東西。作為微內核,Fuchsia 可以在任何設備上運行,包括傳統的電腦、手機和物聯網設備(如你的冰箱或微波爐)。

Fuchsia支持跨設備使用

考慮到上面提到的:Fuchsia 是一個微內核操作系統,我們可以設想谷歌設計它的目的是讓不同的設備使用相同操作系統。也許我們現在很少注意到,在你的手機和電腦上運行的操作系統其實是不同的。即使你有一臺 Mac 和一臺 iPhone,用戶界面可能看起來很相似,但核心也是不同的。

那麼問題來了: 跨設備使用相同的操作系統有什麼好處?答案就是如果不同設備使用的操作系統相同,你只需要開發一個應用程序即可實現跨設備使用,唯一需要改變的是用戶界面。這還需要考慮其他問題。例如,輸入設備是不一樣的,手機沒有物理鍵盤,電腦不總是支持觸摸手勢,一些電腦可能不含 GPS 芯片或加速器等。這些都是谷歌需要考慮的因素。

支持多種編程語言

特別有意思的是你可以用 Xcode 11 構建 Fuchsia 。Fuchsia可以支持多種語言的應用程序,包括READMEC/C++FIDL、Go、Rust、Python、Flutter、Java、Swift、Dart。到目前為止,移動平臺只支持一種本地語言,但未來可能支持多種編程語言。

2020年就可以用了

目前 Fuchsia 已經可以在一些設備上運行,比如Acer Switch 12、Intel NUC、Google Pixelbook。目前只能參考指南的介紹自行構建此係統,市面上還沒有使用 Fuchsia 的產品。

谷歌 Fuchsia OS 进入开发者测试阶段,它真的会代替安卓吗?

動手構建一個Fuchsia系統嚐鮮吧!

既然市面上還沒有使用Fuchsia的產品,先動手嘗下鮮也是極好的。

從Fuchsia開發者網站上給出的文檔中,我們至少可以得到以下幾個信息:

1. 這個構建過程叫做 pave (鋪路)。

2. 你需要一臺主機和一臺目標設備。換句話說,你需要在計算機上構建它,然後將其傳輸到目標設備上。

3. 你可以在 Linux 和 Mac OS X 中使用它。

具體的構建過程是怎樣的呢?我們慢慢來看。

前提

準備構建環境

  • Debian

<code>1sudo apt-get install build-essential curl git python unzip
/<code>
  • macOS

  1. 安裝命令行工具:

<code>1xcode-select --install
/<code>
  1. 除了命令行工具外,還需要安裝最新版本的Xcode。

獲得來源

獲得Fuchsia來源,需要根據指南下載,這個過程耗時將近60分鐘,可按照文檔操作:https://fuchsia.dev/fuchsia-src/development/source_code

構建Fuchsia

如果你在獲取源代碼的過程中將.jiri_root / bin添加到了路徑中,則fx命令應該已經在路徑中了。如果沒有,該命令也可以作為scripts / fx使用。

<code>1fx set core.x64 --with //bundles:kitchen_sink
2fx build
/<code>

fx set命令可配置構建內容,並在默認輸出目錄out / default和out / default.zircon中生成構建規則和元數據。參數core.x64是指產品和電路板的定義,描述了你的Fuchsia設備已構建並可用的軟件包。

運行Fuchsia的設備可以通過網絡臨時下載和安裝軟件包,在開發環境中,你的開發工作站就是這些臨時軟件包的來源。電路板和產品定義包含一組軟件包,但是如果你需要添加其他軟件包,請使用--with標籤。此示例包括kitchen_sink,這個英文習語的意思是“幾乎所有內容”。當你更加專注於開發時,你可能會使用更具體的--with選項,以減少構建時間。

fx build命令運行構建,將源代碼轉換為程序包和其他構建工件。如果你修改源代碼,則可以通過單獨重新運行fx build命令來進行增量構建。fx -i build啟動監視程序,並在文件更改時自動進行構建。

有關更多詳細信息,請參見基礎構建系統指南:https://fuchsia.dev/fuchsia-src/concepts/build_system

其他選擇:使用ccache加速構建

ccache通過緩存以前構建的工件來加速構建。如果設置了CCACHE_DIR環境變量並引用了存在的目錄,則會自動啟用ccache。

要覆蓋默認行為,請將標籤傳遞給fx set:

<code>1--ccache # force use of ccache even if goma is available
2--no-ccache # disable use of ccache
/<code>

Boot Fuchsia

從硬件安裝和引導

要想Fuchsia在硬件上運行,需要用到paver,具體操作參見https://fuchsia.dev/fuchsia-src/development/hardware/paving

從QEMU引導

如果沒有支持的硬件,則可以使用QEMU在仿真下運行Fuchsia。Fuchsia在prebuilt / third_party / qemu下包含QEMU的預構建二進制文件。

fx emu命令將使用本地構建的磁盤映像在QEMU中啟動Fuchsia:

<code>1fx emu
/<code>

fx emu有各種標誌來控制仿真器配置:

  • -N啟用聯網(請參見下文)。

  • --headless禁用圖形(見下文)。

  • -c將其他參數傳遞給內核。

使用fx emu -h查看所有可用選項。

注意:在運行任何命令之前,你需要按照Explore Fuchsia部分中的說明進行操作。啟用網絡

為了使臨時軟件在仿真器中運行,必須配置IPv6網絡。

在macOS上:安裝“ http://tuntaposx.sourceforge.net/download.xhtml”。

在Linux上:運行sudo ip tuntap add dev qemu模式,點擊用戶$ USER && sudo ip link set qemu up

現在,仿真器可以在啟用網絡的情況下運行:

<code>1fx mu -N
/<code>

以上內容足以使臨時軟件(由fx serve提供服務)能夠正常運行,其中包括許多工具,例如uname和fortune(如果已構建)。

另外,希望從仿真器訪問Internet的用戶還需要在仿真器TAP接口上配置某種方式的IP轉發和IPv4支持。

Explore Fuchsia

在單獨的shell中,啟動開發更新服務器(如果尚未運行):

<code>1fx serve
/<code>

用網絡啟動Fuchsia。可以通過-N標誌在QEMU中完成此操作,也可以在已安裝的硬件上完成。當Fuchsia啟動並顯示“ $” shell提示符後,就可以運行程序了!

例如,要獲得deep wisdom,運行:

<code>1fortune
/<code>

要關閉或重新啟動Fuchsia,使用dm命令:

<code>1dm shutdown
2dm reboot
/<code>

更改一些來源

Fuchsia系統上幾乎所有的東西都存儲在Fuchsia的包裝中。通常的開發工作流程包括重建Fuchsia軟件包並將其推送到開發設備或QEMU虛擬設備。

在examples / rolldice / src / main.rs中更改rolldice二進制文件。

重新構建rolldice軟件包並將其推入運行中的Fuchsia設備,方法是:

<code>1fx build-push rolldice
/<code>

在Fuchsia設備的shell提示符下,使用以下命令運行更新的rolldice組件:

<code>1rolldice
/<code>

選擇一個標誌

啟用了圖形的引導後,Fuchsia顯示多個選項卡。當前選擇的選項卡在屏幕頂部以黃色突出顯示。

以下鍵盤快捷鍵可以瀏覽終端:

  • Alt + Tab在選項卡之間切換。

  • Alt + F {1,2,...}直接切換到選項卡。

    • Tab 0是控制檯,該控制檯顯示引導和組件日誌。

    • Tab 1、2和3包含shell。

    • Tab 4和更多包含你已啟動的組件。

  • Alt +上/下按行上下滾動。

  • Shift + PgUp / PgDown上下滾動半頁。

  • Ctrl + Alt + Delete重新啟動。

注意:要選擇Tab,你可能需要輸入“控制檯模式”。有關詳細信息,請參見下一部分。啟動圖形組件警告:QEMU不支持Vulkan,因此無法運行我們的圖形堆棧。本節中的命令不適用於QEMU。

Fuchsia中的大多數圖形組件都使用Scenic系統合成器。你可以啟動通常在/ system / apps中的此類組件,如下所示:

<code>1present_view fuchsia-pkg://fuchsia.com/spinning_square_view#meta/spinning_square_view.cmx
/<code>

當你啟動使用Scenic的東西,使用硬件加速的圖形或構建默認程序包(將引導至Fuchsia System UI)時,Fuchsia將進入“圖形模式”,該模式將不顯示任何文本樣式。為了使用文本樣式,你需要按Alt-Escape進入“控制檯模式”。在控制檯模式下,Alt-Tab將可以進行上文所述才做,再次按Alt-Escape可返回圖形樣式。

運行測試

和其他組件一樣,已編譯的測試二進制文件也緩存在pkgfs中,並由URI引用。你可以在終端中調用來運行測試。例如:

<code>1run fuchsia-pkg://fuchsia.com/ledger_tests#meta/ledger_unittests.cmx
/<code>

如果要讓Fuchsia保持運行狀態,然後重新編譯並重新運行測試,就在一個終端中啟用聯網的情況下運行Fuchsia,然後在另一終端中運行:

<code>1fx test <test> [<test>]
/<test>/<test>/<code>

如果要進一步操作,可以參考以下鏈接,篇幅所限,不能一一詳解:

https://fuchsia.dev/fuchsia-src/development

真的能完全代替安卓/Chrome OS嗎?

本文是對谷歌 Fuchsia 的一個系統性的總結,谷歌目前還尚未做出關於這個系統的任何回應和評價。

自Fuchsia誕生之初,圍繞它是否會成為改變操作系統格局的深水炸彈之爭就一直存在。據說,Fuchsia開發團隊裡有35名,約1/4的開發人員也是安卓的開發人員。另據傳聞,Google的設計副總裁 Matias Duarte (也是 Material Design 的創始人)可能也參與到了Fuchsia項目,與安卓千絲萬縷的關係,讓Fuchsia與安卓之間的關係更是好奇。

一些專家認為,手握“跨平臺”優勢的Fuchsia將是操作系統領域下一個可以取代安卓操作系統的“大殺器”,谷歌不會放棄這個機會,而有人認為技術變化得如此之快,再加上華為鴻蒙OS的推出趕上日程,有媒體猜測,鴻蒙可能將打通手機、電腦、平板、電視、汽車和智能穿戴等多種設備的統一操作系統,併兼容全部安卓應用和所有Web應用。屆時,在操作系統領域,Fuchsia還將面臨更多競爭,到底誰將替代安卓/Chrome OS,是否足夠強大到能夠替代,還有待時間的驗證。

按照這份入門指南,你現在應該可以上手自行創建一個Fuchsia系統了,試用的感受如何?和安卓Chrome OS相比,它用起來更簡單方便嗎?歡迎留言告訴我你的想法。

參考鏈接:

https://medium.com/better-programming/google-fuchsia-androids-replacement-code-in-mobile-5ebafe8eb11a

本文為CSDN編譯文章,轉載請註明出處。


分享到:


相關文章: