HeadlinesBriefing favicon HeadlinesBriefing.com

Rust-Based RISC-V Emulator Emuko Offers Linux Boot with JIT Compilation

Hacker News •
×

Emuko is a new, fast RISC-V emulator written entirely in Rust, designed to boot Linux efficiently. It supports RV64IMAFDC with full M/S/U privilege levels and Sv39 virtual memory, leveraging JIT compilation for ARM64 and x86_64 hosts to accelerate execution. A standout feature is its snapshot/restore capability, allowing users to save and resume the full machine state, alongside a daemon mode with HTTP API and live UART command injection. The emulator also includes a differential checker to validate JIT translation against the interpreter and supports peripherals like UART 16550, CLINT, PLIC, and SBI 1.0. Built with a single dependency (`zstd`), it provides a streamlined alternative to established emulators like QEMU, Spike, and Renode.

Compared to these competitors, Emuko distinguishes itself with built-in JIT-vs-interpreter differential checking, scriptable UART host bridge primitives, and one-command Debian kernel/initrd download with SHA256 verification. While QEMU offers a broad device ecosystem and Renode focuses on multi-node simulation, Emuko prioritizes a pure Rust implementation with adaptive JIT selection for host compatibility. Its HTTP API and WebSocket console endpoints provide modern control mechanisms absent in older tools.

To use Emuko, developers can build it via `cargo build --release`, download Debian netboot images with `emuko dow`, and boot Linux using `emuko start`. The daemon mode exposes an API at `http://127.0.0.1:7788/v1/api/`, enabling advanced control. This tool delivers a practical, self-contained solution for RISC-V development and Linux experimentation without relying on external dependencies or complex setups.

Emuko represents a significant step forward for Rust-based systems programming tools, offering a lightweight, feature-rich emulator focused on Linux deployment and rapid iteration.