Vrystelling van die Redox OS 0.8-bedryfstelsel geskryf in Rust

Die vrystelling van die Redox 0.8-bedryfstelsel, ontwikkel deur die Rust-taal en die mikrokernkonsep te gebruik, is gepubliseer. Die ontwikkelings van die projek word onder die gratis MIT-lisensie versprei. Vir die toets van Redox-bedryfstelsel word demonstrasies van 768 MB aangebied, sowel as beelde met 'n basiese grafiese omgewing (256 MB) en konsole-nutsgoed vir bedienerstelsels (256 MB). Die samestellings word gegenereer vir die x86_64-argitektuur en is beskikbaar vir stelsels met UEFI en BIOS. Die demo-beeld, benewens die Orbital-grafiese omgewing, bevat 'n DOSBox-emulator, 'n verskeidenheid speletjies (DOOM, Neverball, Neverputt, sopwith, syobonaction), tutoriale, 'n rodioplay-musiekspeler en 'n Sodium-teksredigeerder.

Die bedryfstelsel ontwikkel in ooreenstemming met die Unix-filosofie en leen 'n paar idees van SeL4, Minix en Plan 9. Redox gebruik die mikrokernkonsep, waarin slegs kommunikasie tussen prosesse en hulpbronbestuur op kernvlak verskaf word, en alle ander funksionaliteit geplaas word. in biblioteke wat beide kern- en gebruikerstoepassings gebruik kan word. Alle drywers werk in gebruikersruimte in geïsoleerde sandbox-omgewings. Vir verenigbaarheid met bestaande toepassings word 'n spesiale POSIX-laag voorsien wat baie programme toelaat om sonder oordrag te loop.

Die stelsel pas die beginsel toe "alles is 'n URL". Byvoorbeeld, die URL "log://" kan gebruik word vir aanteken, "bus://" vir inter-proses kommunikasie, "tcp://" vir netwerk kommunikasie, ensovoorts. Modules, wat as drywers, kernuitbreidings en pasgemaakte toepassings geïmplementeer kan word, kan hul eie URL-hanteerders registreer, byvoorbeeld, jy kan 'n I/O-toegangsmodule skryf en dit aan die "port_io://" URL bind, waarna jy kan dit gebruik om toegang tot poort 60 te verkry deur die URL "port_io://60" oop te maak.

Die gebruikersomgewing in Redox is gebou rondom Orbital se eie grafiese dop (nie te verwar met die ander Orbital-dop wat Qt en Wayland gebruik nie) en die OrbTk-gereedskapstel, wat 'n API soortgelyk aan Flutter, React en Redux verskaf. Netsurf word as 'n webblaaier gebruik. Die projek ontwikkel ook sy eie pakketbestuurder, 'n stel standaardhulpprogramme (binutils, coreutils, netutils, extrautils), die ion-opdragdop, die relibc-standaard C-biblioteek, die natriumvim-agtige teksredigeerder, die netwerkstapel en die lêer stelsel. Die konfigurasie is in die Toml-taal gestel.

Die nuwe weergawe gaan voort met werk om werk op regte hardeware te verseker. Benewens die x86_64-argitektuur, is die vermoë om op 32-bis x86-stelsels (i686, Pentium II en nuwer) te werk bygevoeg. Oordrag na CPU ARM64 (aarch64) is aan die gang. Werk op regte ARM-hardeware word nog nie ondersteun nie, maar dit is moontlik om te begin wanneer ARM64 in QEMU nageboots word. By verstek is die oudio-substelsel geaktiveer en word aanvanklike ondersteuning vir multimonitor-konfigurasies verskaf (op stelsels met 'n UEFI-raambuffer). Die toerusting wat deur Redox OS ondersteun word, sluit in AC'97 en Intel HD Audio klankskyfies, grafiese uitvoer via die VESA BIOS of UEFI GOP API, Ethernet (Intel 1/10 Gigabit Ethernet, Realtek RTL8168), invoertoestelle (sleutelborde, muise, raakvlakke) , SATA (AHCI, IDE) en NVMe. Ondersteuning vir Wi-Fi en USB is nog nie gereed gebring nie (USB werk net in QEMU).

Ander innovasies:

  • Saamgevoegde selflaaibeelde vir BIOS- en EFI-stelsels.
  • Implementering van kloon- en bestuurstelseloproepe is na gebruikersruimte geskuif.
  • Vereenvoudigde aflaai proses. 'n Bootstrap-program is ingestel wat deur die kern bestuur word en verskaf verdere laai van ELF-lêers, soos die init-proses.
  • Geëskaleerde program bygevoeg om setuid-programme soos sudo te laat werk.
  • Om die skepping en installering van agtergrondprosesse te vereenvoudig, is die redoks-daemon kratpakket voorgestel.
  • Die boustelsel is herontwerp, waarin dit moontlik geword het om vir verskillende argitekture in dieselfde bronboom te bou. Om die samestelling van verskillende konfigurasies te vereenvoudig, word die build.sh-skrip voorgestel. Bygevoeg ondersteuning vir die bou met behulp van die podman toolkit. Die samestelling van die kern, selflaaiprogram en initfs is verenig met ander pakkette.
  • Bygevoeg 'n demonstrasie konfigurasie vir die bou van voorbeeld programme wat nie ingesluit is in die basis selflaai beeld met 'n grafiese omgewing.
  • Ondersteuning vir programmatiese volumebeheer is by die oudio-klanksubstelsel gevoeg.
  • Bygevoeg drywer vir klankskyfies gebaseer op AC'97. Verbeterde bestuurder vir Intel HD Audio-skyfies.
  • Bygevoeg bestuurder vir IDE beheerders.
  • Verbeterde ondersteuning vir NVMe-aandrywers.
  • Verbeterde PCI, PS/2, RTL8168, USB HID, VESA drywers.
  • Die organisasie van die installasieproses is herontwerp: die selflaaiprogram, selflaaiprogram, kern en initfs is nou in die /boot-gids geleë.
  • Die kern het werk met geheue vereenvoudig en die vermoë bygevoeg om adresruimtes vanaf die gebruikersvlak te manipuleer.
  • Ondersteuning vir multimonitorstelsels is by die Orbital-grafiese dop gevoeg, muiswyserverwerking is verbeter, en 'n aanwyser is bygevoeg om die volume te verander. Die spyskaart het die vermoë om toepassings in kategorieë te verdeel.

Bron: opennet.ru

Voeg 'n opmerking