# Linux Kernel Module Cheat

## 24. gem5

Getting started at: Section 2.4, “gem5 Buildroot setup”.

gem5 has a bunch of crappiness, mostly described at: gem5 vs QEMU, but it does deserve some credit on the following points:

- insanely configurable system topology from Python without recompiling, made possible in part due to a well defined memory packet structure that allows adding caches and buses transparently

- each micro architectural model (gem5 CPU types) works with all ISAs

- gem5 vs QEMU

- gem5 run benchmark

- gem5 system parameters

- gem5 kernel command line parameters

- gem5 GDB step debug

- gem5 checkpoint

- Pass extra options to gem5

- m5ops

- gem5 arm Linux kernel patches

- m5out directory

- m5term

- gem5 Python scripts without rebuild

- gem5 fs_bigLITTLE

- gem5 in-tree tests

- gem5 simulate() limit reached

- gem5 build options

- gem5 CPU types

- gem5 ARM platforms

- gem5 upstream images

- gem5 bootloaders

- gem5 memory system

- gem5 internals