项目简介
本项目重新实现了经典的Unix Version 6 (v6) 操作系统,名为xv6。它在结构和风格上遵循v6设计,使用ANSI C语言以适配现代RISC-V多处理器架构。项目主要为MIT的6.S081课程提供教学操作系统,重点用于虚拟内存和页表管理的实验。
项目的主要特性和功能
- 延迟内存分配:xv6内核的
sbrk()
系统调用不立即分配应用程序申请的内存,而是在实际使用时才分配,提高了内存使用效率。 - 缺页异常处理:捕获缺页异常,内核可在应用程序访问未分配内存时动态分配物理内存,并在页表中注册相应内存区域。
- 系统调用优化:修改
sys_sbrk()
、usertrap()
等关键函数支持延迟内存分配,处理参数为负、虚拟地址越界、内存不足等异常情况。 - 压力测试:修改内核代码,确保系统能通过包括
fork()
过程内存拷贝、系统调用内存分配等复杂场景的压力测试。
安装使用步骤
环境准备
安装qemu,并确保其支持riscv64-softmmu架构。
编译与运行
将本项目的源码下载到本地,在项目根目录下运行make qemu
命令,即可编译并启动xv6操作系统。
实验与调试
通过修改sys_sbrk()
、usertrap()
等函数,进一步实验和调试延迟内存分配的实现。使用echo hi
等命令进行基本功能测试,观察缺页异常的处理过程。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】