Vivo, dat ongeveer 10% van de wereldwijde smartphone-markt beslaat (5e plaats onder smartphone-fabrikanten), heeft de eerste officiƫle open release van de BlueOS (Blue River OS) besturingssysteemkernel gepresenteerd. BlueOS is sinds 2018 in ontwikkeling en wordt al gebruikt in de Vivo Watch smartwatches. Vivo werkt ook aan de toepassing van BlueOS in slimme brillen, robots, slimme terminals en consumentgerichte AI-apparaten. De kernelcode is geschreven in Rust en is open-source onder de Apache 2.0 licentie. De systeemframeworks van BlueOS zijn ook in Rust geschreven.
Het BlueOS-besturingssysteem is oorspronkelijk ontwikkeld met een focus op beveiliging en maakt gebruik van de programmeertaal Rust om kwetsbaarheden, veroorzaakt door geheugenfouten, te voorkomen. Volgens statistieken van Google en Microsoft vormen deze 70% van alle kwetsbaarheden in besturingssystemen. Voor een veilige werking van het geheugen maakt BlueOS gebruik van een combinatie van slimme pointers tijdens runtime en controles tijdens de compilatiefase, zoals eigendomstracking, variabele leentoetsing en levensduurbeheer van objecten die door Rust worden geboden.
De BlueOS-kernel (Blue River Kernel) is geoptimaliseerd voor minimaal resourceverbruik en kan worden gebruikt op ingebedde platforms, mobiele apparaten en Internet of Things-systemen. In de minimale configuratie vereist de kernel slechts 13 KB RAM om te functioneren. Daarnaast ondersteunt de kernel moderne processorarchitecturen, waaronder ARM en RISC-V. Bovenop de kernel is een standaard C-bibliotheek geĆÆmplementeerd die de programmeerinterfaces ondersteunt die zijn gedefinieerd in de POSIX-standaard, evenals de rust-std-bibliotheek.
De kernel biedt een taakplanner, bestandssysteem, geheugenbeheersmechanisme, netwerkstack en een set stuurprogramma's. Meerdere taakplanningalgoritmen worden ondersteund, waaronder algoritmen voor een gelijkmatige verdeling van tijdquantums tussen processen en algoritmen voor real-time werking op basis van prioriteitscalculatie. Er zijn verschillende geheugenallocatie-algoritmen beschikbaar, geoptimaliseerd voor verschillende gebruiksscenario's.
Eigen bestandssysteem met een klassieke hiƫrarchische architectuur op basis van inode, evenals bestandssystemen zoals tmpfs, devfs, sysfs, procfs, nfs en fat32. De TCP/IP-stack ondersteunt de POSIX Socket API, socketfd en gegevensverwerking in zowel blokkerende als niet-blokkerende modi, en kan worden gebruikt in configuraties met meerdere netwerkkaarten. Voor het verlagen van overhead bij gegevensoverdracht wordt een zero-copy-architectuur toegepast, die tussentijdse buffering uitsluit.
Voor de ontwikkeling van stuurprogramma's wordt een laag aangeboden voor de abstractie van toegang tot hardware, waarmee stuurprogramma's in Rust kunnen worden geschreven en bestaande C-stuurprogramma's voor andere kernels kunnen worden overgezet. De documentatie voor de kernel is momenteel beperkt tot instructies voor het bouwen en testen, evenals tips voor het implementeren van eigen systeembellen en beschrijvingen van basistypen gegevens. Voor testen wordt aangeraden om QEMU (mps2-an385, mps3-an547, virt-aarch64, virt-riscv64) of de Raspberry Pi Pico2-bord te gebruiken.
Bron: opennet.ru
