实验要用到gem5模拟器,所以就简单看一下gem5源代码的结构。
源代码在这里
有需要的可以看官方文档
- build-opts:主要是构建不同构建配置的默认设置文件。例如:X86
- SConstruct:构建系统的一部分。作为build-opts目录
- configs:用python编写的模拟配置脚本。目录中的文件提供一些基本的预打包功能来帮助简化编写配置,并提供了一些示例,可以直接使用,也可在自己的脚本中使用。
- ext:gem5的依赖,并不是gem5的一部分。构建gem5所需的不太常见的外部软件包。
- src:gem5的源代码
- arch:ISA实现
- generic:在其他ISA中使用的通用文件。
- isa_parser.py:解析ISA描述的解析器.
- ISA directories:与给定ISA关联的文件
- OS directories:通常在SE模式下用于支持ISA/OS组合的代码。
- isa:ISA描述文件。
- base:可能对其他项目有用的常规数据结构。
- loader:用于加载二进制文件和读取符号表的代码。
- stats:用于保存统计信息并将数据写入文件或数据库的代码。
- vnc:VNC支持
- cpu:CPU模型
- dev:设备模型
- ISA directories:特定于给定ISA的设备模型
- doxygen:Doxygen模板和输出
- kern:特定于操作系统但与体系结构无关的代码(例如,数据结构的类型)。
- OS directories:特定于给定模拟操作系统的代码。
- mem:内存系统模型和基础架构
- cache:在经典内存系统中实现缓存模型的代码。
- ruby:实现ruby内存模型的代码。
- protocol:Ruby协议定义。
- slicc:slicc编译器。
- python:用于配置和更高级别功能的Python代码。
- sim:实现基本的基本模拟器功能的代码。
- arch:ISA实现
- system:用于模拟系统的固件或引导程序之类的低级软件
- alpha:Alpha控制台和palcode。
- arm:一个简单的ARM引导程序。
- tests:与gem5的回归测试有关的文件
- configs: 用于测试的常规配置。
- test-progs:每个ISA的“ Hello world”二进制文件,其他二进制文件则分别下载。
- quick,long:快速和长期回归输入,参考输出以及测试特定的配置文件(按测试排列)。
- util:实用程序脚本,程序和有用的文件不是gem5二进制文件的一部分,但在使用gem5时通常很有用。