Fuchsia——谷歌未来的OS

物联网与传感器   作者:独孤 编译 时间:2020-12-29来源:电子产品世界

谷歌正在开发一个新的OS: Fuchsia OS,这个技术团队放弃了 Linux 架构,转而基于自行开发的微内核 Zircon。Fuchsia 不仅可以取代桌面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 同样适用于智能手机、平板电脑、笔记本电脑和台式电脑。从2017年5月开始,Armadillo 已经有了一个触摸优化的用户界面(UI)和一个图形用户界面。谷歌正在为 Fuchsia OS开发一个名为 Capybara 的桌面用户界面。从那时起,就有传言说谷歌正在研究一种几乎无与伦比的安卓系统的替代品。

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

Fuchsia的OS是如何工作的?

谷歌在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 应用程序开发背后的模块化概念。

1609220656523209.png

Fuchsia OS应用程序的开发是基于模块化结构

模块化系统体系结构

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

1)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 的引导装载程序。

2)Garnet

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

3)Peridot

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

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

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

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

4)Topaz

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

1609220698961882.png

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,而不会影响Garnet和Zircon的特性,也不会影响这些层的官方更新周期。

优点:Fuchsia OS 的模块化系统架构使得谷歌能够比 Android 更快地推出安全更新;由于模块化设计,硬件制造商有可能用自己的模块替换Fuchsia OS的单个系统级别,而不影响其他级别的功能

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

发展状况

Fuchsia的OS正在慢慢形成,但还远远没有为市场做好准备。即使是官方的发布日期也没有被谷歌公布。据媒体报道,第一批硬件测试已经开始。作为第一个测试 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 设置的按钮、注册用户的登录按钮和来宾登录。

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

1609220796921879.png

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

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

1609220821304463.png

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

1609220845641595.png

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

参考资料:

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

关键词: Fuchsia 谷歌

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章


用户评论

请文明上网,做现代文明人
验证码:
查看电脑版