Die erste Version von QSOE, einem Betriebssystem im QNX-Stil mit zwei austauschbaren Mikrokernen, wurde veröffentlicht.

Die erste Version des Betriebssystems QSOE wurde vorgestellt, das im QNX-Stil entworfen wurde und mit zwei austauschbaren Mikrokernen, ‚Skimmer‘ und ‚seL4‘, geliefert wird. Auf der Kernel-Ebene laufen nur das Ressourcenverteilungssystem, der Mechanismus für synchrone Nachrichtenübertragung (QNX IPC) und ein minimalistischer Kernel, während alle anderen Komponenten im Benutzerspeicher implementiert sind. Es wird auf 64-Bit-CPUs mit RISC-V-Architektur unterstützt. Das OS wurde auf der SiFive HiFive Unmatched-Platine und in QEMU getestet. Der Quellcode des Projekts ist in C geschrieben und wird unter der Lizenz Apache 2.0 verbreitet.

Es stehen zwei Varianten zur Auswahl: QSOE/N mit dem eigenen Mikrokernel Skimmer und QSOE/L, das auf dem Mikrokernel seL4 basiert, der eine formale Verifizierung der Zuverlässigkeit für die RISC-V-Architektur aufweist. Darüber hinaus wird der Bootloader mr-bml auf Basis von GRUB 2.13, die Standardbibliothek libc und ein Softwarepaket quser weiterentwickelt. Das Softwarepaket enthält die Kommandozeile qsh auf Basis von mksh, ein Init-System und eine Sammlung typischer Unix-Utilities wie ls, cat, ps, lspci und login.

Der Mikrokernel Skimmer nutzt eine von DragonFly BSD übernommene Implementierung leichter Threads im Kernel (LWKT, Light Weight Kernel Threads) mit CPU-gebundenen Arbeitswarteschlangen und msgport-Nachrichtenaustauschprimitive. QSOE ermöglicht die Nutzung verschiedener Kerne mit einer einheitlichen Benutzerumgebung und einem stabilen Treibersatz, der beim Wechsel des Kerns nicht verändert wird. Bei der Bindung an die Kerne werden nur der Task-Manager (taskman) und die Bibliothek libc, die als Schnittstelle zu den QNX-ähnlichen APIs der Mikrokernel fungiert, gesammelt.

┌──────────────────────────────────────────────────────────┐
│ qsh + Treiber + Hilfsprogramme (dynamisch verlinkt) │
├──────────────────────────────────────────────────────────┤
│ libc.so (gemeinsame Bibliothek; LQ-spezifische Naht in lq/libc/) │
│ rtld (von FreeBSD abgeleitet; BSD-2-Klausel) │
├──────────────────────────────────────────────────────────┤
│ taskman Prozess-/Speicher-/Pfadmanager │
│ libtaskman tragbare taskman-Bibliothek (Pfad / Berechtigung / │
│ syscfg / Sync / Reloc / cpio / elf) │
├──────────────────────────────────────────────────────────┤
│ seL4 Mikrokernel (RISC-V Sv39, formal verifiziert) │
│ elfloader (lädt Kernel + taskman) │
└──────────────────────────────────────────────────────────┘

Die erste Version von QSOE zeichnet sich durch die Möglichkeit aus, das Betriebssystem erfolgreich zu laden und auf der realen SiFive Unmatched (FU740) mit NVMe-Speicher auf die Kommandozeile zuzugreifen. Der erfolgreiche Bootvorgang wurde sowohl für die Konfiguration mit QSOE/L als auch mit QSOE/N realisiert.

Quelle: opennet.ru

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster