博客专栏

EEPW首页 > 博客 > 【原创】Fuchsia——谷歌未来的OS

【原创】Fuchsia——谷歌未来的OS

发布人:tuozi241 时间:2021-05-14 来源:工程师 发布文章

Fuchsia——谷歌未来的OS

谷歌正在开发一个新的OS: Fuchsia OS,这个技术团队放弃了 Linux 架构,转而基于自行开发的微内核 ZirconFuchsia 不仅可以取代桌面OS Chrome OS,还可以取代为移动设备设计的 Android,尽管 Android占据了智能手机操作系统85%的市场份额。这个操作系统最终可以取代谷歌现有的操作系统,成为一个跨所有设备的统一系统,但在这个时候说这个还为时过早,因为它还处于试验阶段。

谷歌的Fuchsia是未来的OS? 我们已经仔细研究了这个项目。


什么是谷歌Fuchsia

Fuchsia不仅是介于红色和蓝色之间的颜色,而且是谷歌自2016年以来一直在公众面前开发的模块化、基于版权的实时OS的名称。该系统是用 c c + + Dart Go Rust 编写的,运行在现代64位英特尔ARM 处理器上。

 

与基于 Linux Android OS Chrome OS 不同,Fuchsia是基于 Zircon内核构建的,Zircon是谷歌创建的一个新内核。与此同时,Armadillo 内置在谷歌的 Flutter SDK 中,该软件用于创建跨平台的代码,能够在多个设备和操作系统上运行。使用 Armadillo,不同的卡片可以在分屏或选项卡界面中拖动使用

 

RTOS能够对事件作出响应,并在预定义的时间内即时提供处理结果。

谷歌自己的文档将该软件描述为针对现代手机和现代个人电脑快速处理器大量内存它还明确指出“ Fuchsia 不是 Linux” Fuchsia GitHub 页面上列出了两位开发者——一位是谷歌的高级软件工程师,一位是 Android TV Nexus q 的前工程师——他们都是嵌入式系统领域的知名专家

正如我们所提到的,Fuchsia 是建立在 Zircon 之上的,这是一个中等大小的微内核,基于 LittleKernel 项目,用于嵌入式系统,比如一个不需要整个操作系统的设备,比如一个物联网设备。Google 的文档说明 Zircon 支持用户模式、图形渲染和基于能力的安全模型。这一切都表明 Fuchsia 是物联网的操作系统。

Fuchsia OS 的源代码有开源许可证(包括 BSD MIT Apache 许可证) ,任何人都可以在 Google 的公共 Git 仓库中查看和下载。这里有一个关于这个项目的全面文档。

根据文档,Fuchsia OS 同样适用于智能手机、平板电脑、笔记本电脑和台式电脑。从20175月开始,Armadillo 已经有了一个触摸优化的用户界面(UI)和一个图形用户界面。谷歌正在为 Fuchsia OS开发一个名为 Capybara 的桌面用户界面。从那时起,就有传言说谷歌正在研究一种几乎无与伦比的安卓系统的替代品。

 

安卓系统仍然存在碎片化问题。这是由于数十家制造商的数百台设备使用不同的自定义 Android 版本,而不是最新、最纯的版本。安卓系统也有更新问题,源于开源操作系统。谷歌为 Android 系统的更新制定了年度发布计划,但是需要一段时间才能完全覆盖整个生态系统。谷歌把安卓系统提供给 oem 和运营商,让他们修修补补,随机加载到硬件上,导致系统分裂。如果已经做了任何修改,谷歌不能直接向设备推送更新。也是基于 Linux 的,Linux 一直受到许多法律问题的困扰,而且内核已经被完全调整,为 bug 和漏洞的增长创造了一个主要的环境。


FuchsiaOS是如何工作的?

谷歌在Fuchsia OS的开发上开辟了新天地。可以说,苹果公司已经从过去的错误中吸取了教训——尤其是在更新和修改 Android Chrome OS方面的限制和问题。现有的谷歌OS的核心区别在于: Fuchsia OS 从开始到结束都是模块化的。这不仅反映在模块化系统体系结构中,而且反映在对应用程序的全新理解中。

 

模块化应用程序设计

Google Fuchsia 基于模块化设计,打破了应用的概念。软件单元称为软件包。包是文件的选择——包括元数据、清单文件和可执行元素。后者在谷歌术语中被称为Components

