The official repository for the gem5 computer-system architecture simulator.
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
misc: clean up devcontainer extensions and features (#2813) 1. ms-vscode.cpptools and ms-vscode.cpptools-themes are part of ms-vscode.cpptools-extension-pack. So they are redundant 2. VisualStudioExptTeam.vscodeintellicode has been [deprecated and recommended to be uninstalled](https://github.com/MicrosoftDocs/intellicode/commit/f192b3d3ba36dcf1bccff1a810b433f1bbf16c0d) 3. devcontainers-contrib has been renamed to devcontainers-extra, see [features spec](https://containers.dev/features) | 6 个月前 | |
tests: Remove pointless cache restore | 6 个月前 | |
misc: Add useful workspace settings for GitHub and PR extensions (#2228) Introduce new workspace settings for GitHub and pull request management in VSCode, enhancing the development experience when working with a fork of gem5 in VSCode. --------- Co-authored-by: Erin Le <ejle@ucdavis.edu> | 11 个月前 | |
tests,scons: Add VIPER & VEGA to ALL/gem5.opt, & update tests | 1 年前 | |
scons: Update build_tools to enable importing (#2409) This updates the scripts in build_tools to use if __name__=="__main__". It factors out the main functions to allow them to be used from other scripts. The purpose is to enable code sharing in the case we're not using the importer. Signed-off-by: Jason Lowe-Power <jlowepower@google.com> Co-authored-by: Jason Lowe-Power <jlowepower@google.com> | 11 个月前 | |
后续 phase 我已经开始推进到 Phase 5: gem5 真实 fault injector,但目前还在一个“代码已落地、真实验证待完成”的中间状态。 这轮已经完成的代码方向是: - 在 gem5 里为 CPU 侧增加最小注入接口准备: - gem5/src/cpu/BaseCPU.py - gem5/src/cpu/base.hh - gem5/src/cpu/base.cc - 升级 fault request 合同: - gem5/configs/example/arm/sdc_fault_request.py - 开始把 sdc_kunpeng920_se.py 改成“可脚本化真实注入”的模式: - 解析 fault_target - 判断 implemented_in_script - 预留“先 simulate 到 fault_tick,再注入,再继续 simulate”的路径 我还专门做了运行时探针,确认了几件关键事实: - System / ArmSystem 的 Python 层没有直接暴露 threads - SimpleBoard 路径下拿到的是 stdlib board,不适合直接从 root.system 做注入 - stdlib processor/core 可以拿到 BaseCPU simobject,这也是我把真实注入接口转移到 BaseCPU 的原因 当前真正的阻塞点不是设计,而是 gem5 需要一次完整增量重编来把新的 pybind/C++ 方法带进 gem5.opt。我已经找到能让它通过 Python 检查的构建组合: - CC=/usr/bin/cc - CXX=/usr/bin/c++ - PYTHON_CONFIG=/opt/homebrew/bin/python3-config - 同时清掉 conda 的交叉编译环境变量 这轮编译已经不再卡在 Python embed 检查,而是在正常进行全树增量重建,但还没有等到最终链接完成,所以我还不能诚实地说 Phase 5 已真实验证通过。 当前状态可以总结为: - Phase 2:真实端到端已通过 - Phase 4:真实多 fault campaign 已通过 - Phase 5:实现已开始,验证前最后一步是等 gem5.opt 重编完成,再跑“真实寄存器位翻转注入”验证 如果你继续,我下一步就只做一件事:盯住 gem5 编译完成,然后立刻跑 Phase 5 的真实注入 probe。 Signed-off-by: WangxuMarshall <wangxumarshall@qq.com> Entire-Checkpoint: 6bde5bb60541 | 3 个月前 | |
misc: Add sphinx stdlib documentation (#335) This PR adds documentation to the standard library using Sphinx. For details on how the documentation was generated, refer to https://gem5.atlassian.net/browse/GEM5-1314. Currently, some modules like dramsys and mesi_three_level appear as blank pages. To view the current state of the documentation locally, run: cd docs/_build/html; python3 -m http.server 8000 --------- Co-authored-by: ivanaamit <ivanamit91@gmail.com> | 1 年前 | |
tests,ext: Add SSL to testlib resource url | 6 个月前 | |
misc: define default hypercall ids in new header (#2467) | 11 个月前 | |
scons: use --git-common-dir to detect hooks (#2024) To detect if pre-commit hooks are installed during compilation, the command git rev-parse --git-dir is used which return the path to the .git directory of current repository. However, when using git worktree the above command returns for linked-worktree: <original repo>/.git/worktrees/<name of worktree> But hooks are shared between all worktree and situated in <original repo>.git/hooks/ and so, scons will always ask to add pre-commit hooks on compilation even if they are already installed. Using --git-common-dir instead of --git-common will return the path to <original repo>/.git which patch that bug. | 1 年前 | |
后续 phase 我已经开始推进到 Phase 5: gem5 真实 fault injector,但目前还在一个“代码已落地、真实验证待完成”的中间状态。 这轮已经完成的代码方向是: - 在 gem5 里为 CPU 侧增加最小注入接口准备: - gem5/src/cpu/BaseCPU.py - gem5/src/cpu/base.hh - gem5/src/cpu/base.cc - 升级 fault request 合同: - gem5/configs/example/arm/sdc_fault_request.py - 开始把 sdc_kunpeng920_se.py 改成“可脚本化真实注入”的模式: - 解析 fault_target - 判断 implemented_in_script - 预留“先 simulate 到 fault_tick,再注入,再继续 simulate”的路径 我还专门做了运行时探针,确认了几件关键事实: - System / ArmSystem 的 Python 层没有直接暴露 threads - SimpleBoard 路径下拿到的是 stdlib board,不适合直接从 root.system 做注入 - stdlib processor/core 可以拿到 BaseCPU simobject,这也是我把真实注入接口转移到 BaseCPU 的原因 当前真正的阻塞点不是设计,而是 gem5 需要一次完整增量重编来把新的 pybind/C++ 方法带进 gem5.opt。我已经找到能让它通过 Python 检查的构建组合: - CC=/usr/bin/cc - CXX=/usr/bin/c++ - PYTHON_CONFIG=/opt/homebrew/bin/python3-config - 同时清掉 conda 的交叉编译环境变量 这轮编译已经不再卡在 Python embed 检查,而是在正常进行全树增量重建,但还没有等到最终链接完成,所以我还不能诚实地说 Phase 5 已真实验证通过。 当前状态可以总结为: - Phase 2:真实端到端已通过 - Phase 4:真实多 fault campaign 已通过 - Phase 5:实现已开始,验证前最后一步是等 gem5.opt 重编完成,再跑“真实寄存器位翻转注入”验证 如果你继续,我下一步就只做一件事:盯住 gem5 编译完成,然后立刻跑 Phase 5 的真实注入 probe。 Signed-off-by: WangxuMarshall <wangxumarshall@qq.com> Entire-Checkpoint: 6bde5bb60541 | 3 个月前 | |
arch-arm: Update bootloader to set SCR_EL3.HXEN bit to 1 (#2130) This PR updates the ARM bootloader to set the SCR_EL3.HXEN bit (bit 38) to 1. ### Details - Sets SCR_EL3.HXEN (bit 38) to 1 in the bootloader. - Aligns with ARM's specifications: [ARM Documentation – SCR_EL3 Register](https://developer.arm.com/documentation/ddi0601/2025-03/AArch64-Registers/SCR-EL3--Secure-Configuration-Register) ### Fixes Fixes #2116. | 1 年前 | |
Factor gem5 ARM64 fault request helpers | 3 个月前 | |
util-docker: Set Docker image tag to 'v25-1' | 6 个月前 | |
misc: split single line loop (#2542) PR #2494 forced braces around control statement (if/else, for, do/while) and short if to be on multiple line. This commit also force short loops to be on multiple line. Before: c for (auto it: vec) { it.doSomething(); } After: c for (auto it: vec) { it.doSomething(); } | 10 个月前 | |
misc: Add black update change to .git-blame-ignore-rev Change-Id: Ief04aec128bc48e66b79fc2f5c474948dd5eb9eb | 2 年前 | |
misc: fix include paths (#2421) Change-Id: I9f6a602ccd09a4898f2e932459480dad63b17782 Co-authored-by: Flyji Hsiao <hchsiao@google.com> | 11 个月前 | |
misc: Update .mailmap file (#739) The .mailmap file is designed to maintain a record of unique contributors, aiming for a single identifier for each person. What is included in this file does not impact or alter commits; rather, it just merges the counts for all commits by one person under a single name. | 2 年前 | |
misc: [pre-commit.ci] pre-commit autoupdate (#2770) <!--pre-commit.ci start--> updates: - [github.com/asottile/pyupgrade: v3.21.1 → v3.21.2](https://github.com/asottile/pyupgrade/compare/v3.21.1...v3.21.2) <!--pre-commit.ci end--> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> | 7 个月前 | |
misc: Add a code of conduct This file codifies our current unofficial policies. This doesn't change the community in any way except for clarifying our policies. This was modeled off of https://www.contributor-covenant.org/. Change-Id: Ib976636b490bbe4d46bf79260e6a345b46c02e2c Signed-off-by: Jason Lowe-Power <jason@lowepower.com> Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/30954 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Maintainer: Jason Lowe-Power <power.jg@gmail.com> Tested-by: kokoro <noreply+kokoro@google.com> | 5 年前 | |
misc: Sync CONTRIBUTING.md with website This change syncs the repo's contributing documentation with that of the website's contributing documentation: https://www.gem5.org/contributing From now on we'll attempt to keep the repo's CONTRIBUTING.md documentation in sync with that on the website. Change-Id: I2c91e6dd5cd7a9b642377878b007d7da3f0ee2ad | 2 年前 | |
ruby: fix and/or precedence in slicc The slicc compiler currently treats && and || with the same precedence. This is highly non-intuitive to people used to C, and was probably an error. This patch makes && bind tighter than ||. For example, previously: if (A || B && C) compiled to: if ((A || B) && C) With this patch, it compiles to: if (A || (B && C)) Change-Id: Idbbd5b50cc86a8d6601045adc14a253284d7b791 Signed-off-by: Lena Olson (leolson@google.com) Reviewed-on: https://gem5-review.googlesource.com/2168 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Reviewed-by: Joe Gross <criusx@gmail.com> Reviewed-by: Sooraj Puthoor <puthoorsooraj@gmail.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> [ Rebased onto master ] Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> | 9 年前 | |
misc: Add KCONFIG.md file which talks about Kconfig files. There are some minor aspects about how Kconfig files are used in gem5 which are a little different from how they are documented online or are used in other projects. Document that in this file. Change-Id: Ib981d1e265cf466d453071b33820d6baa24e17d4 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/58634 Reviewed-by: Jason Lowe-Power <power.jg@gmail.com> Maintainer: Jason Lowe-Power <power.jg@gmail.com> Tested-by: kokoro <noreply+kokoro@google.com> | 4 年前 | |
copyright: Add code for finding all copyright blocks and create a COPYING file The end of the COPYING file was generated with: % python ./util/find_copyrights.py configs src system tests util Update -C command line option to spit out COPYING file | 14 年前 | |
misc: update GPU maintainters (#1411) Add Matt Sinclair to GPU maintainers for various GPU-related maintainer labels. Change-Id: Iaadeaff1318ff24664be9ff0bb14f9ce4da93086 | 1 年前 | |
misc: Fix typo in README.md (#1763) | 1 年前 | |
misc: Update release notes for v25.1 | 6 个月前 | |
misc: Removing WarningAsError compilation error for v25.1 | 6 个月前 | |
misc: Add Pyunit Test info to TESTING.md Change-Id: Ibff77963653600ac7c9d706edca882d95e5c47df | 2 年前 | |
misc: bump tqdm from 4.66.6 to 4.67.1 (#1827) Bumps [tqdm](https://github.com/tqdm/tqdm) from 4.66.6 to 4.67.1. Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> | 1 年前 | |
python,misc: Add isort to pre-commit Change-Id: I391a8948f0817bd5c6a9fe8a4c3e4fed07a98c49 | 2 年前 | |
misc: bump pre-commit from 4.3.0 to 4.5.0 (#2790) Bumps [pre-commit](https://github.com/pre-commit/pre-commit) from 4.3.0 to 4.5.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pre-commit/pre-commit/releases">pre-commit's releases</a>.</em></p> <blockquote> <h2>pre-commit v4.5.0</h2> <h3>Features</h3> <ul> <li>Add <code>pre-commit hazmat</code>. <ul> <li><a href="https://redirect.github.com/pre-commit/pre-commit/issues/3585">#3585</a> PR by <a href="https://github.com/asottile"><code>@asottile</code></a>.</li> </ul> </li> </ul> <h2>pre-commit v4.4.0</h2> <h3>Features</h3> <ul> <li>Add <code>--fail-fast</code> option to <code>pre-commit run</code>. <ul> <li><a href="https://redirect.github.com/pre-commit/pre-commit/issues/3528">#3528</a> PR by <a href="https://github.com/JulianMaurin"><code>@JulianMaurin</code></a>.</li> </ul> </li> <li>Upgrade <code>ruby-build</code> / <code>rbenv</code>. <ul> <li><a href="https://redirect.github.com/pre-commit/pre-commit/issues/3566">#3566</a> PR by <a href="https://github.com/asottile"><code>@asottile</code></a>.</li> <li><a href="https://redirect.github.com/pre-commit/pre-commit/issues/3565">#3565</a> issue by <a href="https://github.com/MRigal"><code>@MRigal</code></a>.</li> </ul> </li> <li>Add <code>language: unsupported</code> / <code>language: unsupported_script</code> as aliases for <code>language: system</code> / <code>language: script</code> (which will eventually be deprecated). <ul> <li><a href="https://redirect.github.com/pre-commit/pre-commit/issues/3577">#3577</a> PR by <a href="https://github.com/asottile"><code>@asottile</code></a>.</li> </ul> </li> <li>Add support docker-in-docker detection for cgroups v2. <ul> <li><a href="https://redirect.github.com/pre-commit/pre-commit/issues/3535">#3535</a> PR by <a href="https://github.com/br-rhrbacek"><code>@br-rhrbacek</code></a>.</li> <li><a href="https://redirect.github.com/pre-commit/pre-commit/issues/3360">#3360</a> issue by <a href="https://github.com/JasonAlt"><code>@JasonAlt</code></a>.</li> </ul> </li> </ul> <h3>Fixes</h3> <ul> <li>Handle when docker gives <code>SecurityOptions: null</code>. <ul> <li><a href="https://redirect.github.com/pre-commit/pre-commit/issues/3537">#3537</a> PR by <a href="https://github.com/asottile"><code>@asottile</code></a>.</li> <li><a href="https://redirect.github.com/pre-commit/pre-commit/issues/3514">#3514</a> issue by <a href="https://github.com/jenstroeger"><code>@jenstroeger</code></a>.</li> </ul> </li> <li>Fix error context for invalid <code>stages</code> in <code>.pre-commit-config.yaml</code>. <ul> <li><a href="https://redirect.github.com/pre-commit/pre-commit/issues/3576">#3576</a> PR by <a href="https://github.com/asottile"><code>@asottile</code></a>.</li> </ul> </li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md">pre-commit's changelog</a>.</em></p> <blockquote> <h1>4.5.0 - 2025-11-22</h1> <h3>Features</h3> <ul> <li>Add <code>pre-commit hazmat</code>. <ul> <li><a href="https://redirect.github.com/pre-commit/pre-commit/issues/3585">#3585</a> PR by <a href="https://github.com/asottile"><code>@asottile</code></a>.</li> </ul> </li> </ul> <h1>4.4.0 - 2025-11-08</h1> <h3>Features</h3> <ul> <li>Add <code>--fail-fast</code> option to <code>pre-commit run</code>. <ul> <li><a href="https://redirect.github.com/pre-commit/pre-commit/issues/3528">#3528</a> PR by <a href="https://github.com/JulianMaurin"><code>@JulianMaurin</code></a>.</li> </ul> </li> <li>Upgrade <code>ruby-build</code> / <code>rbenv</code>. <ul> <li><a href="https://redirect.github.com/pre-commit/pre-commit/issues/3566">#3566</a> PR by <a href="https://github.com/asottile"><code>@asottile</code></a>.</li> <li><a href="https://redirect.github.com/pre-commit/pre-commit/issues/3565">#3565</a> issue by <a href="https://github.com/MRigal"><code>@MRigal</code></a>.</li> </ul> </li> <li>Add <code>language: unsupported</code> / <code>language: unsupported_script</code> as aliases for <code>language: system</code> / <code>language: script</code> (which will eventually be deprecated). <ul> <li><a href="https://redirect.github.com/pre-commit/pre-commit/issues/3577">#3577</a> PR by <a href="https://github.com/asottile"><code>@asottile</code></a>.</li> </ul> </li> <li>Add support docker-in-docker detection for cgroups v2. <ul> <li><a href="https://redirect.github.com/pre-commit/pre-commit/issues/3535">#3535</a> PR by <a href="https://github.com/br-rhrbacek"><code>@br-rhrbacek</code></a>.</li> <li><a href="https://redirect.github.com/pre-commit/pre-commit/issues/3360">#3360</a> issue by <a href="https://github.com/JasonAlt"><code>@JasonAlt</code></a>.</li> </ul> </li> </ul> <h3>Fixes</h3> <ul> <li>Handle when docker gives <code>SecurityOptions: null</code>. <ul> <li><a href="https://redirect.github.com/pre-commit/pre-commit/issues/3537">#3537</a> PR by <a href="https://github.com/asottile"><code>@asottile</code></a>.</li> <li><a href="https://redirect.github.com/pre-commit/pre-commit/issues/3514">#3514</a> issue by <a href="https://github.com/jenstroeger"><code>@jenstroeger</code></a>.</li> </ul> </li> <li>Fix error context for invalid <code>stages</code> in <code>.pre-commit-config.yaml</code>. <ul> <li><a href="https://redirect.github.com/pre-commit/pre-commit/issues/3576">#3576</a> PR by <a href="https://github.com/asottile"><code>@asottile</code></a>.</li> </ul> </li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pre-commit/pre-commit/commit/1af6c8fa9502336c6977c2ff3e79185bd97a6e57"><code>1af6c8f</code></a> v4.5.0</li> <li><a href="https://github.com/pre-commit/pre-commit/commit/3358a3b54077cd8c8c99618aed003b771a21cb65"><code>3358a3b</code></a> Merge pull request <a href="https://redirect.github.com/pre-commit/pre-commit/issues/3585">#3585</a> from pre-commit/hazmat</li> <li><a href="https://github.com/pre-commit/pre-commit/commit/bdf68790b78158268bbc8482f76491a61d75809a"><code>bdf6879</code></a> add pre-commit hazmat</li> <li><a href="https://github.com/pre-commit/pre-commit/commit/e436690f140cbbe1d0f359654edf3ab9ecb8da2d"><code>e436690</code></a> Merge pull request <a href="https://redirect.github.com/pre-commit/pre-commit/issues/3584">#3584</a> from pre-commit/exitstack</li> <li><a href="https://github.com/pre-commit/pre-commit/commit/8d34f95308fc4c14dea3d3e90153acfdaf55e2de"><code>8d34f95</code></a> use ExitStack instead of start + stop</li> <li><a href="https://github.com/pre-commit/pre-commit/commit/9c7ea88ab95cb063cb0f0b74f395ff7b9cdbe0c5"><code>9c7ea88</code></a> Merge pull request <a href="https://redirect.github.com/pre-commit/pre-commit/issues/3583">#3583</a> from pre-commit/forward-compat-map-manifest</li> <li><a href="https://github.com/pre-commit/pre-commit/commit/844dacc168d68a32553ecf8a99178ab395fdb11e"><code>844dacc</code></a> add forward-compat error message</li> <li><a href="https://github.com/pre-commit/pre-commit/commit/6a1d543e523a02bbaad43da7df594cedff242abd"><code>6a1d543</code></a> Merge pull request <a href="https://redirect.github.com/pre-commit/pre-commit/issues/3582">#3582</a> from pre-commit/move-gc-back</li> <li><a href="https://github.com/pre-commit/pre-commit/commit/66278a9a0b69a69fde820d2b85a7e198eae52981"><code>66278a9</code></a> move logic for gc back to commands.gc</li> <li><a href="https://github.com/pre-commit/pre-commit/commit/1b32c50bc7e2f6b603b7ce26ecdf67c9c9dee3c6"><code>1b32c50</code></a> Merge pull request <a href="https://redirect.github.com/pre-commit/pre-commit/issues/3579">#3579</a> from pre-commit/pre-commit-ci-update-config</li> <li>Additional commits viewable in <a href="https://github.com/pre-commit/pre-commit/compare/v4.3.0...v4.5.0">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - @dependabot rebase will rebase this PR - @dependabot recreate will recreate this PR, overwriting any edits that have been made to it - @dependabot merge will merge this PR after your CI passes on it - @dependabot squash and merge will squash and merge this PR after your CI passes on it - @dependabot cancel merge will cancel a previously requested merge and block automerging - @dependabot reopen will reopen this PR if it is closed - @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency - @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> | 6 个月前 |
gem5 模拟器
本仓库包含 gem5 模拟器的完整源代码、所有测试及回归测试相关内容。
gem5 模拟器是一个用于计算机系统架构研究的模块化平台,涵盖系统级架构和处理器微架构。它主要用于评估新的硬件设计、系统软件变更以及编译时和运行时系统优化。
官方网站地址:http://www.gem5.org。
测试状态
注意:以下测试状态基于 gem5 的 develop 分支:https://github.com/gem5/gem5/tree/develop。
入门指南
建议从 http://www.gem5.org/about 开始了解。有关构建模拟器和入门的更多信息,请参阅 http://www.gem5.org/documentation 和 http://www.gem5.org/documentation/learning_gem5/introduction。
构建 gem5
构建 gem5 需要以下软件:g++ 或 clang、Python(gem5 会链接 Python 解释器)、SCons、zlib、m4。如果需要跟踪捕获和回放支持,还需 protobuf。有关这些工具的最低版本要求,请详见 http://www.gem5.org/documentation/general_docs/building。
解决所有依赖后,执行 scons build/ALL/gem5.opt 可构建包含所有 gem5 ISA 的优化版本二进制文件(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 的配置以及您尝试运行的工作负载类型,您可能需要已编译的系统固件、内核二进制文件和一个或多个磁盘镜像。许多此类资源可从 https://resources.gem5.org 获取。
有关 gem5 资源的更多信息,请参见 https://www.gem5.org/documentation/general_docs/gem5_resources/。
获取帮助、报告错误和请求功能
我们为用户和开发人员提供了多种渠道,以获取帮助、报告错误、请求功能或参与社区讨论。以下是我们推荐使用的一些最常用渠道。
- GitHub Discussions:GitHub 讨论页面。可用于发起讨论或提问。网址为 https://github.com/orgs/gem5/discussions。
- GitHub Issues:用于报告错误或请求功能的 GitHub 问题页面。网址为 https://github.com/gem5/gem5/issues。
- Jira Issue Tracker:用于报告错误或请求功能的 Jira 问题跟踪器。网址为 https://gem5.atlassian.net/。
- Slack:一个 Slack 服务器,设有多个频道,供 gem5 社区参与各种讨论。请访问 https://www.gem5.org/join-slack 加入。
- gem5-users@gem5.org:供 gem5 用户提问或发起讨论的邮件列表。要加入该邮件列表,请访问 https://www.gem5.org/mailing_lists。
- gem5-dev@gem5.org:供 gem5 开发人员提问或发起讨论的邮件列表。要加入该邮件列表,请访问 https://www.gem5.org/mailing_lists。
为 gem5 做贡献
我们希望您能享受使用 gem5 的过程。在合适的情况下,我们建议您分享对本项目的贡献。https://www.gem5.org/contributing 可以帮助您入门。更多信息请参见 CONTRIBUTING.md 文件。