项目简介
本项目是南京大学计算机科学与技术系《计算机系统导论》课程的编程作业。主要包含名为NEMU的x86模拟器,以及测试用例、嵌入式C库、简化版操作系统内核、打字游戏和NEMU平台上的游戏模拟器等辅助组件。旨在通过实际编程和模拟,加深学生对计算机系统工作原理的理解。
项目的主要特性和功能
NEMU
- x86模拟器:支持大部分常用保护模式下的x86指令。
- 调试器:具备单步执行、寄存器/内存检查、表达式求值、监视点和回溯等功能。
- 内存管理:包含行缓冲、突发传输、两级统一缓存、分段和分页机制(不支持保护)。
- 中断和异常处理:支持IA - 32中断和异常(不支持保护)。
- 设备模拟:涵盖定时器、键盘、VGA、串口、IDE硬盘和i8259 PIC中断控制器。
测试用例
提供小型C程序用于测试NEMU的实现。
newlib
嵌入式C库,适用于NEMU,提供最小化的运行时支持。
内核
简化版的Nanos操作系统,支持RAM磁盘和IDE设备驱动、ELF32加载器、分页内存管理、简单文件系统(固定数量和大小的文件,无目录)和6个系统调用。
打字游戏
移植到NEMU的打字游戏,用于教学演示。
NEMU - PAL
基于SDLPAL的游戏模拟器,经过重构和移植到NEMU。
安装使用步骤
假设用户已经下载了本项目的源码文件。
1. 进入项目目录:
bash
cd ics2015
2. 编译NEMU:
bash
cd NEMU
make
3. 运行测试用例:
bash
cd testcase
./run_tests.sh
4. 编译和运行内核:
bash
cd kernel
make
./run_kernel.sh
5. 运行打字游戏:
bash
cd typing_game
make
./typing_game
6. 运行NEMU - PAL:
bash
cd NEMU - PAL
make
./nemu - pal
通过以上步骤,用户可以体验和测试NEMU及其相关组件的功能,进一步理解计算机系统的工作原理。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】