Skip to content
Tech News
← Back to articles

QSOE: QNX-inspired OS with dual-kernel architecture

read original more articles
Why This Matters

The release of QSOE v0.1 introduces a dual-kernel architecture inspired by QNX, supporting both a custom 'Skimmer' kernel and seL4, with shared userspace components. This development enhances flexibility and robustness in embedded and real-time systems, demonstrating progress in multi-kernel environments and booting from NVMe storage on the SiFive Unmatched platform. It signifies a step forward in microkernel interoperability and system resilience for the tech industry and consumers alike.

Key Takeaways

The first QSOE release, v0.1, is out. It bundles both kernel variants, the boot loader, the userspace, and libc into a single numbered drop, and consists of the following components:

QSOE/N v0.17 , with the custom "Skimmer" kernel.

, with the custom "Skimmer" kernel. QSOE/L v0.14 , which works together with seL4 version 15.

, which works together with seL4 version 15. mr-bml v0.5.1 , a GRUB-derived boot loader with support for Multiboot 3, RISC-V Linux-style kernels, and kernels with an EFI stub.

, a GRUB-derived boot loader with support for Multiboot 3, RISC-V Linux-style kernels, and kernels with an EFI stub. quser v0.5 , offering an mksh-based shell (qsh).

, offering an mksh-based shell (qsh). libc v0.6.

The two variants share the same userspace above the seam: quser, qsh, and libc are identical, with only taskman and libc.so differing per kernel. That shared userspace is the whole point — one QNX-compatible environment over two very different microkernels.

The milestone behind this release is on the QSOE/L side: it now boots from NVMe storage to an interactive login shell on the SiFive Unmatched (FU740). Spawning the first program off a mounted disk had exposed a pair of deadlocks — taskman blocked reading the spawn image while the read chain's wakes routed back through it — so the Sync* slow path and device-interrupt pulses are now kernel-direct, taking taskman out of the wake path entirely. With QSOE/N (v0.17) already spawning from its own filesystem to an interactive qsh, both variants now reach a shell on the FU740.

The source is on GitLab under Apache-2.0, at gitlab.com/qsoe. Binaries and documentation are hosted on GitHub, and download and installation instructions live on the project website, qsoe.net.