不同操作系统内核可重用的Rust Crate设计与实现
Rust 是一种“多范式安全系统编程语言”,在开源领域呈现出滚雪球般的势头不断壮大。当前已经出现了多种基于Rust的实验型操作系统项目,而且也已经出现在主流的操作系统中。2022年12月12日,Linux 6.1 正式发布。Linux 6.1 的一个主要升级是把已经开发近一年多的Rust for Linux子系统加入主席,这是对 Rust 在Linux内核上的重要突破。今后将可以使用Rust开发操作系统内核模块,并用于不同操作系统中,而Rus化的实时优化Linux内核和Rust RTOS将成为重要新技术方向。
本课程计划定期讨论和研究 “不同操作系统内核可重用的Rust Crate设计与实现 ,并基于Linux内核和Rust RTOS,着重开展以下三个研究子方向的技术工作:
内核特性研究:
- 如何快速启用Linux Rust Feature并运行测试
- 分析Rust在Linux 6.x内核里的用法
- 内核中Rust 与 C 的 ABI 兼容性与互操作系统性的研究
- 为linux其他子模块封装rust api,用rust重写子模块
- 完善Rust-for-Linux并提交补丁
- 实时操作系统(Linux RT-Preempt, RTOS等)关键技术研究
硬件驱动研究:
- 分析并设计实现面向virtio设备,可独立运行的基础Rust Device Driver Crate
- 用Rust重写Linux Device Drivers书中的例子,并可在Linux内核中运行
- 设计 OS kernel 设备驱动抽象库,让 基于Rust 开发各种OS的驱动更加方便易用
- 使用Rust编写各种嵌入式驱动模块,如串口、网络、GPU等
- 在基础Rust Device Driver Crate上,快速实现不同OS kernel上的设备驱动
异步内核编程研究:
- 研究 Rust for Linux 对异步内核编程的 “异步”支持
- 探索Linux 驱动模块的异步编程方式
- 分析异步网络 TCP/IP协议栈的设计与实现
- 分析异步文件系统的设计与实现
学习小组公约:
-
每周一、三、五的晚上8点开始,定为固定时间的学习小组讨论会。每次讨论会不少于1小时,不多于3小时。
-
第一期从2023.2.6开始,学习周期初步定为3周,学习目标是分工完成上面的研究课题,总结出关于这个课程的知识点大纲和时间进度安排表。
-
每个小组成员要求每周的学习小组讨论会都要参加,并力争有所输出分享。每次活动安排3人进行分享,每个分享时间以20-30分钟为宜。
参考信息:
- 基础Rust Device Driver Crate: virtio-drviers
- 基于基础Rust Device Driver Crate的操作系统
2023.01.08