最近很多朋友很关注 Fuchsia OS 操作系统,也有很多朋友关心它的开发,今天我们就来讲讲它的结构,在描述 Fuchsia OS的结构的时候,谷歌使用了“层蛋糕”的比喻,原文是 Layer Cake。Fuchsia OS是整个项目的名称和成品的名称,但在其下它被分成4个不同的层次,如下图所示:
第一层:也是最底下一层,是构建 Fuchsia OS 的基石,Zircon 内核,去年的新闻是叫 Magenta,但是后来改为了 Zircon 这个名字,这是一个由Google全新设计的新内核,主要处理硬件访问和软件之间的通信。
对于不太了解内核作用的同学简而言之,Zircon之于Fuchsia,恰如Linux之余于Android。Linux内核驱动了多个操作系统,很多操作系统构建在它之上,比如 Ubuntu、Android、Manjaro、ArchLinux、Debian、Red Hat、SUSE 甚至 Chrome OS ,所以我们也可以大胆预测,如果未来Fuchsia OS 发展良好, Zircon 内核也被证明好用,那么很有可能有更多的操作系统采用这一新内核。
第二层:也是直接构建在 Zircon 上的一层名叫 Garnet。 Garnet 包含各种操作系统所需的各种底层功能,包括硬件的驱动程序(网络,图形等)和软件安装。这一层最激动人心的事情是 Escher(图形渲染器),Amber(Fuchsia 的更新程序)和Xi Core,它是Xi文本和代码编辑器的底层引擎(今年早些时候已经发布了)。
第三层:Peridot 是接下来的这一层,主要处理Fuchsia的模块化应用程序设计, Peridot的另外两个主要组件直接用于模块。 Ledger 可以跨设备保存您在应用/模块中的位置,并同步到您的Google帐户。Maxwell 是一个更复杂的主题,需要更多进一步的深入研究,但是 Maxwell 极有可能是让 Fuchsia 充分施展魔力的点睛之笔,可以提前透露的是,Maxwell 的厉害之处包括 Kronk,也是大家熟知的 Google Assistant。
第四层:Topaz,是这个 Layer Cake 蛋糕的顶层,也是对开发者和用户直接影响最大的一层。Topaz 提供 Flutter 支持,而有了Flutter 的支持,各种华丽的应用程序,可以帮助充实地提供日常使用的功能齐全的应用程序。比如,现在最令人印象深刻的当然是 Armadillo UI,它是 Fuchsia 主要用户界面和主屏幕。
可以做一个类比,Topaz 这一层在 Android 中可以找到一个对照,这将是你的必备应用程序,如联系人,音乐,文件管理器和文本编辑器 Xi(Topaz中的可视前端连接到Garnet的后端)。即使没有你需要的东西,你也可以简单方便地安装。
从表面上看,Fuchsia OS 的层次设计似乎更适合团队组织。它还有助于将代码划分成不同的更易于理解和开发的部分。当然,还有比这更重要的原因,硬件供应商也可以拥有自己可以掌控的层次结构。这意味着公司将能够用他们自己的修改版本来替换四个层中的一个(或多个)。
大多数手机制造商会定制Android用户体验,以便从竞争中脱颖而出,而不是使用 Google 的默认界面设计。自定义设计的能力进一步表明 Google 正在借鉴从 Android 中得到的经验。Fuchsia 和 Android 使供应商更容易使用他们的自定义设置和UI设计,而不影响系统的其余部分。例如,三星可以用 TouchWiz 主题版本取代 Topaz 层,HTC、华硕和其他手机制造也可以。
此外,Android 团队无法预料像 Amazon 这样的公司会大量修改 Android 来用作 Kindle Fire 设备的操作系统。使用 Fuchsia OS 的话,同样的事情变得更简单,比如用 Amazon Web Services 和 Alexa 替换 Peridot 的Google Cloud 和 Google 智能助理,当然,用 亚马逊的设计语言取代 Topaz ,但是不影响获得 Fuchsia 的 Zircon 和 Garnet 的更新。
总而言之,从 Fuchsia 的设计可以看出,Google 正在铭记 其 Android 团队学到的很多宝贵教训与经验。与 Android 的撕裂的生态系统相比,将 Fuchsia OS 分成仅向上构建的层次结构应有助于确保可更新性和统一性。当然,Google 仍然可以改变这种设计,只有时间才能证明 Fuchsia OS 的计划是否会取得成功。
本文翻译者:闻其详(Bootingman),原文来自 https://9to5google.com/2018/03/16/fuchsia-friday-the-four-layers-of-fuchsia/,头图来自:http://blog.awok.com/google-fuchsia/,译文发表在开源工场与 Fuchsia OS 中文社区。