seL4_BootInfo的作用
seL4 Kernel是微内核架构。此类架构的一个特点是,运行在高特权级别的内核只保留最基础的OS机制,而将之外的功能交给用户空间来实现。在这种思想下,用户空间的组件想要完成某些OS功能,则必须获得系统的一些核心资源或信息才能完成功能构建。在seL4中,内核将这些系统资源描述到seL4_BootInfo中,再把seL4_BootInfo传递给用户进程,这样就完成了资源的交接。
内部原理
seL4内核启动的最后一个任务,是要启动root task。启动过程实际上就是完成root task的进程构建,如为其构造页表,解析ELF镜像,为其建立代码段的映射,构建tcb等,在这个过程中,内核会分配出合适的内存,并在这块内存上构建seL4_BootInfo结构,之后将系统资源信息数据填充进这个结构中。并将这个结构体作为参数传递给root task。
seL4_BootInfo的定义
以下是一个seL4_BootInfo的通常示例。不同的sel4内核配置可能会应影响到这个结构体的定义。如开启MCS时,seL4_BootInfo会多出一些数据项。
typedef struct seL4_BootInfo {
seL4_Word extraLen