Lëshimi i sistemit operativ Redox OS 0.7 i shkruar në Rust

Pas një viti e gjysmë zhvillimi, është publikuar lëshimi i sistemit operativ Redox 0.7, i zhvilluar duke përdorur gjuhën Rust dhe konceptin e mikrokernelit. Zhvillimet e projektit shpërndahen nën licencën pa pagesë MIT. Për testimin e Redox OS, ofrohen instalime dhe imazhe të drejtpërdrejta me madhësi 75 MB. Asambletë janë krijuar për arkitekturën x86_64 dhe janë të disponueshme për sistemet me UEFI dhe BIOS.

Gjatë përgatitjes së versionit të ri, fokusi kryesor ishte në sigurimin që ai të funksiononte në pajisje reale. Risitë kryesore:

  • Bootloader është rishkruar plotësisht, në të cilin kodi për nisjen në sistemet me BIOS dhe UEFI është i unifikuar dhe kryesisht i shkruar në Rust. Ndryshimi i ngarkuesit të ngarkimit ka zgjeruar ndjeshëm gamën e pajisjeve të mbështetura.
  • Përveç rregullimeve të gabimeve, është bërë punë në kernel për të përmirësuar performancën dhe për të zgjeruar mbështetjen e harduerit. Variablat specifike të CPU-së janë konvertuar për të përdorur regjistrin GS. Sigurohet reflektimi (hartësimi) i të gjithë memories fizike, përdorimi i faqeve të memories rekursive ndalet. Kodi i montimit në insertet inline është rishkruar për të përmirësuar përputhshmërinë me lëshimet e ardhshme të përpiluesit.
  • Mbështetja fillestare e shtuar për arkitekturën AArch64.
  • Është bërë një kalim në përpunimin e të gjitha shtigjeve të skedarëve në kodimin UTF-8.
  • Kodi për të punuar me Specifikimin ACPI AML (ACPI Machine Language) - uefi.org është zhvendosur nga kerneli në procesin e sfondit acpid që funksionon në hapësirën e përdoruesit.
  • Përmbajtja e Initfs është zhvendosur në një skedar të ri, duke e bërë më të lehtë gjenerimin e paketave.
  • Sistemi i skedarëve RedoxFS është rishkruar dhe ka kaluar në përdorimin e mekanizmit CoW (Copy-on-Write), në të cilin ndryshimet nuk mbishkruajnë informacionin, por ruhen në një vendndodhje të re, gjë që ka përmirësuar ndjeshëm besueshmërinë. Karakteristikat e reja të RedoxFS përfshijnë mbështetjen për përditësimet e transaksioneve, enkriptimin e të dhënave duke përdorur algoritmin AES, si dhe vërtetimin e të dhënave dhe meta të dhënave me nënshkrime dixhitale. Sigurohet ndarja e kodit FS në sistem dhe bootloader.
  • Përmirësimi i bibliotekës standarde C Relibc të zhvilluar nga projekti, i aftë për të punuar jo vetëm në Redox, por edhe në shpërndarjet e bazuara në kernelin Linux, ka vazhduar. Ndryshimet e bënë më të lehtë transferimin e programeve të ndryshme në Redox dhe zgjidhën probleme me shumë programe dhe biblioteka të shkruara në C.
  • Është përgatitur një version i përpiluesit rustc që mund të ekzekutohet në Redox. Detyrat e mbetura përfshijnë optimizimin e performancës dhe përshtatjen e menaxherit të paketave të ngarkesave për të punuar në mjedisin Redox.

Lëshimi i sistemit operativ Redox OS 0.7 i shkruar në Rust

Sistemi operativ zhvillohet në përputhje me filozofinë Unix dhe huazon disa ide nga SeL4, Minix dhe Plani 9. Redox përdor konceptin e mikrokernelit, në të cilin sigurohet vetëm komunikimi ndërmjet proceseve dhe menaxhimit të burimeve në nivelin e kernelit dhe vendoset të gjitha funksionet e tjera. në bibliotekat që mund të përdoren si në kernel ashtu edhe në aplikacionet e përdoruesit. Të gjithë drejtuesit funksionojnë në hapësirën e përdoruesit në mjedise të izoluara sandbox. Për pajtueshmërinë me aplikacionet ekzistuese, ofrohet një shtresë speciale POSIX që lejon shumë programe të ekzekutohen pa transferim.

Sistemi zbaton parimin "gjithçka është një URL". Për shembull, URL-ja "log://" mund të përdoret për regjistrim, "bus://" për komunikim ndër-procesor, "tcp://" për komunikim në rrjet, e kështu me radhë. Modulet, të cilat mund të implementohen si drejtues, shtesa kernel dhe aplikacione të personalizuara, mund të regjistrojnë mbajtësit e tyre të URL-ve, për shembull, ju mund të shkruani një modul aksesi I/O dhe ta lidhni atë me URL-në "port_io://", pas së cilës mund ta përdorni për të hyrë në portin 60 duke hapur URL-në "port_io://60".

Mjedisi i përdoruesit në Redox është ndërtuar rreth guaskës grafike të Orbital (për të mos u ngatërruar me guaskën tjetër Orbital që përdor Qt dhe Wayland) dhe paketën e veglave OrbTk, e cila ofron një API të ngjashme me Flutter, React dhe Redux. Netsurf përdoret si një shfletues në internet. Projekti zhvillon gjithashtu menaxherin e tij të paketave, një grup shërbimesh standarde (binutils, coreutils, netutils, extrautils), guaskën e komandës jonike, bibliotekën standarde relibc C, redaktuesin e tekstit të ngjashëm me sodium vim, grupin e rrjetit dhe skedarin sistemi. Konfigurimi është vendosur në gjuhën Toml.

Burimi: opennet.ru

Shto një koment