De eerste release van het besturingssysteem QSOE is gepresenteerd, ontworpen in de stijl van QNX, en geleverd met twee vervangbare microkernels: "Skimmer" en "seL4". Op kernniveau worden alleen het resource distributiesysteem, het mechanisme voor synchrone berichtuitwisseling (QNX IPC) en een minimalistische kernel uitgevoerd, terwijl alle andere componenten in de gebruikersruimte zijn geΓ―mplementeerd. Er is ondersteuning voor 64-bits CPU's met een RISC-V architectuur. Het OS is getest op het SiFive HiFive Unmatched bord en in QEMU. De projectcode is geschreven in C en wordt verspreid onder de Apache 2.0-licentie.
Er zijn opties beschikbaar: QSOE/N met de eigen microkernel Skimmer en QSOE/L op basis van de microkernel seL4, die formele verificatie van betrouwbaarheid voor de RISC-V architectuur heeft. Daarnaast wordt de mr-bml bootloader op basis van GRUB 2.13 ontwikkeld, evenals de standaardbibliotheek libc en de set programma's quser. De set programma's bevat de command line shell qsh op basis van mksh, een init systeem en een set typische unix-hulpprogramma's zoals ls, cat, ps, lspci en login.
De microkernel Skimmer maakt gebruik van een implementatie van lichte threads in de kern (LWKT, Light Weight Kernel Threads) ontleend aan het project DragonFly BSD, met aan CPU gekoppelde werk queues en primitieve berichtoverdrachtsmechanismen msgport. QSOE maakt het mogelijk verschillende kernels te gebruiken met één gebruikersomgeving en een set stuurprogramma's, die niet verandert bij het wisselen van kernel. Alleen de taakbeheerder (taskman) en de libc-bibliotheek, die fungeert als een wrapper bovenop QNX-achtige API's die door de microkernels worden geleverd, worden aan de kernels gekoppeld.
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β qsh + drivers + utils (dynamisch gelinkt) β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β libc.so (gedeelde body; LQ-specifieke naad in lq/libc/) β
β rtld (afgeleid van FreeBSD; BSD-2-Clause) β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β taskman proces / geheugen / padbeheer β
β libtaskman draagbare taskman body (pad / cred / β
β syscfg / sync / reloc / cpio / elf) β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β seL4 microkernel (RISC-V Sv39, formeel geverifieerd) β
β elfloader (laadt kernel + taskman) β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
De eerste release van QSOE is opmerkelijk vanwege de mogelijkheid om op te starten en toegang te krijgen tot de command line interface op het daadwerkelijke SiFive Unmatched (FU740) bord met een NVMe-opslagapparaat. Een succesvolle opstart is gerealiseerd voor configuraties met beide kernen (QSOE/L en QSOE/N).
Bron: opennet.ru
