Rust keeles kirjutatud operatsioonisüsteemi Redox OS 0.7 väljalase

Pärast poolteiseaastast arendustööd on avaldatud Rust keele ja mikrokerneli kontseptsiooni kasutades arendatud operatsioonisüsteemi Redox 0.7 väljalase. Projekti arendusi levitatakse tasuta MIT-litsentsi all. Redox OS-i testimiseks pakutakse 75 MB suurust installeerimist ja reaalajas pilte. Komplektid on loodud x86_64 arhitektuuri jaoks ja on saadaval UEFI ja BIOS-iga süsteemide jaoks.

Uue väljalase ettevalmistamisel keskenduti põhitähelepanu sellele, et see töötaks päris riistvaraga. Peamised uuendused:

  • Alglaadur on täielikult ümber kirjutatud, milles BIOS-i ja UEFI-ga süsteemide alglaadimise kood on ühtne ja kirjutatud peamiselt Rusti keeles. Alglaaduri muutmine on oluliselt laiendanud toetatud riistvara valikut.
  • Lisaks veaparandustele on kernelis tööd tehtud jõudluse parandamiseks ja riistvaratoe laiendamiseks. CPU-spetsiifilised muutujad on teisendatud GS-registri kasutamiseks. Pakutakse kogu füüsilise mälu peegeldamine (kaardistamine), rekursiivsete mälulehtede kasutamine peatatakse. Koostekood sisestes lisades on ümber kirjutatud, et parandada ühilduvust tulevaste kompilaatoriväljaannetega.
  • Lisatud AArch64 arhitektuuri esialgne tugi.
  • On tehtud üleminek kõigi failiteede töötlemisele UTF-8 kodeeringus.
  • ACPI AML-i (ACPI masinakeele) spetsifikatsiooniga töötamise kood - uefi.org on kernelist teisaldatud kasutajaruumis töötavale acpid taustaprotsessile.
  • Initfsi sisu on teisaldatud uude faili, mis muudab pakettide genereerimise lihtsamaks.
  • RedoxFS failisüsteem on ümber kirjutatud ja üle viidud CoW (Copy-on-Write) mehhanismile, mille puhul muudatused ei kirjuta infot üle, vaid salvestatakse uude asukohta, mis on oluliselt parandanud töökindlust. RedoxFS-i uued funktsioonid hõlmavad tehingute värskenduste tuge, andmete krüptimist AES-algoritmi abil, samuti andmete ja metaandmete autentimist digitaalallkirjadega. Tagatud on FS-koodi jagamine süsteemis ja alglaaduris.
  • Jätkus projektiga arendatud standardse C-teegi Relibc täiustamine, mis on võimeline töötama mitte ainult Redoxis, vaid ka Linuxi tuumal põhinevates distributsioonides. Muudatused hõlbustasid erinevate programmide redoxi portimist ja lahendasid paljude C-keeles kirjutatud programmide ja teekide probleemid.
  • Rustc kompilaatorist on koostatud versioon, mis töötab Redoxis. Ülejäänud ülesanded hõlmavad jõudluse optimeerimist ja kaubapaketi halduri kohandamist Redox keskkonnas töötamiseks.

Rust keeles kirjutatud operatsioonisüsteemi Redox OS 0.7 väljalase

Operatsioonisüsteem on välja töötatud kooskõlas Unixi filosoofiaga ja laenab mõningaid ideid SeL4-lt, Minixilt ja Plan 9-lt. Redox kasutab mikrokerneli kontseptsiooni, milles tuuma tasandil on tagatud ainult protsesside ja ressursside haldamise interaktsioon ning kõik muud Funktsionaalsus on paigutatud teekidesse, mida saab kasutada nii tuuma kui ka kasutajarakendustes. Kõik draiverid töötavad kasutajaruumis isoleeritud liivakastikeskkondades. Olemasolevate rakendustega ühilduvuse tagamiseks on kaasas spetsiaalne POSIX-kiht, mis võimaldab käivitada paljusid programme ilma teisaldamiseta.

Süsteem kasutab põhimõtet "kõik on URL". Näiteks URL-i "log://" saab kasutada logimiseks, "bus://" protsessidevaheliseks interaktsiooniks, "tcp://" võrgu interaktsiooniks jne. Moodulid, mida saab realiseerida draiverite, kernelilaiendite ja kasutajarakenduste kujul, saavad registreerida oma URL-i töötlejad, näiteks saate kirjutada I/O-pordi juurdepääsumooduli ja siduda selle URL-iga "port_io:// ", mille järel saate seda kasutada pordile 60 juurdepääsuks, avades URL-i "port_io://60".

Redoxi kasutajakeskkond on üles ehitatud Orbitali enda graafilise kesta (mitte segi ajada teise Orbitali kestaga, mis kasutab Qt ja Waylandi) ja OrbTk tööriistakomplekti alusel, mis pakub Flutterile, Reactile ja Reduxile sarnast API-d. Netsurfi kasutatakse veebibrauserina. Projekt arendab ka oma paketihaldurit, standardsete utiliitide komplekti (binutils, coreutils, netutils, extrautils), ioonikäskude kesta, standardset C raamatukogu relibc, vimi-laadset tekstiredaktorit naatriumi, võrgupinu ja faili süsteem. Konfiguratsioon on seatud Tomli keeles.

Allikas: opennet.ru

Lisa kommentaar