reL4异步微内核设计与实现

异步微内核设计与实现 #

微内核在安全性、稳定性和模块化方面相比于宏内核有着极大的优势。随着微内核生态的发展,部分应用需要进行大量而频繁的系统调用和进程间通信(IPC),然而以seL4为代表的现代微内核支持的同步系统调用和IPC会产生大量的特权级切换,此外,由于同步调用的阻塞等待导致系统无法充分利用多核的性能,虽然微内核对异步通知有一定的支持,但仍需要内核进行转发,其中的特权级切换开销在某些平台和场景下将造成不可忽视的开销。

本文聚焦微内核的异步通信机制,基于用户态中断技术,通过兼容capability机制和异步通信接口来改造seL4的通知机制,设计了U-notification,使得通知无需通过内核转发,减少特权级切换的开销。同时利用U-notification,借助共享内存和异步编程机制,设计了无需陷入内核的异步系统调用和异步IPC框架,在提升用户态并发度的同时,减少特权级的切换次数。

大纲如下:

  • 项目背景
    • seL4基本介绍
    • 用户态中断
    • Rust异步机制
    • IPC优化手段
  • 系统设计
    • U-notification
    • 异步IPC
    • 异步系统调用
  • 模块与接口
    • 内核对象和Capability机制。
    • VSpace
    • Task Schedule
    • IPC
    • Interrupt
  • 性能评估
  • 总结与展望