Esitleme esimest QSOE operatsioonisüsteemi versiooni, mis on kujundatud QNX stiilis ja pakub kahte vahetatavat mikrotuumaga 'Skimmer' ja 'seL4'. Tasemel tuum töötab ainult ressursside jaotamise süsteem, sünkroonsõnumite vahetuse mehhanism (QNX IPC) ja minimalistlik tuum, samas kui kõik ülejäänud komponendid on rakendatud kasutajaruumi. Toetab töötamist 64-bitiste RISC-V arhitektuuriga CPU-dega. OS-i on testitud SiFive HiFive Unmatched plaadil ja QEMU-s. Projekti kood on kirjutatud C keeles ja jaotatakse Apache 2.0 litsentsi alusel.
Valida on võimalused: QSOE/N, millel on oma mikrotuum Skimmer, ja QSOE/L, mis põhineb seL4 mikrotuumas, millel on RISC-V arhitektuurile ametlik usaldusväärsuse valideerimine. Lisaks sellele arendatakse mr-bml alglaadijat, mis põhineb GRUB 2.13-l, standardset libc teeki ja quseri programmide komplekti. Programmide komplekti kuulub qsh käsirida, mis põhineb mksh-l, initsialiseerimissüsteem ja komplekt tüüpilisi unixi utiliite, nagu ls, cat, ps, lspci ja login.
Mikrokiht Skimmer kasutab koos projektiga DragonFly BSD laenatud kergkaalu lõime (LWKT, Light Weight Kernel Threads) koos CPU-le seotud tööde järjekordade ja sõnumite edastamise primitiividega msgport. QSOE võimaldab kasutada erinevaid kerneliid ilma kasutajakeskkonna ja draiverite komplekti muutmata, mis jääb muutumatuks kerneleid vahetades. Kernelitele on seotud ainult ülesannetemanager (taskman) ja libc raamatukogu, mis toimib korvava kihtina QNX-sarnaste API-de jaoks, mida mikrokiht pakub.
┌──────────────────────────────────────────────────────────┐
│ qsh + draiverid + utiliid (dünaamiliselt seotud) │
├──────────────────────────────────────────────────────────┤
│ libc.so (jagatud kood; LQ-spetsiifiline Seam lq/libc/) │
│ rtld (FreeBSD-põhine; BSD-2-Clause) │
├──────────────────────────────────────────────────────────┤
│ taskman protsessi / mälu / tee haldur │
│ libtaskman kantav taskman keha (tee / usaldus / │
│ syscfg / sünkroniseerimine / ümberpaigutamine / cpio / elf) │
├──────────────────────────────────────────────────────────┤
│ seL4 mikrokiht (RISC-V Sv39, ametlikult kontrollitud) │
│ elfloader (laeb kerne + taskman) │
└──────────────────────────────────────────────────────────┘
Esimene QSOE väljaanne on märkimisväärne saavutuse poolest, kuna see võimaldab käivitada ja siseneda käsureale reaalses SiFive Unmatched (FU740) plaadil koos NVMe salvestiga. Edukas käivitamine on teostatud konfigureerimiste jaoks, kus on mõlemad tuumad (QSOE/L ja QSOE/N).
Allikas: opennet.ru
