Summary Introduction 第零章:实验环境说明 第一章:独立式可执行程序 [安装 nightly rust] 使用包管理器 cargo 创建 rust binary 项目 移除标准库依赖 [移除 runtime 依赖] 总结与展望 第二章:最小化内核 使用目标三元组描述目标平台 编译、生成内核镜像 使用链接脚本指定内存布局 [重写程序入口点 -start] [使用 Qemu 运行内核] 封装 SBI 接口 [实现格式化输出] 总结与展望 第三章:中断 rv64 中断介绍 [手动触发断点中断] 程序运行上下文环境 [实现上下文环境保存与恢复] [时钟中断] 总结与展望 第四章:内存管理 [物理内存探测与管理] [动态内存分配] 总结与展望 第五章:内存虚拟化 页表:从虚拟内存到物理内存 [内核初始映射] 内核重映射 内核重映射实现之一:页表 内核重映射实现之二:MemorySet [内核重映射实现之三:完结] 总结与展望 第六章:内核线程 线程状态与保存 线程切换 内核线程初始化 [内核线程创建与切换测试] 总结与展望 第七章:线程调度 线程池与线程管理 内核调度线程 idle 线程调度之 Round Robin 算法 [线程调度测试] 总结与展望 第八章:进程 [编写用户程序] 合并内核与应用程序 在内核中实现系统调用 创建虚拟内存空间 [创建进程] 总结与展望 第九章:文件系统 [使用文件系统] [实现记事本] [实现终端] [文件读写] 总结与展望 第十章:同步互斥 练习题 1. 中断异常 2. 物理内存管理 3. 虚拟内存管理 4. 线程管理 5. 用户进程(+ 虚拟内存管理 + 线程管理) 6. CPU 调度 7. 同步互斥 8. 文件系统 附录 内联汇编 安装 rust