IT之家2月14日消息外媒9to5Google报道,多年来,谷歌一直在开发FuchsiaOS,这是一款明显不基于Linux的操作系统。FuchsiaOS操作系统的最新提案展示了这款不是Linux的操作系统如何能够同时运行Android和Linux的未修改应用程序。 打造一个新的操作系统,尤其是像Fuchsia这样从零开始的操作系统,其中一个比较大的问题是人们理所当然地希望能够在这个操作系统上运行自己喜欢的应用。在Fuchsia的情况中,理论上可以作为ChromeOS和Android的继承者,人们很可能期望能够同时运行Android应用和Linux应用,以及原生的Fuchsia应用。 到目前为止,人们期望Fuchsia能够以ChromeOS目前能够运行Linux应用的方式来实现这一点,即在虚拟机中运行完整的Linux实例。ChromeOS甚至准备使用同样的策略来实现其运行Android应用的能力,这要归功于一个名为arcvm的项目。 然而,虚拟机的方案也有一些缺点。首先,在host(例如Fuchsia)和guest(Android)之间管理文件可能是棘手或繁琐的。此外,Fuchsia强调安全,试图尽可能让程序相互隔离。为了保持Linux应用的这种隔离程度,Fuchsia需要运行一个以上的虚拟机,这可能会拖累性能。 IT之家获悉,本周,有人提出了一个提案,为Fuchsia提供了替代解决方案,以计划运行Linux和Android的程序。Fuchsia将获得名为Starnix的系统,而不是运行Linux本身,它将作为Linux内核的指令和Fuchsia的Zircon内核指令之间的翻译器。 本质上,Linux程序将正常运行,不会区分出它不是在基于Linux的操作系统中运行的事实。同时,Starnix需要做的工作是确保应用程序能够在Fuchsia上运行,就像它在Linux上正常运行的那样。如果你对Linux的工作方式非常熟悉,Starnix的完整提案是一个有趣的内容,特别是他们支持Linuxassheisspoke的计划。 对于那些对Fuchsia有偶然兴趣的用户来说,更有趣的是开发者打算如何使用Starnix。在多个场合,提案中都提到了使用Starnix直接在Fuchsia上运行Android的代码。 随着我们扩大希望在Fuchsia上运行软件的范围,我们遇到了希望在Fuchsia上运行的软件,但我们没有能力重新编译。例如,Android应用程序包含已经为Linux编译的本地代码模块。为了在Fuchsia上运行这些软件,我们需要能够在不修改它们的情况下运行二进制文件。 例如,我们将运行一些来自Android源码树的低级测试二进制文件,以及来自Linux测试项目的二进制文件。 从中我们可以看出,谷歌可能是打算让Fuchsia能够深度支持Android应用,不需要例外,比如对于使用AndroidNDK用C或C编写的应用。当然,从长远来看,Starnix应该只是作为一种权宜之计,让谷歌的Fuchsia操作系统能够更广泛地使用,同时等待开发者将他们的应用移植到新的操作系统中。几乎在所有情况下,原生的Fuchsia应用都应该比通过Starnix运行的Linux或Android应用表现更好。 也就是说,Fuchsia的Starnix只是在提案阶段,需要做大量的工作才能有类似于适当的AndroidLinux到FuchsiaZircon的兼容性。为了尽量避免这种工作缺陷,谷歌一直在研究类似项目的成功和失败,比如最初的微软WindowsSubsystemforLinux(WSL1)。不过,这项提议还需要经过审视,Fuchsia重新使用虚拟机来满足其Linux和Android需求的可能性还是很大的。 Fuchsia增加Linux和Android的兼容性支持听起来很吸引人,谷歌最近已经开放了这个项目,接受开源社区的贡献。