Fuchsia components最接近我们今天所说的应用程序。每个组件执行一个特定的任务,并且可以与其他组件组合以支持复杂的应用程序。组件的各个部分包括一个清单文件以及关联的代码。组件总是在自己的沙箱中运行,通过名称空间访问对象,并通过导出目录发布它们。Fuchsia OS 主要关注两种类型的组件: 模块和代理。

Components中的组件在后台工作,并为其他组件提供服务。代理被另一个组件或系统调用——例如,响应某些触发器,如推送通知或其他屏幕上的进程。

Modules是在前台执行、用户可见的具有用户界面的组件。OS中的每个模块都是为特定任务设计的,并相应地标记,以便在需要时能够自动访问。这是通过模块的函数完成的,可以用所谓的动词和名词来描述。

每个模块都包含一个动词列表,用于指示模块可以完成哪些工作,以及一个表示正在处理的实体的名词列表。根据 Google 的术语,术语实体包括任何唯一可识别的人、地点、事物、事件或概念,它们作为结构化数据对象存在,可以被引用、检索、呈现、操作或共享。

实际上,使用实时OS Fuchsia 的情况如下: 只要用户执行一个操作,Fuchsia OS 就会自动确定任务的合适模块。所需的动作被翻译成动词和名词的组合。然后系统检索所有支持所需谓词的模块列表,在下一步中,根据也可以处理所需名词的模块进行过滤。

相关的模块可以组合成所谓的故事。情景根据当前需求将不同的操作和任务组合在一起,并且应该使用户能够根据自己的想法和需求组装复杂的应用程序。

小结

借助于 Fuchsia OS 的模块化应用概念,Google 将重点从应用转移到了动作和内容上。与传统的应用程序OS不同,Fuchsia 的任务由一组组件在所谓的故事中处理,这些组件通过模块访问当前所需的资源。

下面的图形说明了 Fuchsia OS 应用程序开发背后的模块化概念。Fuchsia OS应用程序的开发是基于模块化结构

 

模块化系统体系结构

Fuchsia OS 的系统架构也是基于模块化的方法。OS由四个或多或少相互独立的级别组成,每个级别都有自己的任务: GarnetZirconPeridotTopaz

 

Zircon

Zircon (原名 Magenta)是谷歌新OS的基础,但严格来说它不是 Fuchsia OS 的一部分,也可以与其他OS一起使用。

Zircon 包含 Fuchsia OS 内核、设备管理器、最核心和第一方设备驱动程序,以及 libc launchpad 等低级系统库。此外,Zircon 还提供了 FIDL (Fuchsia 接口定义语言) ,一种用于进程间通信的协议。FIDL 是独立于编程语言的,但与流行的编程语言如 c c + + Dart Go Rust 有联系。

作为 Fuchsia OS 的基础,Zircon 为后续级别提供硬件访问,在共享的硬件资源上创建软件抽象,并作为低级别软件开发的平台。Zircon 是小内核项目(LK)的结果,它充当 Android 的引导装载程序。

 

Garnet

Garnet是第一个基于GarnetFuchsia特定系统层。在设备级别提供各种系统服务,以及网络、媒体和图形服务——例如软件安装、系统管理和与其他系统的通信。Garnet 包含图形渲染器 Escher,包管理和更新系统 Amber,以及文本和代码编辑器 Xi

 

Peridot

PeridotOSFuchsia OS的水平,其中模块化的应用程序(见上文)是管理和编译根据目前的用户需求。Peridot的核心成分是LedgerMaxwell

  • Ledger: Ledger 是一个基于云的存储系统(分布式存储系统) ,它为每个 Fuchsia 组件(模块或代理)提供单独的数据存储。这在不同的设备之间是同步的。这使得用户可以在 Fuchsia 设备上继续使用另一款Fuchsia设备。分类帐是安全的到用户的谷歌帐户

  • Maxwell: 通过Maxwell,谷歌在Fuchsia OS中集成了一个组件,支持用户的人工智能。就像 Fuchsia 一样,Maxwell采用了模块化设计。人工智能系统由一系列代理组成,这些代理分析用户的行为及其使用的内容,确定后台中的适当信息,并向OS提出建议——例如,应该加载哪些模块或故事以适应用户在特定时间的行为。谷歌语言助手也是人工智能组件的一部分,该组件正在代号为 Kronk Fuchsia 项目框架内进一步开发

注意

Kronk 是迄今为止唯一一个不是作为开源项目开发的 Fuchsia OS 组件。

 

Topaz

