“一套系统走天下”梦碎?Google 从 Android 移除大量 Fuchsia 相关代码

9d2758134ffc385469b95298271ff72c.gif

整理 | 苏宓

出品 | CSDN(ID:CSDNnews)

Android 的神话能否在 Google 打造的 Fuchsia 操作系统身上延续,或许挺难。

近日,有媒体发现大量与 Fuchsia 相关的代码已经被从 Android 开源项目(AOSP)中删除,删除的具体原因不明。不过这意味着在 Fuchsia 系统上运行的 Android、Linux 程序的方法似乎受阻。

“一套系统走天下”梦碎?Google 从 Android 移除大量 Fuchsia 相关代码_第1张图片

cf659376a47b23466e136bd3181a1a25.png

Fuchsia:希望能够运行 Android、Linux 程序

过去几年来,Google 对于 Fuchsia 的期望,如同华为对 HarmonyOS 的期望一样,不指望其能够取代 Android,但都希望它们能够以一套操作系统实现横跨多平台的愿景,包括运行在智能手机、 PC、智能设备、物联网等设备之上。

不过,要为新的操作系统谋出路,首先也要兼容 Android、Linux 应用程序,这样才能实现生态互通。为此,Google 投入数以十亿美元计的资金来开发,然而有些遗憾的是,其成果寥寥无几。

截至目前,作为一套独立的操作系统,Fuchsia 支持的硬件设备只有 Nest Hub 和 Nest Hub Max 两款智能显示屏。

当然,并不是 Google 不想在其他设备上运行,从理论上来看,搭载 Fuchsia 系统的设备无缝替换 Chromebook 或 Android 手机来保持其平台上的应用程序正常运行,这种方法并非不可以。

过去一段时间里,据外媒报道,Google 也正在尝试一些办法,旨在让 Fuchsia 这款不是基于 Linux 的操作系统能够运行 Android、Linux 应用程序。譬如:

方法一:在虚拟机中运行 Android 操作系统的完整实例。

这是 Google 最早的尝试方法之一,因为那时 Google 在 Chrome OS 上已经有了成功开发的经验。彼时,通过在虚拟机上运行完整的 Linux 实例,Chrome OS 能够运行 Linux 应用程序。另外,Google 还用了相同的策略并发起了一个名为 arcvm 的项目,可以在 Chrome OS 上运行 Android 应用。

于是,Google 也想着可以将此应用到 Fuchsia 系统上。不过,这种方案如果应用到 Fuchsia 系统上会存在一些性能问题,如在“host”(Fuchsia)和“guest”(Android)之间管理文件可能有些棘手或繁琐。此外,Fuchsia 强调安全,试图尽可能地让程序相互隔离。为了保持 Linux 应用的这种隔离程度,Fuchsia 需要运行多个虚拟机,这就可能会降低性能。

方法二:通过 Android Runtime 支持 Android 应用程序。

早在 2019 年,有媒体发现 Fuchsia 可以使用 Android Runtime 运行 Android 程序。其背后是 Google 将两个与 Fuchsia 相关的存储库添加到了 Android 开源项目(AOSP)清单中。

这两个存储库分别是“platform/prebuilts/fuchsia_sdk”,其中包含了 Fuchsia SDK 的与构建副本,用于创建 Fuchsia 应用程序。第二个是“device/google/fuchsia”,这个项目中,Fuchsia 将使用专门设计的 Android 运行时版本(ART)来运行 Android 应用程序。这个版本的 ART 将使用 .far 文件安装在任何 Fuchsia 设备上,Fuchsia 相当于 Android 的 APK。

“一套系统走天下”梦碎?Google 从 Android 移除大量 Fuchsia 相关代码_第2张图片

不过,在 2021 年 2 月,不少人发现 Android 内部 Fuchsia 项目的工作即“device/google/fuchsia”停滞不前。

本周,“device/google/fuchsia”的所有代码都从 Android 上删除了,这也标志着 Google 放弃了通过这条路径来让 Fuchsia 运行 Android 应用。

“一套系统走天下”梦碎?Google 从 Android 移除大量 Fuchsia 相关代码_第3张图片

b701a6cc70055ee89900f98b01fe46ba.png

从 Android 系统中删除的 Fuchsia 代码

在删除 Fuchsia 相关代码后,目前,不知道 Google 的下一步计划是什么,但是据悉,负责此次更改的开发人员正在开发 Fuchsia 的“Starnix”项目。

所谓 Starnix 项目,最早于 2021 年被披露出来。该项目最初旨在运行 Fuchsia 原生支持运行 Android 和 Linux 应用程序和库。为了实现这一目标,Starnix 还将低级内核指令从 Linux 转换为 Fuchsia 的 Zircon 内核。

简单来看,Fuchsia 将通过 Starnix 系统,该系统将充当 Linux 内核指令和 Fuchsia 的 Zircon 内核指令之间的转换器,而并非让 Fuchsia 直接运行 Linux。

