杂谈——什么是 Google Fuchsia ?
Google 正在开发一个新的操作系统:借助 Fuchsia OS,该技术小组放弃了 Linux 体系结构,转而依靠自行开发的微内核 Zircon。Fuchsia 不仅可以替代台式机操作系统 Chrome 操作系统,而且可以替代专为移动设备设计的 Android。尽管事实上,Android 在当今市场上几乎是无与伦比的。
Google Fuchsia 是未来的操作系统吗?我们仔细研究了该项目。
什么是 Google Fuchsia ?
Fuchsia 不仅是红色和蓝色之间的一种颜色,还是 Google 自 2016 年以来一直在公众面前开发的模块化,基于权限的实时操作系统的名称。该系统使用 C,C ++, Dart,Go 和 Rust,并在现代 64 位 Intel ARM 处理器上运行。
事实
实时操作系统(RTOS)是一种能够响应事件并立即或在预定时间内提供处理结果的操作系统。
Fuchsia OS 的源代码已获得开源许可证(包括 BSD,MIT 和 Apache 许可证),并且可以由 Google 公共Git存储库中的任何人查看和下载。这是有关该项目的综合文档。
根据文档,Fuchsia OS 同样适用于智能手机,平板电脑,笔记本电脑和台式计算机。自 2017 年 5 月起,Armadillo 已成为具有图形用户界面的触摸优化用户界面(UI)。谷歌正在为 Fuchsia OS 开发一个桌面 UI,标题为 Capybara。从那以后,有传言称 Google 正在努力替代几乎无与伦比的 Android。
Fuchsia OS 如何工作?
Google 在开发 Fuchsia OS 方面开辟了新天地。可以说,该公司从过去的错误中吸取了教训,尤其是在更新和修改 Android 和 Chrome OS 的局限性和问题方面。与已建立的 Google 操作系统的主要区别:Fuchsia OS 从头到尾都是模块化的。这不仅反映在模块化系统体系结构中,而且反映在对应用程序是什么的全新理解中。
模块化应用设计
Google Fuchsia 基于模块化设计,打破了应用程序的概念。软件单元称为软件包。软件包是一个被选中的文件—包括元数据、清单文件和可执行元素。后者在 Google 术语中称为组件。
Fuchsia 组件最接近我们今天所说的应用程序。每个组件执行特定任务,并且可以与其他组件组合以编程一个更复杂的应用程序。组件由清单文件以及相关的代码组成。组件始终在自己的沙箱中运行,通过名称空间访问对象,并通过导出目录发布它们。Fuchsia OS 专注于两种类型的组件:模块(modules )和代理(agents)。
agents 组件在后台工作,并为其他组件提供服务。agents 由另一个组件或系统调用-例如,响应某些触发(例如推送通知或其他屏幕处理)。
modules 是具有用户界面的组件,这些组件在前台执行,对用户可见。操作系统中的每个模块都是为特定任务而设计的,并进行了相应的标记,以便可以在需要时自动对其进行访问。这是使用模块的功能完成的,可以使用所谓的动词和名词来描述。
每个模块都包括一个 verbs 列表,表示模块可以执行的工作,以及一个 nouns 列表,表示正在使用的实体。根据谷歌术语,实体包括作为结构化数据对象存在的任何唯一可识别的人、地点、事物、事件或概念,这些数据对象可以被引用和检索、呈现、操作或共享。
因此,在实际中,使用实时操作系统 Fuchsia 的方式如下:用户执行操作后,Fuchsia OS 会自动为该任务确定适当的模块。所需的动作被翻译成动词和名词的组合。然后,系统检索所有支持所需动词的模块的列表,并在下一步中根据还可以处理所需名词的模块进行过滤。
相关的模块可以分组到所谓的 stories 中。stories 根据当前的需求组合不同的动作和任务,使用户能够根据自己的想法和需求组装复杂的应用程序。
概要
=借助 Fuchsia OS 的模块化应用程序概念,Google 将重点从应用程序转移到动作和内容。Fuchsia 的任务由所谓的 stories 中的一组组件来处理,而不是当前使用的应用程序的经典操作系统,该组件通过模块访问当前所需的资源。
下图说明了 Fuchsia OS 应用程序开发背后的模块化概念。
Fuchsia OS 的应用程序开发基于模块化结构。
模块化系统架构
Fuchsia OS 的系统架构也基于模块化方法。操作系统由四个或多或少的独立级别组成,每个级别都有其自己的任务:Zircon,Garnet,Peridot 和 Topaz。
Zircon
Zircon(以前为 Magenta)是新的 Google 操作系统的基础,但严格来说,它不是 Fuchsia OS 的一部分,也可以与其他操作系统一起使用。
Zircon 包含 Fuchsia OS 的内核,设备管理器,最核心的第一层设备驱动程序以及底层系统库(如 libc 和 launchpad)。此外,Zircon 还提供 FIDL(Fuchsia 接口定义语言),这是一种用于进程间通信的协议。FIDL 是独立于编程语言的,但是与流行的编程语言(例如 C,C ++,Dart,Go 和Rust)具有联系。
作为 Fuchsia OS 的基础,Zircon 提供了对后续级别的硬件访问,在共享硬件资源上创建了软件抽象,并充当了低级软件开发的平台。Zircon 是Project Little Kernel(LK)的结果,该项目充当 Android 的引导程序。
Garnet
Garnet 是基于 Zircon 的第一款针对 Fuchsia 的系统层。提供了设备级别的各种系统服务以及网络,媒体和图形服务,例如,用于软件安装,系统管理以及与其他系统的通信。Garnet 包含图形渲染器 Escher,程序包管理和更新系统 Amber 以及文本和代码编辑器Xi。
Peridot
Peridot 是 Fuchsia OS 的操作系统级别,根据当前用户要求在其上管理和编译模块化应用程序(请参见上文)。Peridot 的核心成分是 Ledger 和 Maxwell。
Ledger:Ledger 是基于云的存储系统(分布式存储系统),它为每个 Fuchsia 组件(模块或代理)提供单独的数据存储。这在不同设备之间同步。这使用户可以在当前 Fuchsia 的设备上继续停留在其他 Fuchsia 的设备上的位置。
Maxwell:通过 Maxwell,Google 在 Fuchsia OS 中集成了一个组件,该组件将给用户提供了人工智能。就像 Fuchsia 一样,Maxwell 具有模块化设计。AI 系统由一系列代理组成,这些代理分析用户的行为及其所使用的内容,在后台确定合适的信息,并将建议转发给操作系统-例如,应加载哪些模块或故事以适合用户在特定时间的行为。Google 语言助手也是 AI 组件的一部分,该组件将在 Fuchsia 项目的框架内以代码 Kronk 的形式进一步开发。
注意
到目前为止,Kronk 是 Fuchsia OS 唯一未作为开源项目开发的组件。
Topaz
Topaz 是 Fuchsia OS 的系统级别,用户可以在其中与操作系统进行交互。在此显示以下级别定义的组件的用户界面:带主屏幕的图形用户界面(取决于设备 Armadillo 或 Capybara)以及模块的可视前端。Google 的跨平台开源移动应用程序框架Flutter也已在此系统级别集成。因此,可以假定 Fuchsia OS 用户将来也将能够运行和使用其他系统的应用程序,例如 Android 或 iOS 应用程序。
Fuchsia OS 的四个系统级别:Zircon, Garnet, Peridot, and Topaz
Fuchsia OS 的优缺点一目了然
按照模块化方法,Fuchsia OS 的开发人员已将系统体系结构划分为具有特殊任务的各个区域。这不仅提高了代码的可读性,而且影响了操作系统的适应性和更新。除其他外,Google 解决了 Android 长期以来一直在努力的更新问题。
事实
Android 生态系统正在努力解决更新问题。查看官方分发仪表板可以看到:操作系统的新版本正在缓慢传播。这是竞争对手苹果不会面临的问题。尽管 Apple 硬件和软件来自同一来源,可以直接进行修改,但每个 Android 更新必须首先由各种硬件制造商实施。
此外,模块化系统架构可满足 Google 销售合作伙伴的需求,他们希望根据自己的想法来适应或扩展 Fuchsia OS。
硬件制造商可以与自己的产品交换操作系统的各个级别,而不会影响其他级别的功能。例如,三星可以用自己开发的 TouchWiz 风格的用户界面代替 Topaz。亚马逊可以放弃 Peridot 和 Google Language Assistant,而为 Fuchsia OS 配备基于 Alexa 的基于 AWS 的应用程序模块。
在这两种情况下,设备制造商都可以提供**个性化的 Fuchsia OS 版本,**而不会影响 Zircon 和 Garnet 功能或这些层的正式更新周期。
发展状况
Fuchsia OS 正在慢慢成形,但仍未准备好投放市场。Google 甚至尚未宣布正式发布日期。据媒体报道,第一批硬件测试已经进行。作为首家测试 Fuchsia 操作系统的设备制造商,华为已成功在 Honor Play 上启动了新操作系统。该智能手机配备了华为麒麟 970 芯片,该芯片还用于该制造商的其他设备中,例如 Mate 10,Mate 20 和 Mate 20 Pro。
Fuchsia OS 演示
Fuchsia OS 可以在开发阶段早期编译为 APK(Android 软件包)并安装在 Android 智能手机和平板电脑上。该曼努埃尔Goulão在mgoulao.github.io“>Fuchsia OS演示版Fuchsia OS演示节目是什么样子。
如果在浏览器中访问 Fuchsia OS 演示,则会看到一个网站,其中显示了操作系统的启动屏幕。这为用户提供了背景图像和当前时间。此外,还有三个按钮可用:一个用于打开 Wi-Fi 设置的按钮,一个用于注册用户的登录按钮以及一个来宾登录。
该演示仅允许您注册为访客。
Armadillo –为触摸屏优化的 Fuchsia OS 图形用户界面/来源:https://mgoulao.github.io/fuchsia-web-demo/
注册用户可以访问 Fuchsia OS 的主屏幕,该屏幕在一页上显示所有信息。
主屏幕上最突出的元素是屏幕中央的窗口,其中包含 Google 搜索栏,Google 语言向导和设备上安装的应用程序。
借助 Fuchsia OS,Google 放弃了具有多个屏幕的设计,这在 Android 或 iOS 中是常见的,而是在主屏幕上显示所有内容。资料来源:https://mgoulao.github.io/fuchsia-web-demo/
如果您启动一个应用程序(仅使该演示作为虚拟对象可用),您会看到 Google 选择了基于窗口的用户界面。
启动的应用程序在单独的窗口中执行,并在主屏幕上以图块形式显示给用户。资料来源:https://mgoulao.github.io/fuchsia-web-demo/
单击主屏幕中间的用户图像会打开一个菜单,其中包含常用设置。
只需单击即可访问常用设置,例如 WIFI 和蓝牙设置,音量和亮度。资料来源:https://mgoulao.github.io/fuchsia-web-demo/
参考资料:
https://arstechnica.com/gadgets/2020/12/googles-secretive-fuchsia-os-is-open-for-contributions/
https://www.ionos.com/digitalguide/server/tools/fuchsia-os/
版权声明: 本文为 InfoQ 作者【思想者杰克】的原创文章。
原文链接:【http://xie.infoq.cn/article/97f3fce63cde91a0fa5ca0f50】。文章转载请联系作者。
评论