# Linux Kernel Module Cheat

#### 24.22.6. gem5 `ThreadContext` vs `ThreadState` vs `ExecContext` vs `Process`

These classes get used everywhere, and they have a somewhat convoluted relation with one another, so let’s figure it out this mess.

None of those objects are SimObjects, so they must all belong to some higher SimObject.

This section and all children tested at gem5 b1623cb2087873f64197e503ab8894b5e4d4c7b4.

- gem5 <code>ThreadContext</code>

- gem5 <code>ThreadState</code>

- gem5 <code>ExecContext</code>

- gem5 <code>Process</code>