Γ stato presentato il primo rilascio del sistema operativo QSOE, progettato nello stile di QNX e fornito con due microkernel sostituibili, Β«SkimmerΒ» e Β«seL4Β». A livello del kernel vengono eseguiti solo il sistema di distribuzione delle risorse, il meccanismo di scambio di messaggi sincrono (QNX IPC) e un kernel minimalista, mentre tutti gli altri componenti sono implementati nello spazio utente. Γ supportato il funzionamento su CPU a 64 bit con architettura RISC-V. L'OS Γ¨ stato testato sulla scheda SiFive HiFive Unmatched e in QEMU. Il codice del progetto Γ¨ scritto in linguaggio C ed Γ¨ distribuito con licenza Apache 2.0.
Sono disponibili due opzioni: QSOE/N con il microkernel proprietario Skimmer e QSOE/L basato sul microkernel seL4, che ha una verifica formale dell'affidabilitΓ per l'architettura RISC-V. Inoltre, si sta sviluppando il caricatore mr-bml basato su GRUB 2.13, la libreria standard libc e un set di programmi quser. Il set di programmi comprende la shell qsh basata su mksh, il sistema di inizializzazione e un insieme di utilitΓ unix standard, come ls, cat, ps, lspci e login.
Il microkernel Skimmer utilizza un'implementazione di thread leggeri nel kernel (LWKT, Light Weight Kernel Threads) presa dal progetto DragonFly BSD, con code di lavoro associate alla CPU e primitive di passaggio messaggi msgport. QSOE consente di utilizzare diversi kernel con un unico ambiente utente e un insieme di driver, senza modifiche durante il cambio di kernel. Sono collegati ai kernel solo il gestore dei task (taskman) e la libreria libc, che funge da interfaccia per le API simili a QNX fornite dai microkernel.
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β qsh + drivers + utils (collegati dinamicamente) β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β libc.so (corpo condiviso; giunto specifico per LQ in lq/libc/) β
β rtld (derivato da FreeBSD; BSD-2-Clause) β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β taskman gestore di processo / memoria / percorso β
β libtaskman corpo portable del taskman (percorso / credenziali / β
β syscfg / sync / reloc / cpio / elf) β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β microkernel seL4 (RISC-V Sv39, verificato formalmente) β
β elfloader (carica kernel + taskman) β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Il primo rilascio di QSOE Γ¨ notevole per il raggiungimento della possibilitΓ di avvio e accesso alla shell su una scheda reale SiFive Unmatched (FU740) con un'unitΓ NVMe. L'avvio Γ¨ stato realizzato con successo per configurazioni con entrambi i core (QSOE/L e QSOE/N).
Fonte: opennet.ru
