All Topics
All Topics
Technology
Technology
Design
Design
Programming
Programming
Science
Science
News
News
Gaming
Gaming
Entertainment
Entertainment
Business
Business
Finance
Finance
Sports
Sports
Health
Health
Food
Food
Travel
Travel
Art
Art
Music
Music
Books
Books
Education
Education
Politics
Politics
Personal
Personal
No algorithm. No AI slop. No ads. Just RSS. Pro-human. Indie writers. Real journalism. Open web. Chronological. Hand toasted.

emuko: A RISC-V Emulator in Rust That Boots Linux with JIT Support on ARM64/x86_64

By

felipap

3mo ago· 5 min readenCode

Summary

emuko is a RISC-V emulator written in Rust that can boot Linux. It implements RV64IMAFDC with M/S/U privilege levels and Sv39 virtual memory, running a JIT on ARM64 and x86_64 hosts with fallback to interpreter mode. The emulator includes standard peripherals (UART 16550, CLINT, PLIC, SBI 1.0) and has one external dependency (zstd). Performance is currently slower than QEMU - about 3x slower in interpreter mode and 29x slower in JIT mode, with the developers transparently acknowledging these limitations while noting that code block chaining improvements are planned.

Key quotes

· 4 pulled
The machine implements RV64IMAFDC with M/S/U privilege levels and Sv39 virtual memory.
It runs a JIT on ARM64 and x86_64 hosts, falling back to an interpreter when needed.
It is not the fastest emulator. In interpreter mode it runs about three times slower than QEMU. In JIT mode, about twenty-nine times slower.
We say this plainly because you should know what you are getting.
Snippet from the RSS feed
RISC-V emulator in Rust that boots Linux with JIT on ARM64/x86_64 and Sv39 virtual memory - wkoszek/emuko

You might also wanna read