谷歌为 Fuchsia 提出了运行 Android/Linux 应用程序的新方法,在这个新方案中,开发者认为可借助 Starnix 机制,帮助系统在 Linux 内核指令与 Fuchsia Zircon 内核指令之间进行转换。基于此,Linux 程序仍可在 Fuchsia 平台上“正常运行”。如果你深入了解了 Linux 的工作原理,就会知道基于 Starnix 的完整建议是相当有趣的。其中最有趣的,还是开发者打算如何利用 Starnix,尤其在缺乏重新编译的能力的情况下。据悉,Android 应用程序已经包含了为 Linux 编译的原生代码模块。而为了在 Fuchsia 上运行该软件,我们还需要能够运行二进制文件、而不修改它们。从代码建议来看,谷歌可能也是打算让 Fuchsia 能够深度支持 Android 应用程序的。但从更长远的规划来看,Starnix 显然只是一个权宜之计。以下是详细的新闻介绍。
详细新闻介绍
多年以来,Google 一直在开发 Fuchsia,这是一种明显不基于 Linux 的操作系统。针对 Fuchsia OS 的最新提议显示了这种「非 Linux」操作系统能够运行「未经修改」的 Android 和 Linux 程序。 开发一个全新的操作系统,尤其是开发 Fuchsia 这样从头开始构建的操作系统的最大问题之一就是,人们理所当然地希望能够在新的操作系统上运行自己喜欢的应用程序。以 Fuchsia 为例,同样是出自 Google 之手,Fuchsia 是 Chrome OS 和 Android 系统的后继者,人们自然希望能够同时运行 Android 应用程序、Linux 应用程序以及 Fuchsia 原生的应用程序。 到目前为止,Fuchsia 能与 Chrome OS 当前在虚拟机中运行完整的 Linux 实例同样的方式来运行 Linux 应用程序。由于有一个名为 arcvm 的项目,Chrome OS 甚至可以使用相同的策略来运行 Android 应用程序。 但是,采用虚拟机的方法也有一些缺点。首先,在「主机」(Fuchsia)和「访客」(Android)之间管理文件可能很棘手或麻烦。此外,由于 Fuchsia 强调安全性,因此它会尽可能地使程序之间彼此隔离。为了保持 Linux 应用程序也能有相同的隔离级别,Fuchsia 可能需要运行多个虚拟机,因此会大幅降低性能。 当前,一项针对 Fuchsia 运行 Linux 和 Android 程序的替代解决方案的提案被正式提出。Fuchsia 不再运行 Linux 系统本身,取而代之的是一个名为「Starnix」的系统,该系统将在 Linux 内核指令和 Fuchsia Zircon 内核指令之间进行翻译。 因此,通过这种方式,Linux 应用程序将无需通过虚拟机运行 Linux 操作系统再运行软件的方式即可直接使用。又由于 Android 也同样是基于 Linux 开发而来的,Fuchsia 也将能够直接运行 Android 应用程序。 由此可见,Google 可能打算让 Fuchsia 能够深度支持 Android 应用程序,而不会出现任何例外情况,例如使用 Android NDK 编写 C 或 C++ 的应用程序。当然,从长远来看,Starnix 仅用作权宜之计,以允许 Google 的 Fuchsia 操作系统在等待开发人员将其应用程序移植到新操作系统时可以更广泛地使用。在任何情况下,原生 Fuchsia 应用程序的性能都应比通过 Starnix 运行的 Linux 或 Android 应用程序更好。 Fuchsia 的 Starnix 目前才处于提议阶段,需要做大量工作才能使任何类似 Android/Linux 到 Fuchsia/Zircon 的兼容性成为可能。而且这项提议仍然有失败的可能性,届时 Fuchsia 还可以退回使用虚拟机来满足 Linux 和 Android 的需求。 Google 最近已经开放了该项目,以征询来自开源社区的贡献。 附:以往新闻参考 2]、谷歌自研Fuchsia OS将兼容安卓:亦可在x86体系运行。
用户点评 总感觉支持运行其他系统应用,弊大于利,开发者不转移,原生起不来,系统被绑架,但不支持,系统推广又难。
相关主题 |