gem5/gem5

GitHub: gem5/gem5

gem5 是一个模块化的计算机系统架构研究平台。

Stars: 2640 | Forks: 1857

# gem5 模拟器 这是 gem5 模拟器的仓库。它包含了模拟器的完整源代码以及所有测试和回归。 gem5 模拟器是一个模块化的计算机系统架构研究平台,涵盖了系统级架构以及处理器微架构。它主要用于评估新的硬件设计、系统软件更改以及编译时和运行时系统优化。 主要网站可在 找到。 ## 测试状态 **注意**:以下关于在 gem5 的 develop 分支上运行的测试: [![每日测试](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/9bd51c86e9101812.svg)](https://github.com/gem5/gem5/actions/workflows/daily-tests.yaml) [![每周测试](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/657e2489a1101817.svg)](https://github.com/gem5/gem5/actions/workflows/weekly-tests.yaml) [![编译器测试](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/95931446f4101823.svg)](https://github.com/gem5/gem5/actions/workflows/compiler-tests.yaml) ## 入门 一个好的起点是 ,有关构建模拟器和入门的更多信息,请参阅 。 ## 构建 gem5 要构建 gem5,您需要以下软件:g++ 或 clang、Python(gem5 链接到 Python 解释器)、SCons、zlib、m4,以及如果您想支持跟踪捕获和回放,则需要 protobuf。有关这些工具的最小版本详情,请参阅 。 一旦解决所有依赖项,执行 `scons build/ALL/gem5.opt` 以构建包含所有 gem5 ISA 的优化版本 gem5 二进制文件(`gem5.opt`)。如果您只想编译包含单个 ISA 的 gem5,可以将 `ALL` 替换为 ISA 的名称。有效选项包括 `ARM`、`NULL`、`MIPS`、`POWER`、`RISCV`、`SPARC` 和 `X86`。完整的选项列表可在 build_opts 目录中找到。 有关构建 gem5 的更多信息,请参阅 https://www.gem5.org/documentation/general_docs/building。 ## 源代码树 主要源代码树包括以下子目录: * build_opts:gem5 的预置默认配置 * build_tools:gem5 构建过程中使用的工具 * configs:示例模拟配置脚本 * ext:构建 gem5 所需的较少使用的外部包 * include:用于其他程序的包含文件 * site_scons:构建系统的模块化组件 * src:gem5 模拟器的源代码。C++ 源代码、Python 包装器和 Python 标准库都位于此目录中。 * system:模拟系统的可选系统软件的源代码 * tests:回归测试 * util:有用的实用程序和文件 ## gem5 资源 要运行全系统模拟,您可能需要编译的系统固件、内核二进制文件和一个或多个磁盘镜像,具体取决于 gem5 的配置和您要运行的工作负载类型。许多这些资源可以从 获取。 有关 gem5 资源的更多信息,请参阅 。 ## 获取帮助、报告错误和请求功能 我们为用户和开发者提供了多种渠道,用于获取帮助、报告错误、请求功能或参与社区讨论。以下是推荐使用的最常见渠道之一。 * **GitHub 讨论**:一个 GitHub 讨论页面。可以用来开始讨论或提问。可在 找到。 * **GitHub 问题**:一个 GitHub 问题页面,用于报告错误或请求功能。可在 找到。 * **Jira 问题跟踪器**:一个 Jira 问题跟踪器,用于报告错误或请求功能。可在 找到。 * **Slack**:一个具有各种频道的 Slack 服务器,gem5 社区可以参与各种讨论。请访问 加入。 * **gem5-users@gem5.org**:一个邮件列表,gem5 用户可以提问或开始讨论。要加入邮件列表,请访问 。 * **gem5-dev@gem5.org**:一个邮件列表,gem5 开发者可以提问或开始讨论。要加入邮件列表,请访问 。 ## 为 gem5 贡献 我们希望您喜欢使用 gem5。当适当的时候,我们建议您分享您对项目的贡献。 可以帮助您开始。更多信息可以在 CONTRIBUTING.md 文件中找到。
标签:C++, DNS解析, gem5, m4, protobuf, Python, SCons, zlib, 依赖管理, 回归测试, 处理器微架构, 开源项目, 微架构, 性能评估, 数据擦除, 无后门, 测试, 源代码, 研究平台, 硬件设计, 硬件设计评估, 系统级架构, 系统软件, 系统软件变更, 编译优化, 编译时优化, 计算机系统架构, 运行时优化, 逆向工具