Fuchsia OS简介

国民程序员

共 2050字,需浏览 5分钟

 · 2022-05-09

点击左上方[蓝色小字],关注[最新技术]

前沿技术 / 最新技术

由于微信公众号近期改变了推送规则,如果你想第一时间看到我的文章置顶+星标公众号。


谷歌正在开发一个全新的操作系统,Fuchsia OS。

Fuchsia OS不是Android的继任者,至少这不是它的意图。在官方文档中,Fuchsia团队描述说,它不会专注于“用户体验”,而是专注于“多种体验”。


与Android相比,Fuchsia将更具响应性和多平台性,“定位”在多个平台上,例如:智能手机,电视,HomeCasts,Speeches,Desktops,Watch,也许还有其它任何平台。


模块化

Fuchsia OS,现在只是Fuchsia,被设计成一个完全模块化的系统,允许其库和应用程序完全删除,更新和添加,而不会影响系统 。


除了确保系统完整性之外,这还使其更加安全,例如可以使用简单的软件包轻松获得安全补丁更新,而不会影响用户数据或其他应用程序。


技术 / 堆栈

Fuchsia开发中使用的技术当然是C,C++,Rust,Go和Dart。因此,Fuchsia开发人员将能够选择后端使用的语言 — 因为作为一个完全模块化的系统,Fuchsia没有问题。


它的原生前端应用程序是在Dart/ Flutter中开发的,这将极大地促进从Android平台到Fuchsia的迁移,并且仍在市场采用中,因为Flutter是过去几年最成功的技术之一!


值得检查的一点是,今天使用Dart / Flutter和低级语言(直接与操作系统通信的语言,如C / C++和Rust)开发应用程序是完全可行的,通过使用Dart:ffi库。


架构


Fuchsia被设计成一个安全、高度可升级、模块化和高性能的系统。

该系统不再是以前的“实验”,而是生产级系统。就像新的Google Nest Hub已经附带了一个原生运行的Fuchsia版本一样。


安全

这意味着在Fuchsia上运行的所有软件,包括应用程序和系统本身的组件,都遵循最小特权原则(最小特权原则),简而言之,这要求在操作系统环境的抽象层中,每个模块(例如进程,用户或应用程序)只能访问其执行所需的信息和资源。


可更新

可升级意味着Fuchsia软件包被设计为独立更新,甚至是即时交付,或Enphemery,这意味着软件包被设计为解耦,因此根据需要从设备来来去去,并且系统始终保持最新状态。


模块化/包容性

模块化意味着系统与语言无关。由于它被设计为可扩展的,并允许集成用多种语言和运行时编写的软件,因此您可以使用C,C++,Rust,Go,Python或Dart / Flutter进行开发。


内核

系统核心是Zircon,它是具有一组库的内核,用于管理系统的启动和引导。内核之外的所有系统组件都是在所谓的用户空间中实现的,并且与系统的关键层完全隔离 - 正如我们已经在这里讨论的那样,加强了最小特权的原则 - 所以即使是设备驱动程序也在用户空间中隔离。


Zircon带来了我们通过微内核了解的架构和许多概念。这种架构使Fuchsia能够尽可能地减少信任代码的数量,从而限制内存管理,调度和IPC(进程间通信)。


因此,我们遇到了一个可能的问题:如果系统的整个核心与用户空间隔离,我们如何开发需要信息甚至与系统“对话”的应用程序?


因此,我们的代码执行交互,例如:手动内存管理,系统任务或进程,IPC,设备I / O等;我们可以使用系统调用。这些执行系统调用的进程由 vDSO(虚拟动态共享对象 — libzircon.so)库执行,该库读取生成的内核映像,而不是直接读取内核中的文件。


如果您是开发人员,那么您可能需要为Fuchsia开发的绝大多数应用程序,您可能会使用事件,流,频道,套接字等。







结论

如果您是开发人员,并且有兴趣开始在Fuchsia上测试开发,那么仍然存在一些问题。标准的 Flutter SDK 尚不支持对 Fuchsia 主机进行调试,因此有必要使用 Fuchsia 存储库中提供的 SDK。作为Fimage,你甚至可以进行调试,但它需要一些调整,但是Fimage不支持。


自从我在2018年年中遇到Fuchsia 以来,我就一直看好它。我相信这是一个革命性的系统,不是因为它带来了新的东西,因为有几个开源系统在一段时间内具有相似的特征和概念,而是因为它带来了这些概念,并且掌握在谷歌手中。对于那些不记得Dart的人来说,它从一个实验开始,得到了一个网络提案,最后是Flutter,随着Flutter的发展,语言随着框架的发展而增长。


但我并不是说Flutter会拖累Fuchsia的发展,而是说通过拥有整个系统的堆栈,可能会受到Google本身的限制。想想看,系统是针对多个用户体验(多个平台),而Flutter是为多平台设计的,所以我们在同一个房子里支持两个层,(不包括谷歌硬件:Nest Hubs,Google TV,Google Home等)。


微信搜一搜
最新技术
浏览 64
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报