整理苏宓 出品CSDN(ID:CSDNnews) Android的神话能否在Google打造的Fuchsia操作系统身上延续,或许挺难。 近日,有媒体发现大量与Fuchsia相关的代码已经被从Android开源项目(AOSP)中删除,删除的具体原因不明。不过这意味着在Fuchsia系统上运行的Android、Linux程序的方法似乎受阻。 Fuchsia:希望能够运行Android、Linux程序 过去几年来,Google对于Fuchsia的期望,如同华为对HarmonyOS的期望一样,不指望其能够取代Android,但都希望它们能够以一套操作系统实现横跨多平台的愿景,包括运行在智能手机、PC、智能设备、物联网等设备之上。 不过,要为新的操作系统谋出路,首先也要兼容Android、Linux应用程序,这样才能实现生态互通。为此,Google投入数以十亿美元计的资金来开发,然而有些遗憾的是,其成果寥寥无几。 截至目前,作为一套独立的操作系统,Fuchsia支持的硬件设备只有NestHub和NestHubMax两款智能显示屏。 当然,并不是Google不想在其他设备上运行,从理论上来看,搭载Fuchsia系统的设备无缝替换Chromebook或Android手机来保持其平台上的应用程序正常运行,这种方法并非不可以。 过去一段时间里,据外媒报道,Google也正在尝试一些办法,旨在让Fuchsia这款不是基于Linux的操作系统能够运行Android、Linux应用程序。譬如: 方法一:在虚拟机中运行Android操作系统的完整实例。 这是Google最早的尝试方法之一,因为那时Google在ChromeOS上已经有了成功开发的经验。彼时,通过在虚拟机上运行完整的Linux实例,ChromeOS能够运行Linux应用程序。另外,Google还用了相同的策略并发起了一个名为arcvm的项目,可以在ChromeOS上运行Android应用。 于是,Google也想着可以将此应用到Fuchsia系统上。不过,这种方案如果应用到Fuchsia系统上会存在一些性能问题,如在host(Fuchsia)和guest(Android)之间管理文件可能有些棘手或繁琐。此外,Fuchsia强调安全,试图尽可能地让程序相互隔离。为了保持Linux应用的这种隔离程度,Fuchsia需要运行多个虚拟机,这就可能会降低性能。 方法二:通过AndroidRuntime支持Android应用程序。 早在2019年,有媒体发现Fuchsia可以使用AndroidRuntime运行Android程序。其背后是Google将两个与Fuchsia相关的存储库添加到了Android开源项目(AOSP)清单中。 这两个存储库分别是platformprebuiltsfuchsiasdk,其中包含了FuchsiaSDK的与构建副本,用于创建Fuchsia应用程序。第二个是devicegooglefuchsia,这个项目中,Fuchsia将使用专门设计的Android运行时版本(ART)来运行Android应用程序。这个版本的ART将使用。far文件安装在任何Fuchsia设备上,Fuchsia相当于Android的APK。 不过,在2021年2月,不少人发现Android内部Fuchsia项目的工作即devicegooglefuchsia停滞不前。 本周,devicegooglefuchsia的所有代码都从Android上删除了,这也标志着Google放弃了通过这条路径来让Fuchsia运行Android应用。 从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提供了专用的StarnixShell,可以帮助开发者和发烧友玩Fuchsia工作站。 值得注意的是,这个shell不是简单的Linux设计,而是一个包含在系统中的小型Android发行版。日前,这一功能被替换为通过此adb命令访问Fuchsia和Starnix的Android功能,可以说与访问任何其他Android设备一样简单。 Google发力Fuchsia,一套系统走天下是否现实? 据9to5google报道,Google下一步也正在准备组件Fuchsia的Starnix团队,用来主攻构建一个稳定且与Android及其应用程序兼容的解决方案。除此之外,谷歌的Fuchsia团队似乎仍在考虑打造智能家居以外的产品。Google希望让Fuchsia成为一个类似Android的通用操作系统,与大量的Android应用程序兼容。 确实如此,如果Fuchsia不能与Android上超过10亿的用户、开发商以及制造商实现互通,那么即使再次借助开源,依然很难会有当初Android那样的盛世。 当然就当前的环境而言,一套系统走天下宛如程序员界梦寐以求的writeonce,runanywhere,这是否真的能实现?在2021长沙中国1024程序员节的技术英雄会上,我们也曾持以同样的疑问咨询了国产操作系统领域的几位资深专家:指令集创始人兼CEO潘爱民: 我觉得从我们早期做操作系统大多数都是从底层做起,但是我们最终的目标是为了平衡共性和个性化。从软件工程来讲,一次编写就能够到处使用,是一个理想点。 可能等到将来实现理想状态之后,我们不需要这么多的应用程序员。因为当程序用乌托邦的思想最终让程序写出来之后,会发挥更多的价值。今天在大多数的B类项目招标里面,好多都是把程序员当小时工来定价的,这是对程序员创造极大的贬低,因为他们只是写了一次程序,一次运行,没有第二次,这多么讽刺。然而,我们做操作系统追求的就是写一次可以到处使用,因此作为一种抽象的能力,这是我们追求的目标,而且在每一层上都要做到这一点。 随着挖掘的需求越来越充分,我们需要不断地把抽象的能力用在每一层上,这才是真正最终解决我们达到理想的软件世界,做到软件定义一切的关键。理想汽车副总裁、算力与OS部门总负责人许迎春: 其实软件工程师有一个目标,就是想实现硬件工程师这个样子,如每个模块做芯片,封装以后就不用再改了,最终达到这一点的话就算我们实现了工程,否则的话永远是一个艺术。 大家都觉得硬件芯片无法修改,却不得不用,软件随时可以改,就导致了我们很轻易的放弃了对标准界面的定义。随着算力的不断增大,这种情况下是需要付出代价的。百度主任架构师王柏生: 我说说我的看法: 第一个,我觉得操作系统会是一种百花齐放形式,可能很难说只有一种或者两种,因为大家可能会有个性化,或者是一些艺术方面的问题。 第二个,之前在传统操作系统里面有一个标准,该标准定义了一个良好的接口,承接上面的库和下面的标准。 我觉得操作系统当前会是百花齐放的状态,随着时间的推移,大家可能会定位标准,并向标准逐渐靠拢。清华大学长聘副教授陈渝: 站在学校的角度来说,努力朝着writeonce,runanyway这一愿景方向发展,但可能达不到。 我比较认同操作系统就是一种百花齐放的状态的说法。也正如许迎春老师所述,改硬件的成本太高,只有在改动成本越来越容易的情况下,我们就更容易实现百花齐放。 我感觉随着刚才说的算力的提高,我们的编程,或者是计算机技术的发展,也许将来更是一种百花齐放的方式,我们其实也在探索,一些数据结构,一些基本的控制逻辑都不一定是人去想,也许AI可以帮助我们做一些辅助的改动,这种情况下,我们的成本、代价会更高,在这种情况下我们怎么去构建一个符合应用需求的软件系统,不一定是操作系统,是一个软件系统,也许这就是一个新的问题。 我觉得这里面是要快速的去适应将来的需求,要达到这一点会是将来的趋势,而不是说我只做一个科目,只做某一块,你要做就做一个系统,这是我个人的感觉。 为此,你如何看待一套系统走天下这个愿景与Fuchsia的未来? 参考地址: https:9to5google。com20220715androidremovesfuchsiacodestarnix https:9to5google。com20210212googlefuchsiaosandroidlinuxprogramsstarnix