seL4 内核服务、对象以及基本能力访问和控制

来源:互联网 发布:淘宝买虚拟产品 编辑:程序博客网 时间:2024/06/03 16:01

内核服务和对象

微内核提供了一些有限的原始服务,更多复杂的服务要在这些原始服务基础上像应用程序一样实现。以此种服务,此系统的功能可以被拓展而不用增加特权模式下的代码和复杂度,虽然在应用程序域潜在的支持相当广泛的服务。
seL4 内核基本支持的服务如下:

线程(Threads )是CPU支持应用程序运行的抽象化。

地址空间(Address spaces)是一块包含一个应用程序的虚拟内存空间,应用程序只能使用他们自己地址空间下的内存。

进程间交互(Inter-process communication{IPC})允许线程通过终端节点使用消息传递进行交流。

原始设备(device primitive)允许设备驱动像无特权应用程序一样实现。此内核输出硬件设备终端通过{IPC}《IPC 不知道的查!!!!》消息。

能力空间(capability space)存储着伴随他们的记录信息的内核服务的能力(即。。使用权利)

这一部分给了这些服务的概述,描述了内核对象如何被用户空间的应用程序所使用,以及描述了新对象如何被创建。

2.1 基本能力访问控制

seL4微内核提供了基本能力访问控制模型,访问控制管理内核的所有服务,为了执行一个操作,一个应用程序必须调用一个他所占有的能力,已经拥有足够的访问权限去请求服务。用这个,这个系统能够在隔离软件组件的条件下初始化,也能够被授权,通过选择性的给与特定的通信能力来控制组件间的通信。这使得软件组建的隔离得到了高度的保证,因为只有这些操作明确授权被能力占有所承认。

一个能力是一个不能伪造的令牌,参考一个特定的内核对象(如线程控制块《TCB》),和存储着控制调用什么方法的访问权限。从概念上讲,一个能力存储在一个应用程序的能力空间里。这个空间里的一个地址指向一个槽(slot)可能也可能不包含一个能力,一个应用程序可能指向一个能力,去请求一个内核服务,比如使用这个槽(slot)的地址去支持能力。这意味着,seL4 微内核能力模型是一个(种族隔离???segregated)的实例(或者分区)能力模型,能力被内和管理的地方。

能力空间被实现如一个内核管理的能力节点的有向图。(CNodes),一个能力节点是一个槽的表,一个每个槽都进一步包含能力节点的能力的地方。一个在能力空间的地址然后连接能力节点能力形成目标位置的路径。我们详细讨论能力节点对象在第三部分。

能力在能力空间中能够被复制和移动,也能够被发送通过进程间通信(IPC),这允许带着特定访问权限的应用程序的创建,给其他应用程序授权,传递给一个应用程序权限去新创建(或选择)内核服务。此外,能力可以铸造创建派生能力用原始能力的权限的一个子集(从不用更多的权限)。一个新的创造的能力能够被使用于部分授权。

能力也能够被撤销收回权力,撤销递归删除任何能力,已经派生了原始能力.此系统的能力的传播被一个take-grant(取-予)基本模型所控制。

0 0
原创粉丝点击