A RV64GC userspace emulator, written in Rust 🦀.
RISCVM is a userspace emulator. It emulates the RVGC64 unprivileged spec, so this is not meant to run any baremetal software (e.g kernels). It only runs Linux ELF files.
RISCVM is an interpreted emulator, but I have plans to implement a JIT for x86_64 and ARM later down the road.
cargo install --git https://github.com/mateocabanal/riscvm riscvm-runner # Installs the 'riscvm' binary
# OPTIONAL
cargo install --git https://github.com/mateocabanal/riscvm riscvm-debugger # Installs the 'riscvm-debugger' binary
riscvm <ELF_FILE>
- ELF execution
- Support statically linked binaries
- Start libc (gets to
int main()
when using libc) - Start libstdc++ (gets to
int main()
when using libstdc++ (C++)) - Start Rust (gets to
fn main()
when using Rust) see issue - Support dynamically linked binaries
- Multi-threading support