Release av operativsystemet Redox OS 0.7 skrivet i Rust

Efter ett och ett halvt års utveckling har releasen av operativsystemet Redox 0.7, utvecklat med hjälp av Rust-språket och mikrokärnkonceptet, publicerats. Projektets utveckling distribueras under den kostnadsfria MIT-licensen. För att testa Redox OS erbjuds installation och Live-bilder på 75 MB. Sammansättningarna genereras för x86_64-arkitekturen och är tillgängliga för system med UEFI och BIOS.

När man förberedde den nya utgåvan låg huvudfokus på att säkerställa att den fungerar på riktig hårdvara. Huvudsakliga innovationer:

  • Bootloadern har skrivits om helt, där koden för uppstart på system med BIOS och UEFI är enhetlig och huvudsakligen skriven i Rust. Genom att ändra bootloadern har utbudet av hårdvara som stöds avsevärt utökats.
  • Förutom buggfixar har arbete gjorts i kärnan för att förbättra prestanda och utöka hårdvarustödet. CPU-specifika variabler har konverterats för att använda GS-registret. Reflektion (mappning) av allt fysiskt minne tillhandahålls, användningen av rekursiva minnessidor stoppas. Monteringskoden i inline-inlägg har skrivits om för att förbättra kompatibiliteten med framtida kompilatorutgåvor.
  • Lade till initialt stöd för AArch64-arkitektur.
  • En övergång har gjorts till att behandla alla filsökvägar i UTF-8-kodning.
  • Koden för att arbeta med ACPI AML (ACPI Machine Language) Specification - uefi.org har flyttats från kärnan till acpid-bakgrundsprocessen som körs i användarutrymmet.
  • Initfs-innehållet har flyttats till en ny fil, vilket gör det lättare att generera paket.
  • RedoxFS-filsystemet har skrivits om och övergått till att använda CoW-mekanismen (Copy-on-Write), där ändringar inte skriver över information, utan sparas till en ny plats, vilket har förbättrat tillförlitligheten avsevärt. Nya funktioner i RedoxFS inkluderar stöd för transaktionsuppdateringar, datakryptering med AES-algoritmen, samt autentisering av data och metadata med digitala signaturer. Delning av FS-kod i systemet och bootloader säkerställs.
  • Förbättringen av standard C-biblioteket Relibc som utvecklats av projektet, som kan fungera inte bara i Redox, utan även i distributioner baserade på Linux-kärnan, har fortsatt. Förändringarna gjorde det lättare att porta olika program till Redox och löste problem med många program och bibliotek skrivna i C.
  • En version av rustc-kompilatorn har förberetts som kan köras i Redox. Återstående uppgifter inkluderar att optimera prestanda och anpassa lastpakethanteraren för att arbeta i Redox-miljön.

Release av operativsystemet Redox OS 0.7 skrivet i Rust

Operativsystemet är utvecklat i enlighet med Unix-filosofin och lånar några idéer från SeL4, Minix och Plan 9. Redox använder konceptet med en mikrokärna, där endast interaktion mellan processer och resurshantering tillhandahålls på kärnnivå, och alla andra funktionalitet placeras i bibliotek som kan användas både kärnan och användarapplikationer. Alla drivrutiner körs i användarutrymme i isolerade sandlådemiljöer. För kompatibilitet med befintliga applikationer tillhandahålls ett speciellt POSIX-lager, vilket gör att du kan köra många program utan portering.

Systemet använder principen "allt är en URL". Till exempel kan URL:en "log://" användas för loggning, "bus://" för interaktion mellan processer, "tcp://" för nätverksinteraktion, etc. Moduler, som kan implementeras i form av drivrutiner, kärntillägg och användarapplikationer, kan registrera sina egna URL-hanterare, till exempel kan du skriva en I/O-portåtkomstmodul och binda den till URL:en "port_io:// ", varefter du kan använda den för att komma åt port 60 genom att öppna URL:en "port_io://60".

Användarmiljön i Redox är uppbyggd på basis av Orbitals eget grafiska skal (inte att förväxla med ett annat Orbital-skal som använder Qt och Wayland) och OrbTk-verktygslådan, som ger ett API som liknar Flutter, React och Redux. Netsurf används som webbläsare. Projektet utvecklar också sin egen pakethanterare, en uppsättning standardverktyg (binutils, coreutils, netutils, extrautils), ion-kommandoskalet, standard C-biblioteket relibc, den vim-liknande textredigeraren natrium, en nätverksstack och en fil systemet. Konfigurationen är inställd på Toml-språket.

Källa: opennet.ru

Lägg en kommentar