NJU-ProjectN/nemu 项目推荐
1. 项目基础介绍和主要编程语言
NJU-ProjectN/nemu 是一个为教学目的设计的简单但完整的系统级模拟器。该项目主要支持 x86、mips32、riscv32 和 riscv64 架构。NEMU 的核心代码主要使用 C 语言编写,同时也包含了一些 Makefile、Yacc 和 Lex 文件。
2. 项目的核心功能
NEMU 的核心功能包括:
- 小型监控器和简单调试器:支持单步执行、寄存器/内存检查和表达式评估。
- 差异测试:通过与参考设计(如 QEMU)进行差异测试来验证模拟器的正确性。
- CPU 核心:支持大多数常用指令,但不支持 x86 实模式和 x87 浮点指令,以及 mips32 CP1 浮点指令。
- 内存管理:支持内存分页和 TLB,但不支持保护机制。
- 设备模拟:模拟了串口、定时器、键盘、VGA 和音频设备,但这些设备大多简化和不可编程。
- I/O 管理:支持端口映射 I/O 和内存映射 I/O 两种方式。
3. 项目最近更新的功能
NEMU 最近的更新主要集中在以下几个方面:
- 指令集扩展:增加了对更多指令集的支持,特别是 riscv32 和 riscv64 架构的扩展。
- 调试功能增强:改进了调试器的功能,使其更加易用和强大。
- 设备模拟优化:对部分设备的模拟进行了优化,提高了模拟的准确性和效率。
- 文档更新:更新了项目的文档,提供了更详细的构建和使用指南。
通过这些更新,NEMU 在教学和研究中的应用价值得到了进一步提升。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



