---
layout: default
title: The gem5 simulator system
---
<header>
  <img src="{{ "/assets/img/gem5logo/Color/noBackground/vertical/gem5ColorVert.png" | prepend: site.baseurl }}" height="250px;">

  <br/>
  <a href="{{ site.posts.first.url }}"><button type="button" class="btn btn-primary btn-lg"><b>Latest News:</b> {{ site.posts.first.title }}</button></a>
  <br/>

  <p>
    The gem5 simulator is a modular platform for computer-system architecture research, encompassing system-level architecture as well as processor microarchitecture.
    gem5 is a <i>community led</i> project with an <a href=/governance/>open governance</a> model.
  </p>
  <p>
    gem5 was originally conceived for computer architecture research in academia, but it has grown to be used in computer system design by academia, industry for research, and in teaching.
  </p>

  <a href="{{ "/getting_started" | prepend: site.baseurl }}"><button type="button" class="btn btn-primary" href="">Get Started</button></a>
  <a href="https://gem5.googlesource.com/public/gem5"><button type="button" class="btn btn-outline-primary">Source</button></a>
  <a href="https://gem5-review.googlesource.com/"><button type="button" class="btn btn-outline-primary">Code Review</button></a>
  <a href="https://arxiv.org/abs/2007.03152"><button type="button" class="btn btn-outline-primary">gem5-20+ paper</button></a>

  <div class="testing-status">
    <div class="testing-title">
    <h3>Testing Status:</h3>
    </div>
    <div class="testing-info">
    <ul>
      <li><a href='https://jenkins.gem5.org/job/nightly/'><img src='https://jenkins.gem5.org/buildStatus/icon?job=nightly&style=plastic&subject=Nightly%20Tests%20ran%20${startTime}%20ago%20for%20${duration}'></a></li>
      <li><a href='https://jenkins.gem5.org/job/weekly/'><img src='https://jenkins.gem5.org/buildStatus/icon?job=weekly&style=plastic&subject=Weekly%20Tests%20ran%20${startTime}%20ago%20for%20${duration}'></a></li>
      <li><a href='https://jenkins.gem5.org/job/compiler-checks/'><img src='https://jenkins.gem5.org/buildStatus/icon?job=compiler-checks&style=plastic&subject=Compiler%20Tests%20ran%20${startTime}%20ago%20for%20${duration}'></a></li>
    </ul>
    </div>
  </div>

</header>

<div class="container">

  <div class="row">

    <div class="col">
      <div class="card">
        <div class="fav"><i class="fa fa-envelope"></i></div>
        <div class="card-body">
          <h5 class="card-title">Mailing Lists</h5>
          <p class="card-text">gem5 has two main mailing lists where you can ask for help or advice.</p>
          <a href="/mailing_lists/" class="btn btn-primary">Go to Mailing Lists</a>
        </div>
      </div>
    </div>

    <div class="col">
      <div class="card">
        <div class="fav"><i class="fa fa-graduation-cap"></i></div>
        <div class="card-body">
          <h5 class="card-title">Learning gem5</h5>
          <p class="card-text">Learn how to use gem5 and interact with the gem5 codebase.</p>
          <a href="/documentation/learning_gem5/introduction/" class="btn btn-primary">Go to Learning gem5</a>
        </div>
      </div>
    </div>

    <div class="col">
      <div class="card">
        <div class="fav"><i class="fa fa-code-fork"></i></div>
        <div class="card-body">
          <h5 class="card-title">Contributing</h5>
          <p class="card-text">Aid the gem5 project by becoming a contributor!</p>
          <a href="/contributing" class="btn btn-primary">Go to Contributing</a>
        </div>
      </div>
    </div>

    <div class="col">
      <div class="card">
        <div class="fav"><i class="fa fa-download"></i></div>
        <div class="card-body">
          <h5 class="card-title">Guest binaries</h5>
          <p class="card-text">Download guest binaries for Fullsystem and Syscall Emulation mode</p>
          <a href="/documentation/general_docs/fullsystem/guest_binaries" class="btn btn-primary">Go to Download page</a>
        </div>
      </div>
    </div>

    <div class="col">
      <div class="card">
        <div class="fav"><i class="fa fa-book"></i></div>
        <div class="card-body">
          <h5 class="card-title">Publications</h5>
          <p class="card-text">We're always happy to have people cite our work. See our publication list to see how gem5 is aiding computer architecture research.</p>
          <a href="/publications/" class="btn btn-primary">Go to Publications</a>
        </div>
      </div>
    </div>

    <div class="col">
      <div class="card">
        <div class="fav"><i class="fa fa-newspaper-o"></i></div>
        <div class="card-body">
          <h5 class="card-title">Blog</h5>
          <p class="card-text">Keep up-to-date with the latest gem5 news via our blog!</p>
          <a href="/blog" class="btn btn-primary">Go to Blog</a>
        </div>
      </div>
    </div>

    <div class="col">
      <div class="card">
        <div class="fav"><i class="fa fa-bug"></i></div>
        <div class="card-body">
          <h5 class="card-title">Issue Tracker</h5>
          <p class="card-text">View the latest gem5 bug reports or add your own!</p>
          <a href="https://gem5.atlassian.net" class="btn btn-primary">Go to Issue Tracker</a>
        </div>
      </div>
    </div>

  </div>

  <br><br>
  <hr>

  <h1 class="title"> Sponsors </h1>

  <div class="sponsor-ask">
    <a href="mailto:jlowepower@ucdavis.edu" class="btn btn-primary">Add your company to this list!</a>
  </div>

  <div class="row">

    <div class="col">
      <div class="card">
        <div class="card-body">
          <a href="https://www.nsf.gov"><img src="assets/img/external_logos/nsf.png" alt="NSF logo"></a>
          This project is funded in part by NSF through the CCRI program, award number CNS 1925724. <br/>
          <a href="https://www.ccrivo.org/">Click here for other CCRI-funded infrastructures</a>
        </div>
      </div>
    </div>

    <div class="col">
      <div class="card">
        <div class="card-body">
          <a href="https://www.google.com"><img src="assets/img/external_logos/google.png" alt="Google logo"></a>
          Google generously hosts the gem5 source code, Gerrit code review, and CI testing.
        </div>
      </div>
    </div>

  </div>


</div>

