chromium android 源码编译_fuchsia的源码树初探

本文详细解读了Fuchsia操作系统架构的四层结构,包括Zircon内核、Garnet基础软件、Peridot模块化应用和Topaz用户接口。源码中各层关键组件如Zircon的bootloader、Garnet的bin文件、Topaz的Dart/Flutter,以及示例代码和工具都被逐一介绍。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

92c2a2a7070a19dbd66c14a4dab4e3e4.png

fuchsia的4层架构源码结构zicron目录源码结构garnet目录源码结构topaz目录源码结构src目录源码结构examples源码结构

fuchsia的4层架构

翻译自英文原文Fuchsia Friday: The Four Layers of Fuchsia

google使用了4个层来组织fuchsia的代码

第一层是 zicron,是Google设计的新内核,主要处理对硬件的访问以及软件之间的通信。zicron对于fuchsia 就好比linux对于android。

第二层是garnet,它包含了一个操作系统所必要的基础软件,包括设备驱动,网络,图形以及软件安装。最激动人心的事情是 Escher(图形渲染器),Amber(Fuchsia 的更新程序)和Xi Core,它是Xi文本和代码编辑器的底层引擎

第三层是peridot,处理fuchsia模块化应用程序设计,Peridot的另外两个主要组件直接用于模块。 Ledger 可以跨设备保存您在应用/模块中的位置,并同步到您的Google帐户。Maxwell 是一个更复杂的主题,需要更多进一步的深入研究,但是 Maxwell 极有可能是让 Fuchsia 充分施展魔力的点睛之笔,可以提前透露的是,Maxwell 的厉害之处包括 Kronk,也是大家熟知的 Google Assistant。

第四层:Topaz,是这个顶层,也是对开发者和用户直接影响最大的一层。Topaz 提供 Flutter 支持,而有了Flutter 的支持,各种华丽的应用程序,可以帮助充实地提供日常使用的功能齐全的应用程序。比如,现在最令人印象深刻的当然是 Armadillo UI,它是 Fuchsia 主要用户界面和主屏幕。

089031561a8d37b0e3d50d9ad9dfab92.png

关于fuchsia的认识,许中兴博士的ppt很深入

https://xuzhongxing.github.io/201806fuchsia.pdf

源码结构

在源码树里tree看看

f0bfcb0efa72d479b4d03008359a4920.png

比较重要的有

  • zircon: 操作系统内核主体代码
    bootloader, 内核的进程,内存管理,内核对象,arch相关代码; 以及运行在用户态的系统核心进程, 系统调用和library都在这里
  • garnet: 基础软件层的主体代码
    主要是属于garnet层的bin文件代码,
  • topaz:应用层
    最关键的是dart,flutter的runtime
  • src:操作系统的基础代码模块,应该来说很多属于garnet层
    这里有camera,网络connectivity,graphics,media,security, storage
  • build
    基本上是gni文件,构建需要的
  • sdk
    构建sdk/ddk所需要的配置和脚本
  • boards
    全部是gni文件,和板子相关的编译配置
  • tools
    本地pc机上运行的工具,比如fidl的工具
  • third_party
    从外部引入的库,比如flatbuffers,go,dart,ssl,iperf,libpng,protobuf等等
  • examples
    一些c/c++/rust/go的是示例代码,可以学习在fuchsia上怎么开发

zicron目录源码结构

6ae74fa07a88ea709c8cc1dc21777333.png

其中

  • bootloader: The Gigaboot boot loader
    The Gigaboot boot loader is a UEFI boot shim for Zircon that can load images via chaining from iPXE, from a UEFI-accessible filesystem, or from local disk partitions.
  • kernel
    内核主体部分,进程调度,内存管理 内核对象object等
  • system
    运行在用户态的核心系统进程,bootsvc,devmgr,svchost等,这个后面细细的品;一些基础的library ulib和基础的工具uapp
  • vdso
    偏底层的系统调用相关的fidl文件

garnet目录源码结构

30bd7cb990d05d616661fe9ca6ea5cf6.png

这里都是用户层的bin文件,包括系统中比较重要的命令行工具,真正属于garnet层的核心代码在另外的src目录下

d557ff173b3ea4d2da303097ecc51c02.png

topaz目录源码结构

80cf791390d88ee1b950aa39892a2cab.png

这层包含的上层app的运行时,包括dart,flutter和web等内容. 我们从编译脚本BUILD.gn也可以看出来

0829f46344686094f0aa14d3f956947a.png

src目录源码结构

94ef201c2e8948d478972cc052116a5f.png

这个目录包含的是操作系统的基础软件模块。

camera,chromium,connectivity,驱动程序(微内核系统的驱动是在用户态的),graphic相关,多媒体,电源,安全,存储等等

examples源码结构

一些示例程序,教我们怎么在fuchsia上开发程序,有底层驱动的,有用户层c++,有rust示例, fidl的用法

45ca4e8cebc5ade4125fbe1c98ae8e23.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值