The first release of the QSOE operating system has been introduced, designed in the style of QNX and delivered with two interchangeable microkernels: "Skimmer" and "seL4". At the kernel level, only the resource distribution system, the synchronous messaging mechanism (QNX IPC), and a minimalist kernel are run, while all other components are implemented in user space. It supports operation on 64-bit CPUs with RISC-V architecture. The OS has been tested on the SiFive HiFive Unmatched board and in QEMU. The project's code is written in C and distributed under the Apache 2.0 license.
Two options are available: QSOE/N with its own Skimmer microkernel and QSOE/L based on the seL4 microkernel, which has formal reliability verification for RISC-V architecture. Additionally, work is underway on the mr-bml bootloader based on GRUB 2.13, the standard library libc, and a set of programs called quser. The collection includes the qsh shell based on mksh, an initialization system, and a set of typical Unix utilities such as ls, cat, ps, lspci, and login.
The Skimmer microkernel uses a lightweight thread implementation in the kernel borrowed from the DragonFly BSD project (LWKT, Light Weight Kernel Threads) with CPU-bound work queues and message passing primitives msgport. QSOE allows different kernels to be used with a single user environment and a set of drivers that remain unchanged when switching kernels. Only the task manager (taskman) and the libc library, which acts as a wrapper over the QNX-like APIs provided by the microkernels, are compiled in relation to the kernels.
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β qsh + drivers + utils (dynamically linked) β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β libc.so (shared body; LQ-specific seam in lq/libc/) β
β rtld (FreeBSD-derived; BSD-2-Clause) β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β taskman process / memory / path manager β
β libtaskman portable taskman body (path / cred / β
β syscfg / sync / reloc / cpio / elf) β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β seL4 microkernel (RISC-V Sv39, formally verified) β
β elfloader (loads kernel + taskman) β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
The first release of QSOE is notable for achieving the ability to boot and access the command shell on the real SiFive Unmatched (FU740) board with an NVMe storage drive. Successful booting has been implemented for configurations with both cores (QSOE/L and QSOE/N).
Source: opennet.ru
