项目简介
本项目是对经典Unix Version 6 (v6)操作系统的重新实现,名为xv6。它在结构和风格上遵循v6,针对现代RISC-V多处理器架构进行了优化,使用ANSI C语言编写。主要用于教学,适用于MIT的6.1810课程,帮助学生理解操作系统的基础原理和实现。
项目的主要特性和功能
- 内存管理:实现用户态动态内存分配器,包含
mm_init
、mm_malloc
、mm_free
和mm_realloc
函数,支持内存动态分配与释放。 - 系统调用:设计并实现共享内存页的系统调用,支持不同进程间共享内存页的创建、绑定、读写、释放和配置查询。
- 进程管理:支持进程的创建、调度和同步,提供基本进程管理功能。
- 文件系统:实现基本的文件系统功能,可进行文件和目录的创建、读取和写入。
- 设备驱动:提供UART和virtio磁盘驱动,支持与硬件的基本交互。
安装使用步骤
环境准备
安装支持riscv64-softmmu的QEMU模拟器。
编译和运行
- 复制项目代码到本地。
- 在项目根目录下运行
make qemu
命令,启动xv6操作系统。
测试动态内存分配器
在xv6终端中运行ummalloc_test <tracefile>
命令,测试动态内存分配器的功能。traces
文件夹中包含多个测试样例。
测试共享内存页系统调用
根据任务2的要求,设计并实现共享内存页的系统调用,并通过CR(Code Review)进行功能验证。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】