异步微内核设计与实现 #
微内核在安全性、稳定性和模块化方面相比于宏内核有着极大的优势。随着微内核生态的发展,部分应用需要进行大量而频繁的系统调用和进程间通信(IPC),然而以seL4为代表的现代微内核支持的同步系统调用和IPC会产生大量的特权级切换,此外,由于同步调用的阻塞等待导致系统无法充分利用多核的性能,虽然微内核对异步通知有一定的支持,但仍需要内核进行转发,其中的特权级切换开销在某些平台和场景下将造成不可忽视的开销。
本文聚焦微内核的异步通信机制,基于用户态中断技术,通过兼容capability机制和异步通信接口来改造seL4的通知机制,设计了U-notification,使得通知无需通过内核转发,减少特权级切换的开销。同时利用U-notification,借助共享内存和异步编程机制,设计了无需陷入内核的异步系统调用和异步IPC框架,在提升用户态并发度的同时,减少特权级的切换次数。
大纲如下:
- 项目背景
- seL4基本介绍
- 用户态中断
- Rust异步机制
- IPC优化手段
- 系统设计
- U-notification
- 异步IPC
- 异步系统调用
- 模块与接口
- 内核对象和Capability机制。
- VSpace
- Task Schedule
- IPC
- Interrupt
- 性能评估
- 总结与展望