Skip to content

Latest commit

 

History

History
28 lines (23 loc) · 3 KB

plan.md

File metadata and controls

28 lines (23 loc) · 3 KB

OS训练营第三阶段选修

时间:2023-11-04~2023-12-03 课题:Rust for Linux 驱动模块开发 导师: XLY, CL

课题目标

学生选修该课题,可以学习到如何一步一步地开发一个Rust for Linux内核驱动;逐步积累并形成学习开发文档;进而有机会为rcore-os Rust操作系统社区以及Linux社区的发展,通过编写Rust驱动等方式贡献一份自己的力量。

考核方式

  • 通过课程练习和实习项目,进行成绩打分排名;
  • 阶段性练习及每周的引导 60%; 基于物理开发板/模拟器的Rust驱动开发项目 40%
  • 将会统计各位学员的姓名及仓库地址; 代码及运行结果截图请提交在各自练习的仓库; 结果截图中需出现自己的名字或Github ID

课题及实习的安排表

日期 导师 课程 练习 练习分数
第一周 基础 2023-11-6 XLY Rust for Linux的基本框架介绍 练习1: 获取Rust for Linux源码,配置环境并编译通过,并在模拟器中运行。 15%
第一周 基础 2023-11-9 CL Rust内核驱动模块的各个基础组成部分的学习,结合已有rust-for-linux案例驱动的学习 练习2: 编写一个简单的"Hello World"的Rust内核模块,并能加载运行输出。 15%
第二周 进阶 2023-11-13 CL 内核驱动的开发框架介绍,以网卡驱动为例 练习3: 基于Qemu模拟器上的e1000网卡驱动框架,填充驱动初始化函数,并可以自定义一个linux内核C函数在Rust网卡驱动模块中调用该函数。 15%
第二周 进阶 2023-11-16 XLY Rust网卡驱动的开发 练习4: 基于Qemu模拟器上的e1000网卡驱动框架,填充驱动的接收包和发送包函数,并可以加载运行,运行ping的发送与接收响应。 15%
第二周 进阶 练习3, 4(可选): 分析并复现rust-for-linux社区已实现的驱动案例,可复现运行并做个报告。 30%
第三周 实习准备 2023-11-20 XLY 实习项目安排介绍; Uart及VirtIO驱动项目讲解 对于实习项目,准备Rust for Linux在所选平台上的基本运行所需的工作,如引导启动所需的设备树,内存设备基地址等
第三周 实习准备 2023-11-23 CL 项目问题交流; 精简C语言版本驱动介绍 对于所选的驱动,如Uart或VirtIO驱动, 为下一步把最小化C版本驱动转换为Rust版本驱动做准备;精简其C代码, 使其保留最基本的运行功能;
第四周 项目实习 2023-11-27 XLY 课程内容回顾,实习项目交流 实习项目1 (可选): 在华山派开发板或树莓派模拟器上,适配Rust for Linux 6.6内核,并实现Rust Uart串口驱动,运行起来; 40%
第四周 项目实习 2023-11-30 CL 课程内容回顾,实习项目交流 实习项目2 (可选): 在Qemu模拟器上尝试把已有的rcore-os/virtio-drivers项目,移植适配于Rust for Linux 6.6内核,驱动运行起来; 40%