littlebot
Published on 2025-04-11 / 0 Visits
0

【源码】基于C语言的NEMU模拟器项目

项目简介

NEMU(NJU Emulator)是为教学设计的简单但完整的x86全系统模拟器。此项目是天津大学智能与计算学院ICS(计算机系统导论)课程的编程作业,源自南京大学2016年的项目。主要用于模拟小型x86程序的运行,包含简单调试器和多种硬件设备模拟。

项目的主要特性和功能

  1. NEMU模拟器:具备小型监控器,支持单步执行、寄存器/内存检查等调试功能;CPU核心支持常用x86保护模式指令;模拟DRAM,含行缓冲和突发传输;有两级统一缓存;支持IA - 32分段和分页机制及TLB;处理IA - 32中断和异常;模拟定时器、键盘等6种设备;支持端口映射I/O和内存映射I/O两种I/O方式。
  2. 测试用例:包含一些小型C程序,用于测试NEMU实现。
  3. uClibc库:适用于嵌入式系统的C库,运行时支持需求少,适合NEMU。
  4. 简化版Nanos内核:单任务内核,有Ramdisk和IDE两种设备驱动、ELF32加载器、分页内存管理、简单文件系统和6种系统调用。
  5. 打字游戏:移植到NEMU的打字游戏,源自南京大学2013年的oslab0演示。
  6. NEMU - PAL:移植到NEMU的SDLPAL项目,由Wei Mingzhi的SDLPAL项目重构和移植而来。

安装使用步骤

  1. 下载源码:用户已下载本项目的源码文件。
  2. 编译NEMU:进入NEMU目录,执行make命令进行编译。
  3. 运行测试用例:使用编译好的NEMU模拟器运行testcase目录下的测试程序,验证NEMU功能。
  4. 运行内核和应用:编译并运行kernel目录下的简化版Nanos内核,以及typing gameNEMU - PAL目录下的应用。
  5. 调试和测试:使用NEMU自带的监控器和调试功能,对模拟器和应用进行调试和测试。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】