Het besturingssysteem Redox 0.8, ontwikkeld met behulp van de Rust-taal en het microkernelconcept, is uitgebracht. De ontwikkelingen van het project worden verspreid onder de vrije MIT-licentie. Voor het testen van Redox OS worden demoversies van 768 MB aangeboden, evenals images met een eenvoudige grafische omgeving (256 MB) en consoletools voor serversystemen (256 MB). De assembly's worden gegenereerd voor de x86_64-architectuur en zijn beschikbaar voor systemen met UEFI en BIOS. De demo-image bevat, naast de grafische omgeving van Orbital, een DOSBox-emulator, een selectie games (DOOM, Neverball, Neverputt, sopwith, syobonaction), educatieve programma's, een rodioplay-muziekspeler en een Sodium-teksteditor.
Het besturingssysteem is ontwikkeld in overeenstemming met de Unix-filosofie en ontleent enkele ideeën aan SeL4, Minix en Plan 9. Redox gebruikt het concept van een microkernel, waarbij alleen interactie tussen processen en resourcebeheer op kernelniveau plaatsvindt, en alle andere functionaliteit wordt geplaatst in bibliotheken die zowel door de kernel als door gebruikersapplicaties kunnen worden gebruikt. Alle stuurprogramma's draaien in de gebruikersruimte in geïsoleerde sandbox-omgevingen. Voor compatibiliteit met bestaande applicaties is er een speciale POSIX-laag voorzien, waarmee u veel programma's kunt uitvoeren zonder porten.
Het systeem maakt gebruik van het ‘alles is een URL’-principe. De URL “log://” kan bijvoorbeeld worden gebruikt voor loggen, “bus://” voor interactie tussen processen, “tcp://” voor netwerkinteractie, enz. Modules, die kunnen worden geïmplementeerd in de vorm van stuurprogramma's, kernelextensies en gebruikersapplicaties, kunnen hun eigen URL-handlers registreren. U kunt bijvoorbeeld een I/O-poorttoegangsmodule schrijven en deze binden aan de URL "port_io:// ", waarna u hiermee toegang kunt krijgen tot poort 60 door de URL “port_io://60” te openen.
De gebruikersomgeving in Redox is gebouwd op basis van Orbital's eigen grafische shell (niet te verwarren met een andere Orbital-shell die Qt en Wayland gebruikt) en de OrbTk-toolkit, die een API biedt vergelijkbaar met Flutter, React en Redux. Netsurf wordt gebruikt als webbrowser. Het project ontwikkelt ook een eigen pakketbeheerder, een reeks standaardhulpprogramma's (binutils, coreutils, netutils, extrautils), de ion-opdrachtshell, de standaard C-bibliotheek relibc, de vim-achtige teksteditor natrium, een netwerkstack en een bestand systeem. De configuratie is ingesteld in de Toml-taal.
De nieuwe versie bouwt voort op het werk om de werking op echte apparatuur te garanderen. Naast de x86_64-architectuur is de mogelijkheid toegevoegd om te werken op 32-bits x86-systemen (i686, Pentium II en nieuwer). Het porten naar ARM64 CPU (aarch64) is bezig. Het draaien op echte ARM-hardware wordt nog niet ondersteund, maar opstarten is mogelijk met ARM64-emulatie in QEMU. Standaard is het geluidssubsysteem ingeschakeld en is er initiële ondersteuning voor configuraties met meerdere monitoren beschikbaar (op systemen met een UEFI-framebuffer). De hardware die Redox OS ondersteunt, omvat AC'97- en Intel HD Audio-geluidschips, grafische uitvoer via VESA BIOS API of UEFI GOP, Ethernet (Intel 1/10 Gigabit Ethernet, Realtek RTL8168), invoerapparaten (toetsenborden, muizen, touchpads), SATA (AHCI, IDE) en NVMe. Wi-Fi- en USB-ondersteuning is nog niet klaar (USB werkt alleen in QEMU).
Andere innovaties:
- Opstartimages voor BIOS- en EFI-systemen zijn samengevoegd.
- De implementatie van de systeemoproepen clone en exec is verplaatst naar de gebruikersruimte.
- Het laadproces is vereenvoudigd. Er is een bootstrapprogramma geïmplementeerd, dat door de kernel wordt gestart en zorgt voor het verder laden van ELF-bestanden, zoals het init-proces.
- Er is een escalatie toegevoegd om setuid-programma's zoals sudo te laten werken.
- Om het aanmaken en installeren van achtergrondprocessen te vereenvoudigen, wordt het redox-daemon crate-pakket voorgesteld.
- Het bouwsysteem is opnieuw ontworpen, zodat er voor verschillende architecturen in één broncodeboom gebouwd kan worden. Om de samenstelling van verschillende configuraties te vereenvoudigen, wordt het script build.sh voorgesteld. Ondersteuning toegevoegd voor bouwen met de Podman-toolkit. De kernel, bootloader en initfs-build zijn geüniformeerd met andere pakketten.
- Er is een demo-configuratie toegevoegd voor het bouwen van voorbeeldprogramma's die niet zijn opgenomen in de basisopstartimage met een grafische omgeving.
- Het audio-geluidssubsysteem is bijgewerkt en ondersteunt nu softwarematige volumeregeling.
- Driver toegevoegd voor op AC'97 gebaseerde geluidschips. Verbeterde driver voor Intel HD Audio-chips.
- Driver toegevoegd voor IDE-controllers.
- Verbeterde ondersteuning voor NVMe-schijven.
- Verbeterde PCI-, PS/2-, RTL8168-, USB HID- en VESA-stuurprogramma's.
- De organisatie van het installatieproces is herzien: de bootloader, bootstrap, kernel en initfs bevinden zich nu in de map /boot.
- De kernel heeft het geheugenbeheer vereenvoudigd en de mogelijkheid toegevoegd om adresruimten vanaf gebruikersniveau te manipuleren.
- De grafische shell van Orbital ondersteunt nu systemen met meerdere monitoren, verbetert de bediening van de muiscursor en voegt een indicator toe voor volumewijzigingen. U kunt nu via het menu applicaties in categorieën verdelen.
Bron: opennet.ru
