Den første version af operativsystemet QSOE er præsenteret, designet i stil med QNX og leveret med to udskiftelige mikrokerner, "Skimmer" og "seL4". På kerne-niveau udføres kun ressourcefordelingssystemet, mekanismen for synkrone meddelelser (QNX IPC) og en minimalistisk kerne, mens alle andre komponenter er implementeret i brugerområdet. Det understøtter operation på 64-bit CPU'er med RISC-V-arkitektur. OS'et er testet på SiFive HiFive Unmatched og i QEMU. Projektkoden er skrevet i C og distribueres under Apache 2.0-licensen.
Der tilbydes valgmuligheder: QSOE/N med den egne mikrokerne Skimmer og QSOE/L baseret på mikrokerne seL4, som har formel verifikation af pålidelighed for RISC-V-arkitektur. Derudover udvikles bootloaderen mr-bml baseret på GRUB 2.13, standardbiblioteket libc og et programværktøjssæt, quser. Programværktøjssættet inkluderer kommandoskallen qsh baseret på mksh, init-systemet og et sæt typiske Unix-værktøjer som ls, cat, ps, lspci og login.
Mikrokerne Skimmer anvender en letvægts trådimplementering i kernen (LWKT, Light Weight Kernel Threads) lånt fra DragonFly BSD-projektet, med CPU-bundne arbejdskoer og forbedrede meddelelsesoverførselsprimitiver msgport. QSOE gør det muligt at bruge forskellige kerner med et fælles brugeromgivelser og driver-sæt, som forbliver uændret ved kerneændring. Der samles kun task manageren (taskman) og libc-biblioteket, der fungerer som et bindeled til QNX-lignende API'er, der leveres af mikrokernerne.
┌──────────────────────────────────────────────────────────┐
│ qsh + drivere + værktøjer (dynamisk linket) │
├──────────────────────────────────────────────────────────┤
│ libc.so (delt krop; LQ-specifik samling i lq/libc/) │
│ rtld (FreeBSD-afledt; BSD-2-Clause) │
├──────────────────────────────────────────────────────────┤
│ taskman proces / hukommelse / stier manager │
│ libtaskman bærbar taskman-krop (stier / tro / │
│ syscfg / sync / reloc / cpio / elf) │
├──────────────────────────────────────────────────────────┤
│ seL4 mikrokerne (RISC-V Sv39, formelt verificeret) │
│ elfloader (indlæser kerne + taskman) │
└──────────────────────────────────────────────────────────┘
Den første udgave af QSOE er markant for opnåelsen af muligheden for at starte op og få adgang til kommandolinjen på det virkelige SiFive Unmatched (FU740) med NVMe-lager. Den succesfulde opstart er implementeret for konfigurationer med begge kerner (QSOE/L og QSOE/N).
Kilde: opennet.ru
