A Rust nyelven írt Redox OS 0.7 operációs rendszer kiadása

Másfél éves fejlesztés után megjelent a Rust nyelvvel és mikrokernel koncepcióval fejlesztett Redox 0.7 operációs rendszer kiadása. A projekt fejlesztései az ingyenes MIT licenc alatt kerülnek terjesztésre. A Redox OS teszteléséhez 75 MB méretű telepítést és élőképeket kínálnak. Az összeállításokat az x86_64 architektúrához hozzák létre, és elérhetők az UEFI-vel és BIOS-szal rendelkező rendszerekhez.

Az új kiadás elkészítésekor a fő hangsúly azon volt, hogy valódi hardveren működjön. Főbb újítások:

  • Teljesen átírták a rendszerbetöltőt, melyben a BIOS-os és UEFI-s rendszereken történő rendszerindítás kódja egységes, és főleg Rust nyelven íródott. A rendszerbetöltő megváltoztatása jelentősen kibővítette a támogatott hardverek körét.
  • A hibajavítások mellett a kernelben is dolgoztak a teljesítmény javításán és a hardver támogatásának bővítésén. A CPU-specifikus változókat a GS regiszter használatára alakították át. Az összes fizikai memória tükrözése (leképezése) biztosított, a rekurzív memórialapok használata leáll. A soron belüli beillesztések összeállítási kódját átírták, hogy javítsák a kompatibilitást a jövőbeli fordítói kiadásokkal.
  • Az AArch64 architektúra kezdeti támogatása hozzáadva.
  • Átállás történt az összes fájlútvonal UTF-8 kódolású feldolgozására.
  • Az ACPI AML (ACPI Machine Language) specifikációval való együttműködéshez szükséges kód – uefi.org – átkerült a kernelből a felhasználói térben futó acpid háttérfolyamatba.
  • Az Initfs tartalma egy új fájlba került, ami megkönnyíti a csomagok generálását.
  • A RedoxFS fájlrendszer átírásra került, és átállt a CoW (Copy-on-Write) mechanizmusra, amelyben a változtatások nem írják felül az információkat, hanem új helyre mentik, ami jelentősen javította a megbízhatóságot. A RedoxFS új szolgáltatásai közé tartozik a tranzakciós frissítések támogatása, az adatok AES algoritmussal történő titkosítása, valamint az adatok és metaadatok digitális aláírással történő hitelesítése. Az FS-kód megosztása a rendszerben és a rendszerbetöltőben biztosított.
  • Folytatódott a projekt által kifejlesztett szabványos C könyvtár Relibc továbbfejlesztése, amely nem csak Redoxban, hanem Linux kernelre épülő disztribúciókban is képes működni. A változtatások megkönnyítették a különféle programok Redoxra történő portolását, és számos C nyelven írt programmal és könyvtárral kapcsolatos problémákat megoldottak.
  • Elkészült a rustc fordító egy olyan verziója, amely Redoxban is futhat. A fennmaradó feladatok közé tartozik a teljesítmény optimalizálása és a rakománycsomag-kezelő adaptálása a Redox környezetben való munkához.

A Rust nyelven írt Redox OS 0.7 operációs rendszer kiadása

Az operációs rendszer a Unix filozófiának megfelelően fejlődik, és néhány ötletet a SeL4-től, a Minix-től és a Plan 9-től kölcsönöz. A Redox a mikrokernel koncepciót használja, amelyben csak a folyamatok és az erőforrás-kezelés közötti kommunikációt biztosítják kernel szinten, és minden egyéb funkciót elhelyeznek. kernel és felhasználói alkalmazások egyaránt használható könyvtárakban. Minden illesztőprogram a felhasználói térben fut, elszigetelt sandbox környezetben. A meglévő alkalmazásokkal való kompatibilitás érdekében egy speciális POSIX réteg biztosított, amely lehetővé teszi számos program portolás nélküli futtatását.

A rendszer a „minden egy URL” elvet alkalmazza. Például a „log://” URL használható a naplózáshoz, a „bus://” a folyamatok közötti kommunikációhoz, a „tcp://” a hálózati kommunikációhoz stb. Az illesztőprogramként, kernelbővítményként és egyedi alkalmazásként megvalósítható modulok regisztrálhatják saját URL-kezelőjüket, például írhatunk egy I/O hozzáférési modult és köthetjük a „port_io://” URL-hez, ami után a „port_io://60” URL megnyitásával érheti el a 60-as portot.

A Redox felhasználói környezete az Orbital saját grafikus shellje (nem tévesztendő össze a másik, Qt-t és Wayland-et használó Orbital-héjjal) és az OrbTk eszközkészlet köré épül, amely a Flutter, React és Reduxhoz hasonló API-t biztosít. A Netsurf webböngészőként használatos. A projekt emellett kifejleszt egy saját csomagkezelőt, egy szabványos segédprogramot (binutils, coreutils, netutils, extrautils), az ion parancshéjat, a relibc szabványos C könyvtárat, a nátrium vim-szerű szövegszerkesztőt, a hálózati veremet és a fájlt. rendszer. A konfiguráció a Toml nyelven van beállítva.

Forrás: opennet.ru

Hozzászólás