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