0
点赞
收藏
分享

微信扫一扫

Google系统fuchsia技术总结


fuchsia基于内核zicron,而zicron又是基于高通的LK(little kernel)项目,搞安卓的同学对fastboot应该不会陌生,fastboot用的其实就是LK,或者说,LK用在了fastboot上,LK项目地址在:

​​GitHub - littlekernel/lk: LK embedded kernel​​

Google系统fuchsia技术总结_中间件

fushia(zicron)项目文档,代码地址:

​​https://fuchsia.dev/fuchsia-src/concepts/kernel/zx_and_lk​​

​​https://fuchsia.googlesource.com/fuchsia/+/refs/heads/main/zircon​​

Google系统fuchsia技术总结_RPC_02

Google系统fuchsia技术总结_操作系统_03

fuchsia的体验网址:

​​FuchsiaSimple Web Demo that simulates Google's new OS. Works across devices.

Google系统fuchsia技术总结_中间件_04

https://mgoulao.github.io/fuchsia-web-demo/​​

qemu运行lk内核:

Fuchsia OS放弃了具有多个屏幕的设计,这在Android或iOS中是常见的,而是在主屏幕上显示所有内容

Google系统fuchsia技术总结_中间件_05

和Android,Linux,Chrome OS不同点

1.Fuchsia使用了一个实时操作系统的内核.

2.Fuchsia内置了一个叫做escher的基于物理的三维渲染器.

3.底层图形引擎基于最新的业界标准 Vulkan.

如何评价一个系统的好坏,我觉得,系统是给用户用的,首先要使用用户需求的变化,给用户带来较好的产品体验,其次,操作系统根植于硬件之上,而硬件也是变化的,先进的操作系统应当适应甚至影响硬件的变化,并挖掘出硬件的最大潜力。

开发语言:

C,C++,Rust,Dart开发驱动,模块,中间件和应用。

显示框架:

fuchsia上层应用图形开发框架使用 flutter开发,开发语言是dart.

底层显示框架是escher,对应安卓的surface flinger。

体量:

当前fuchsia的体量相当于Android 4.x时代的体量,这方面代码量最多的是内核之上的组件,fuchsia内核比Linux内核小很多。

RPC:

Android上有Binder实现跨进程的RPC调用,在安卓应用上非常普遍,本质上,Android应用之间的无感穿插底层依赖的就是Binder机制。

在fuchsia 系统中,也有类似机制,底层实现基于zircon内核的channel技术,中间件则用FIDL(Fuchsia 接口描述语言)定义接口,这个和Android很像,Android底层用了Binder,中间层则用HIDL来描述定义接口。

图示如下,左边是fuchsia ,右边是Android.

Google系统fuchsia技术总结_fushia_06

调试工具:

fuchsia 上的zxdb,相当于android上的ADB.

总结

  1. fuchsia 内核是基于LK修改的,单独的内核代码体量很小,也就是一般RTOS的量级。
  2. fuchsia 是微内核架构(文件系统貌似没有在内核里面),内核代码量还没我们的melis 大呢,大部门代码都是中间件和应用。

结束!

举报

相关推荐

0 条评论