QRV Operating System: QNX on RISC-V
4 days ago
- #operating-systems
- #RISC-V
- #microkernel
- QRV v0.16 achieves a working shell prompt on QEMU with basic commands like pwd, echo, and ls functioning.
- The development involved intensive debugging over five to six days, focusing on meticulous and sometimes tedious work.
- RadiOS, an earlier project by the author, evolved from assembly to a QNX-compatible microkernel but stalled due to the complexity of assembly and life changes.
- Access to QNX Neutrino source code in 2008-2009 under the QNX Community License 2.0 provided valuable insights for the author's work.
- A RISC-V port of QNX was initiated in December 2020, paused for five years, and resumed in February 2026, leading to significant progress in three weeks.
- v0.16 demonstrates full IPC functionality, dynamic linking, and user-space process management, with a shell that can execute commands like ls.
- The project simplifies the original QNX codebase by removing certain features and replacing the build system, while preserving core microkernel architecture.
- Several challenging bugs were encountered during the LP64 transition, including struct layout mismatches and unsigned underflow issues.
- The author used Claude Opus 4.6 as a tool for reasoning through technical challenges and generating boilerplate code.
- The project aims to preserve and develop the QNX architecture further, advocating for relicensing the historical QNX source code under Apache License 2.0 to foster community development.