在 Starnix 作为提案被予以落地实践的一年以来,Google 做了大量的工作想要让 Android、Linux 与 Fuchsia 的 Zircon 内核兼容。为此,Google 提供了专用的 Starnix Shell,可以帮助开发者和发烧友玩 Fuchsia 工作站。

值得注意的是,这个 shell 不是简单的 Linux 设计,而是一个“包含在系统中的小型 Android 发行版”。日前,这一功能被替换为通过此 adb 命令访问 Fuchsia 和 Starnix 的 Android 功能,可以说与访问任何其他 Android 设备一样简单。

f8287e81b75ba9a7e4b05f36f048b8bd.png

Google 发力 Fuchsia,一套系统走天下是否现实?

据 9to5google 报道,Google 下一步也正在准备组件 Fuchsia 的 Starnix 团队,用来主攻构建一个稳定且与 Android 及其应用程序兼容的解决方案。除此之外,谷歌的 Fuchsia 团队似乎仍在考虑打造智能家居以外的产品。Google 希望让 Fuchsia 成为一个类似 Android 的通用操作系统,与大量的 Android 应用程序兼容。

确实如此,如果 Fuchsia 不能与 Android 上超过 10 亿的用户、开发商以及制造商实现互通,那么即使再次借助开源,依然很难会有当初 Android 那样的盛世。

当然就当前的环境而言,一套系统走天下宛如程序员界梦寐以求的「write once,run anywhere」,这是否真的能实现?在 2021 长沙·中国 1024 程序员节的技术英雄会上,我们也曾持以同样的疑问咨询了国产操作系统领域的几位资深专家:

  • 指令集创始人兼 CEO 潘爱民:

我觉得从我们早期做操作系统大多数都是从底层做起,但是我们最终的目标是为了平衡共性和个性化。从软件工程来讲,一次编写就能够到处使用,是一个理想点。

可能等到将来实现理想状态之后,我们不需要这么多的应用程序员。因为当程序用乌托邦的思想最终让程序写出来之后,会发挥更多的价值。今天在大多数的 B 类项目招标里面,好多都是把程序员当小时工来定价的,这是对程序员创造极大的贬低,因为他们只是写了一次程序,一次运行,没有第二次,这多么讽刺。然而,我们做操作系统追求的就是写一次可以到处使用,因此作为一种抽象的能力,这是我们追求的目标,而且在每一层上都要做到这一点。

随着挖掘的需求越来越充分,我们需要不断地把抽象的能力用在每一层上,这才是真正最终解决我们达到理想的软件世界,做到软件定义一切的关键。

  • 理想汽车副总裁、算力与 OS 部门总负责人许迎春:

其实软件工程师有一个目标,就是想实现硬件工程师这个样子,如每个模块做芯片,封装以后就不用再改了,最终达到这一点的话就算我们实现了工程,否则的话永远是一个艺术。

大家都觉得硬件芯片无法修改,却不得不用,软件随时可以改,就导致了我们很轻易的放弃了对标准界面的定义。随着算力的不断增大,这种情况下是需要付出代价的。

  • 百度主任架构师王柏生:

我说说我的看法:

第一个,我觉得操作系统会是一种百花齐放形式,可能很难说只有一种或者两种,因为大家可能会有个性化,或者是一些艺术方面的问题。

第二个,之前在传统操作系统里面有一个标准,该标准定义了一个良好的接口,承接上面的库和下面的标准。

我觉得操作系统当前会是百花齐放的状态,随着时间的推移,大家可能会定位标准,并向标准逐渐靠拢。

  • 清华大学长聘副教授陈渝:

站在学校的角度来说,努力朝着「write once,run anyway」 这一愿景方向发展,但可能达不到。

我比较认同“操作系统就是一种百花齐放的状态”的说法。也正如许迎春老师所述,改硬件的成本太高,只有在改动成本越来越容易的情况下,我们就更容易实现百花齐放。

我感觉随着刚才说的算力的提高,我们的编程,或者是计算机技术的发展,也许将来更是一种百花齐放的方式,我们其实也在探索,一些数据结构,一些基本的控制逻辑都不一定是人去想,也许 AI 可以帮助我们做一些辅助的改动,这种情况下,我们的成本、代价会更高,在这种情况下我们怎么去构建一个符合应用需求的软件系统,不一定是操作系统,是一个软件系统,也许这就是一个新的问题。

我觉得这里面是要快速的去适应将来的需求,要达到这一点会是将来的趋势,而不是说我只做一个科目,只做某一块,你要做就做一个系统,这是我个人的感觉。

为此,你如何看待“一套系统走天下”这个愿景与 Fuchsia 的未来?

参考地址:

https://9to5google.com/2022/07/15/android-removes-fuchsia-code-starnix/

https://9to5google.com/2021/02/12/google-fuchsia-os-android-linux-programs-starnix/

 
   

— 推荐阅读 —

《新程序员001-004》已全面上市,欢迎扫描下方二维码或点击订阅,即可畅享电子书及精美纸质书

 

你可能感兴趣的:(资讯,大数据,编程语言,python,java,linux)