当前位置: 首页 > 科技观察

谷歌新操作系统:从技术角度看,Fuchsia

时间:2023-03-19 15:05:08 科技观察

谷歌正在“悄悄”开发一款新操作系统,命名为“Fuchsia”。Google在Fuchsia的GitHub主页上是这样介绍Fuchsia的:“Pink+Purple==Fuchsia(anewOperatingSystem)”。谷歌开发的操作系统都有一个共同点,都是基于Linux内核:ChromeOS、Android和Chromecasts。但Linux内核并非在所有情况下都能正常工作(影响性能或其他),尤其是汽车仪表盘和GPS装置等嵌入式设备。Fuchsia主页的信息有限,但完全不能满足我们的好奇心。比Linux内核更好?从Fuchsia包含的项目和文档可以发现,Fuchsia的内核是Magenta内核,是一个基于“小内核”的项目。Magenta和Fuchsia的关系类似于Linux和Android,Magenta内核驱动强大的Fuchsia操作系统。Magenta被设计为商业嵌入式操作系统,类似于FreeRTOS和ThreadX。然而,Magenta比LittleKernel强大得多,专为现代、高处理器设备设计,支持嵌入式设备、智能手机和台式电脑。下面的LittleKernel简称为LK。Magenta的内部架构基于LK,但上面的层是全新的。Magenta有process的概念,LK没有。一个Magenta进程由线程、内存等LK级结构组成。其他区别:Magenta有高级用户模式支持,LK没有对象处理系统,Magenta没有这个概念,Magenta有基于能力的安全模型(类似于Android6.0权限),LK中的所有代码都是字母这里magenta/mg_and_lk.mdatmasterfuchsia-mirror/magentaGitHub提到:LK是为通常用于嵌入式应用程序的小型系统设计的内核。它是FreeRTOS或ThreadX等商业产品的良好替代品。这样的系统通常只有非常有限的内存、一组固定的外围设备和一组有限的任务。看起来像是一个嵌入式实时系统,跟VR/AR/汽车甚至机器人都有关系;但后来说:另一方面,Magenta的目标是具有快速处理器的现代手机和现代个人计算机,大量的ram以及任意外围设备进行开放式计算。所以它不像是一个专用于嵌入式设备的系统,而是一个通用的系统。Fuchsia的开发者给出了一些提示:Purple-一个具有高性能图形、低延迟输入和漂亮UI的系统。Pink-为开发人员和用户提供的令人难以置信的模块化系统。看看它的内核之外的东西:谷歌使用Flutter作为Fuchsia的用户界面,而Dart作为主要的编程语言。从色彩和显示效果来看,采用了MaterialDesignUI理念。Fuchsia支持32位和64位ARMCPU,以及64位PC,未来应该会支持RaspberryPi3。UI层使用Flutter(一种用Dart语言实现的移动应用框架,支持Android/Ios,可以编写NativeApp);底层渲染为PhysicallyBasedRenderer,项目代号为Escher,支持Vulkan作为底层GraphicsAPI;那么它会从系统层面开始吗?支持MaterialDesign(Flutter目前使用的MD,当然这个框架也支持第三方设计风格)呢?那就是让MD走得更远。还有一个Mojo框架(这个东西好像和Chrome关系密切,是以后系统支持多种编程语言的关键),已经和一些语言绑定了,比如:Go、Java、JavaScript,蟒蛇,铁锈。用Dart写GUI部分,这些语言都可以用来写后台代码。该项目的贡献者包括TravisGeiselbrecht和BrianSwetland,他们是Android系统的主要开发人员。他们过去开发过WebOS,曾经是BeOS的开发者,也参与过NewOS、Danger和iOS的开发。而Dart、Flutter和Mojo来自Chrome团队。想想之前“谷歌打算在2017年统一Android和ChromeOS”的传闻。难道是这个?谷歌一再强调它不会支持Java以外的(SDK级别)。开发AndroidApp的语言,最近Chromebook可以无缝运行AndroidApp(通过采用类容器技术),那么这个新系统估计可以通过这种方式支持现有的AndroidApp。腹黑:与Android不同,这个系统目前好像没有VM之类的东西,以后也不用和Oracle“砍来砍去”了。谷歌现在有两个系统:Android——在平板电脑和大屏幕上的表现不尽如人意;Android的碎片化问题应该没有解决办法,只能缓解;确实性能很好,但是不支持NativeApp(最近刚无缝支持androidApp),用WebApp效果很好,距离取代NativeApp还很远(真的有必要吗?).在IOT、VR/AR等未来潜力巨大的新兴领域,目前还没有从一开始就为此优化的系统。所以:从头开发一个新的平台,把这三者融合在一起应该是它的终极目标(当然也不排除是RTOS,嵌入式系统,专门为VR/AR开发的,我想多了)。但是,Android是目前全球用户数量最多的系统,生态庞大;ChromeOS刚刚开始表现不错,谷歌不太可能放弃这两个系统,也没有办法放弃。比如Android怎么能被抛弃?我认为它更像是一个:进化,融合。如果你看它的源码,其实它的很多技术栈都类似于Android和ChromeOS,汇集了很多之前分散在谷歌内部的项目(比如Skia和Mojo)。所以:系统底层会焕然一新,androidapp生态会保留和延续,java不再是唯一可以写app的语言,chromeOS可能会被吸纳,然后辅以系统级的支持用于虚拟现实/增强现实。这一策略也符合AlphabetCFORuthPorat上任以来的作风:精简产品线,不乱花钱。如果这时候再开发一个专用于物联网的系统,Brillo之前就已经存在了,难不成Android和ChromeOS打麻将?谷歌的目的?了解了这么多关于Fuchsia的信息,但为什么Google要开发一个全新的OS和Kernel?要在智能手机和PC上构建MaterialDesign概念?最有可能的原因是谷歌希望Fuchsia有朝一日能取代ChromeOS和Android,但也许谷歌会像三星对待TizenOS一样对待Fuchsia。但也有可能这只是谷歌的一次尝试。Fuchsia是一个项目开发代号。这个系统以后的真名是什么?也许还是Fuchsia,也许是Android8.0(9.0),也许是ChromeOS2.0,也许是一个全新的名字。这个新系统什么时候会取代(我认为取代这个词并不准确)Android和ChromeOS?我觉得可以很好的融合前两者的现有生态,新系统的切换过程不会给用户或者第三方厂商带来不便。有明显的差异感(比如很多APP用户不能用,很多厂商的驱动不兼容,很多东西要重新适配,导致用户和厂商不愿意切换到新系统,whichwillfail),即实现对用户和第三方厂商透明,成功替代后两者。事实上,Ubuntu最早提出“Convergence”的概念,一开始Ubuntu也这样做了,但进展并不顺利,Canonical在实力、资金、人力、物力等方面还不够。例如,Mir多次跳票。