Topaz Fuchsia OS 的系统级别,用户与OS进行交互。这里显示了下面级别定义的组件的用户界面: 带主屏幕的图形用户界面和模块的视觉前端。谷歌的跨平台开源移动应用程序框架 Flutter 也集成在这个系统级别。因此,我们可以假定,Fuchsia OS 用户将来也能够运行和使用其他系统的应用程序——比如 Android iOS 应用程序。

The modular system architecture of Fuchsia OS Fuchsia OS的四个系统级别: Zircon, Garnet, Peridot, Topaz

Fuchsia OS 的优缺点一目了然

按照模块化的方法,Fuchsia OS 的开发人员将系统体系结构划分为具有特殊任务的独立区域。这不仅提高了代码的可读性,而且影响了OS的适应性和更新。除此之外,谷歌还解决了 Android 长期以来一直难以解决的升级问题。

 

安卓生态系统正在努力解决更新问题。看看官方的发行指示板就会发现: 新版本的OS正在缓慢扩展。这是一个竞争对手没有面对的问题。虽然苹果的硬件和软件来自同一个来源,并且可以直接适应,但是每次 Android 升级必须首先由不同的硬件制造商来实现。

此外,模块化的系统架构满足了谷歌销售合作伙伴的需求,他们希望根据自己的想法改进或扩展Fuchsia OS

硬件制造商有可能在不影响其他级别功能的情况下,用自己的产品交换OS的各个级别。例如,三星可以用自行开发的 touchwiz 风格的用户界面取代 Topaz。亚马逊可以放弃Peridot和谷歌语言助手,而是为 Fuchsia OS 装备一个基于 aws 的应用程序模块,包括 Alexa

在这两种情况下,设备制造商都可以提供个性化版本的Fuchsia OS,而不会影响GarnetZircon的特性,也不会影响这些层的官方更新周期。

优点

缺点

Fuchsia OS 的模块化系统架构使得谷歌能够比 Android 更快地推出安全更新

谷歌使Ledger成为Fuchsia OS的核心组件。Ledger 控制跨多个设备的应用程序同步,将系统紧密地绑定到云上

由于模块化设计,硬件制造商有可能用自己的模块替换Fuchsia OS的单个系统级别,而不影响其他级别的功能


发展状况

FuchsiaOS正在慢慢形成,但还远远没有为市场做好准备。即使是官方的发布日期也没有被谷歌公布。据媒体报道,第一批硬件测试已经开始。作为第一个测试 Fuchsia OS 的设备制造商,华为已经在 honorplay 上成功启动了新的OS。这款智能手机配备了华为麒麟970芯片,该芯片也用于该制造商的其他设备,如 Mate 10 Mate 20 Mate 20 Pro

Fuchsia OS 演示

Fuchsia OS 可以编译成 APK (Android 软件包) ,早在开发阶段就安装在 Android 智能手机和平板电脑上。Mgoulao.github.io Manuel Goulão Fuchsia OS 演示版本展示了它的样子。

如果你在浏览器中访问 Fuchsia OS 演示,你会看到一个网站,显示OS的启动屏幕。这将向用户提供背景图像和当前时间。此外,还有三个按钮可用: 打开 Wi-Fi 设置的按钮、注册用户的登录按钮和来宾登录。

这个演示只允许你以客人身份注册。

Armadillo – the graphical user interface of Fuchsia OS for mobile devices: start screen

注册用户可以访问Fuchsia OS的主屏幕,在一个页面上显示所有信息。

主屏幕上最突出的元素是屏幕中央的一个窗口,其中包含谷歌搜索栏、谷歌语言向导和安装在设备上的应用程序。

Armadillo – the graphical user interface of Fuchsia OS for mobile devices: home screen 

如果你启动一个应用程序(它只能让演示作为一个虚拟应用程序可用) ,你会看到谷歌选择了一个基于窗口的用户界面。

Armadillo – the graphical user interface of Fuchsia OS for mobile devices: apps as windows on the home screen

单击主屏幕中间的用户图像会打开一个带有常用设置的菜单。

 

参考资料:

https://arstechnica.com/gadgets/2020/12/googles-secretive-fuchsia-os-is-open-for-contributions/

https://www.ionos.com/digitalguide/server/tools/fuchsia-os/

https://www.pocket-lint.com/laptops/news/google/138518-google-fuchsia-os-what-s-the-story-so-far

 


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。




相关推荐

技术专区

关闭