Release van het Redox OS 0.8 besturingssysteem geschreven in Rust

De release van het Redox 0.8-besturingssysteem, ontwikkeld met behulp van de Rust-taal en het microkernelconcept, is gepubliceerd. De ontwikkelingen van het project worden verspreid onder de gratis MIT-licentie. Voor het testen van Redox OS worden demo-assemblages van 768 MB groot aangeboden, evenals afbeeldingen met een eenvoudige grafische omgeving (256 MB) en consoletools voor serversystemen (256 MB). De assemblies worden gegenereerd voor de x86_64-architectuur en zijn beschikbaar voor systemen met UEFI en BIOS. Naast de grafische omgeving Orbital bevat de demo-afbeelding de DOSBox-emulator, een selectie games (DOOM, Neverball, Neverputt, sopwith, syobonaction), tutorials, de rodioplay-muziekspeler en de 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 release blijft werken om ervoor te zorgen dat deze op echte hardware werkt. Naast de x86_64-architectuur is de mogelijkheid toegevoegd om op 32-bit x86-systemen (i686, Pentium II en nieuwer) te werken. Porting naar ARM64 CPU (aarch64) is onderweg. Het draaien op echte ARM-hardware wordt nog niet ondersteund, maar laden met ARM64-emulatie in QEMU is mogelijk. Standaard is het audiosubsysteem geactiveerd en wordt initiële ondersteuning geboden voor configuraties met meerdere monitoren (op systemen met een UEFI-framebuffer). De apparatuur die wordt ondersteund in Redox OS omvat AC'97 en Intel HD Audio-geluidschips, grafische uitvoer via de VESA BIOS of UEFI GOP API, Ethernet (Intel 1/10 Gigabit Ethernet, Realtek RTL8168), invoerapparaten (toetsenborden, muizen, touchpads) , SATA (AHCI, IDE) en NVMe. Ondersteuning voor Wi-Fi en USB is nog niet klaar (USB werkt alleen in QEMU).

Andere innovaties:

  • Opstartimages voor systemen met BIOS en EFI zijn samengevoegd.
  • De implementatie van de kloon- en exec-systeemaanroepen is verplaatst naar de gebruikersruimte.
  • Het downloadproces 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.
  • Geëscaleerd programma toegevoegd ter ondersteuning van setuid-programma's zoals sudo.
  • Om het maken en installeren van achtergrondprocessen te vereenvoudigen, is het redox-daemon kratpakket voorgesteld.
  • Het assemblagesysteem is opnieuw ontworpen, waardoor het mogelijk is om voor verschillende architecturen in één bronboom te bouwen. Om het samenstellen van verschillende configuraties te vereenvoudigen, wordt het build.sh-script voorgesteld. Ondersteuning toegevoegd voor bouwen met behulp van de podman-toolkit. De assemblage van de kernel, bootloader en initfs is verenigd met andere pakketten.
  • Een democonfiguratie toegevoegd voor het bouwen van voorbeeldprogramma's die niet zijn opgenomen in de basisopstartimage met een grafische omgeving.
  • Ondersteuning voor softwarematige volumeregeling is toegevoegd aan het audiod-geluidssubsysteem.
  • Driver toegevoegd voor geluidschips gebaseerd op AC'97. Verbeterde driver voor Intel HD Audio-chips.
  • Stuurprogramma voor IDE-controllers toegevoegd.
  • Verbeterde ondersteuning voor NVMe-schijven.
  • Verbeterde PCI-, PS/2-, RTL8168-, USB HID- en VESA-stuurprogramma's.
  • Het installatieproces is opnieuw ontworpen: 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.
  • In de grafische schil van Orbital is ondersteuning voor systemen met meerdere monitoren toegevoegd, is de verwerking van de muiscursor verbeterd en is er een indicator toegevoegd voor het wijzigen van het volume. Het menu heeft de mogelijkheid om applicaties in categorieën te verdelen.

Bron: opennet.ru

Voeg een reactie