Difference between revisions of "Supported Architectures"
(→Full-System Simulation) |
|||
Line 1: | Line 1: | ||
− | + | gem5 is a flexible architecture simulator that supports a number of ISAs and operating systems for both full-system simulation (booting an entire operating system) and syscall emulation (running one or more applications by emulating syscalls). A complete list of supported combinations is listed below. | |
== Syscall Emulation == | == Syscall Emulation == | ||
− | Modifying | + | Modifying gem5 to support additional ISAs in syscall emulation mode is far easier than for full-system simulation. As such all new architectures to-date have used syscall emulation as a stepping stone to full-system simulation. |
*'''ALPHA''' -- Linux | *'''ALPHA''' -- Linux | ||
Line 14: | Line 14: | ||
− | ''Note:'' Newer versions of Solaris do not support static linking so Solaris syscall emulation isn't used. Implementation of a dynamic linker in | + | ''Note:'' Newer versions of Solaris do not support static linking so Solaris syscall emulation isn't used. Implementation of a dynamic linker in gem5 (or gem5 executing ld.so) is possible, but it hasn't been implemented. |
== Full-System Simulation == | == Full-System Simulation == |
Revision as of 17:04, 6 December 2016
gem5 is a flexible architecture simulator that supports a number of ISAs and operating systems for both full-system simulation (booting an entire operating system) and syscall emulation (running one or more applications by emulating syscalls). A complete list of supported combinations is listed below.
Syscall Emulation
Modifying gem5 to support additional ISAs in syscall emulation mode is far easier than for full-system simulation. As such all new architectures to-date have used syscall emulation as a stepping stone to full-system simulation.
- ALPHA -- Linux
- SPARC -- Linux, Solaris
- MIPS -- Linux
- ARM -- Linux
- x86 -- Linux
- Power -- Linux
- RISC-V -- Linux
Note: Newer versions of Solaris do not support static linking so Solaris syscall emulation isn't used. Implementation of a dynamic linker in gem5 (or gem5 executing ld.so) is possible, but it hasn't been implemented.
Full-System Simulation
- ALPHA -- Linux, FreeBSD
- ARM -- Bare metal, FreeBSD and Linux support with both detailed, minor (in-order) and simple CPU models for AArch32 or AArch64 (32-bit or 64-bit) ARM.
- SPARC -- Solaris
- MIPS -- Linux and bare metal support started, lots of work needed
- x86/64 -- In progress, actively being worked on