美文网首页
微内核 seL4 Capabilities

微内核 seL4 Capabilities

作者: 汪大星 | 来源:发表于2020-09-28 19:54 被阅读0次

capability的概念

capability是用于访问系统中的entity/object的独一无二的token。
在seL4初始化阶段,那些可以控制seL4所有资源的capability就已经交给了root task。如果需要使用任何一种资源,用户都必须使用内核API和相应的capability去执行操作。capability就是个数字,如seL4_CapInitThreadTCB是1,这是root task访问它自己的TCB的capability,seL4_CapInitThreadTCB是libsel4中预定义的一个数字。

CNode的概念

CNode是一个capability的数组,CSlot是CNode中的槽位,它只有两种状态:有capability或没有capability(即null)。
第0号CSlot保持为空。CSlot的大小为1u<<seL4_SlotBits,所以只会是2,4,8,16等2的倍数,所以CNode中CSlot的数量就是CNodeSize/(1u<<seL4_SlotBits)。

CSpace的概念

CSpace是一个线程的所有capability,所以它可以由一个或者多个CNode组成。CSpace的寻址方式有两种:直接调用(Invocation)直接CSpace寻址

CSpace寻址方式1(Invocation)

在启动阶段,root task已经有一个CNode被安装好作为它的CSpace root,如seL4_CapInitThreadTCB和seL4_CapInitThreadVSpace这些capability都是在CSpace root中的,可以直接调用的。例如:

seL4_TCB_ReadRegisters(seL4_CapInitThreadTCB, 0, 0, num_registers, &registers); 
seL4_TCB_Suspend(seL4_CapInitThreadTCB);

CSpace寻址方式2(直接CSpace寻址)

通过直接指出CSlot的位置,这是需要三个重要的信息:

  1. _service/root:要操作的CNode,它是CSpace root中的index;
  2. index:CSlot在CNode中的index;
  3. 深度:在CNode中寻找到CSlot的距离,对于单层CSpace,深度总是seL4_WordBits(即64位)。例如:
seL4_CNode_Copy(seL4_CapInitThreadCNode, 0, seL4_WordBits, seL4_CapInitThreadCNode, seL4_CapInitThreadTCB, seL4_WordBits, seL4_AllRights);

seL4_BootInfo中描述了许多初始的capability,也包括可用的空CSlot。

相关文章

  • 微内核 seL4 Capabilities

    capability的概念 capability是用于访问系统中的entity/object的独一无二的token...

  • 微内核 seL4 Untyped

    seL4的内存管理 在seL4中,除了少量静态内存属于内核,所有的物理内存都由用户态管理。在root task开始...

  • 微内核 seL4 Mapping

    虚拟内存 seL4不提供虚拟内存管理,除了那些用于操作硬件的paging structure。用户态必须有服务去负...

  • 容器安全-Capabilities

    Linux中的Capabilities Linux内核中的Capabilities特性用于划分特权集,以便进程可以...

  • seL4内核启动分析

    一、大概过程 seL4内核是遵循multiboot specification的,可以直接通过GRUB引导。在GR...

  • linux 驱动开发 - 内核模块

    一、Linux内核简介 1.宏内核与微内核 内核分为四大类:单内核(宏内核);微内核;混合内核;外内核。 宏内核(...

  • Appium-服务关键字

    General Capabilities These Capabilities span multiple dri...

  • Appium+python自动化21-DesiredCapabi

    Appium Desired Capabilities Desired Capabilities 是由 keys ...

  • 操作系统100问

    1.什么是微内核?万栩童\李明霞 内容:微内核定义?微内核包括哪些功能?相对于宏内核,操作系统采用微内核由什么好处...

  • Linux内核功能及模块应用

    内核设计体系:单内核、微内核Linux:单内核设计,但充分借鉴了微内核体系的设计的优点;为内核引入了模块化机制; ...

网友评论

      本文标题:微内核 seL4 Capabilities

      本文链接:https://www.haomeiwen.com/subject/egdjuktx.html