实验简介
更新日志
实验之前
环境部署
GDB 调试方法*
实验指导
实验指导零
摘要
创建项目
移除标准库依赖
移除运行时环境依赖
编译为裸机目标
生成内核镜像
调整内存布局
重写程序入口点
使用 QEMU 运行
接口封装和代码整理
小结
实验指导一
摘要
什么是中断
RISC-V 中的中断
程序运行状态
状态的保存与恢复
进入中断处理流程
时钟中断
小结
实验指导二
摘要
动态内存分配
物理内存探测
物理内存管理
小结
实验指导三
摘要
从虚拟地址到物理地址
修改内核
实现页表
实现内核重映射
页面置换*
小结
实验指导四
摘要
线程和进程
线程的创建
线程的切换
线程的结束
内核栈
线程调度
小结
实验指导五
摘要
设备树
virtio
驱动和块设备驱动
文件系统
小结
实验指导六
摘要
构建用户程序框架
打包为磁盘镜像
解析 ELF 文件并创建线程
实现系统调用
处理文件描述符
条件变量
小结
实验题
实验一:中断
实验二:内存分配
实验三:虚实地址转换
实验四(上):线程
实验四(下):线程调度
实验六:系统调用
开发笔记
文档代码划分
文档格式规范
代码格式规范
Published with GitBook
小结
小结
本章作为一个预备实验,用 Rust 实现了一个最小化的内核,并成功通过 QEMU 中的 OpenSBI 启动了我们的内核。在下一章中,我们会和硬件进一步打交道,实现中断机制。
results matching "
"
No results matching "
"
results matching "
"
No results matching "
"