Fuchsia----Zircon中的重要概念(一)
前情回顾
上一节我们具体分析了Fuchsia的四层结构,这里留个小问题给大家思考----“驱动开发我们应该重点考虑哪层呢?”。想不出来的同学自觉看上一节。
从这节开始我们就要进入概念学习阶段了,这是最恶心但是最重要的,我会尝试将概念分类然后将每个分类概念的关系用关系图的形式进行总结,实在不爱学概念的同学可以直接看末尾的小节总结,当然你会错过很多笔者认为是重点的知识点!
1. LK
Littel Kernel 是一款用于微型系统的微内核,Zircon是基于LK进行二次开发的。LK一般用作嵌入式系统开发考虑的安全性问题相对局限,Zircon相对LK有以下特征:
- Zircon仅有64位,LK即可运行在32位也可运行在64位。
- Zircon提供了用户态(下面讲System Calls会详细说明),LK没有提供。
- Zircon提供了基于功能的安全模型,LK中所有开发者的代码都是可信任的。
2. Kernel Object
熟悉Linux的同学肯定有"Linux下一切资源皆文件"这个概念,在Zircon中也有相似的性质"Zircon中一切资源皆对象"。
3. Handle
Handle简单来说就是Kernel Object的一个连接,我们可以通过它对Kernel Object进行操作。
Handle对于用户态而言他是一个unsigned int类型的变量,对于内核态而言它是一个实例对象。用户态下可通过该变量获取到Handle对象的实例
4. System Calls
System Calls直译就是系统调用,用户代码可以通过System Calls与Kernel Object进行交流
System Calls主要分为三大类:
5. VDSO
Virtual Dynamic Shared Object译为虚拟动态共享对象,在Zircon中VDSO是访问SystemCalls的唯一途径,VDSO映射由内核直接提供。简单地说就是一个在内核启动的时候就被加载到内核空间并且会映射到用户空间供用户使用的.so库
6. FIDL
Fuchsia Interface Definition Language 跟Android中的AIDL是同样的用途,简单来说就是说明一块内存该怎么使用
小节总结
话不多说,show me the picture!!!
网友评论