Vydání operačního systému Redox OS 0.7 napsaného v Rustu

Po roce a půl vývoje bylo zveřejněno vydání operačního systému Redox 0.7 vyvíjeného pomocí jazyka Rust a konceptu microkernel. Vývoj projektu je distribuován pod bezplatnou licencí MIT. Pro testování Redox OS je nabízena instalace a živé obrazy o velikosti 75 MB. Sestavy jsou generovány pro architekturu x86_64 a jsou k dispozici pro systémy s UEFI a BIOS.

Při přípravě nového vydání byla hlavní pozornost věnována zajištění práce na skutečném hardwaru. Hlavní inovace:

  • Kompletně přepsán byl bootloader, ve kterém je sjednocen kód pro bootování na systémech s BIOSem a UEFI a hlavně napsán v Rustu. Změnou bootloaderu se výrazně rozšířila řada podporovaného hardwaru.
  • V jádře se kromě oprav chyb pracovalo na zlepšení výkonu a rozšíření hardwarové podpory. Proměnné specifické pro CPU byly přesunuty do registru GS. Je zajištěna reflexe (mapování) veškeré fyzické paměti, je zastaveno používání stránek rekurzivní paměti. Kód assembleru v inline insertech byl přepsán, aby se zlepšila kompatibilita s budoucími vydáními kompilátoru.
  • Přidána počáteční podpora pro architekturu AArch64.
  • Přepnuto na zpracování všech cest k souborům v kódování UTF-8.
  • Kód pro práci se specifikací ACPI AML (ACPI Machine Language) - uefi.org byl přesunut z jádra do procesu acpid na pozadí běžícího v uživatelském prostoru.
  • Obsah Initfs byl přesunut do nového souboru, což usnadňuje balení.
  • Souborový systém RedoxFS byl přepsán a přešel na mechanismus CoW (Copy-on-Write), ve kterém změny nepřepisují informace, ale ukládají se na nové místo, což umožnilo dosáhnout výrazného zvýšení spolehlivosti. Z nových funkcí RedoxFS je zmíněna podpora transakčních aktualizací, šifrování dat pomocí algoritmu AES a také zajištění dat a metadat s digitálními podpisy. Je poskytováno sdílené použití kódu FS v systému a bootloaderu.
  • Pokračovalo vylepšování projektem vyvinuté standardní C knihovny Relibc, která může fungovat nejen v Redoxu, ale i v distribucích založených na linuxovém jádře. Změny usnadnily portování různých programů do Redoxu a vyřešily problémy s mnoha programy a knihovnami napsanými v jazyce C.
  • Byla připravena verze kompilátoru rustc, která může běžet v Redoxu. Ze zbývajících úkolů je zaznamenána optimalizace výkonu a přizpůsobení správce nákladních balíků pro práci v prostředí Redox.

Vydání operačního systému Redox OS 0.7 napsaného v Rustu

Operační systém se vyvíjí v souladu s filozofií Unixu a některé myšlenky si vypůjčuje od SeL4, Minix a Plan 9. Redox využívá koncept mikrojádra, ve kterém je na úrovni jádra zajištěna pouze komunikace mezi procesy a správa zdrojů a všechny ostatní funkce jsou umístěny v knihovnách, které lze používat jak jádro, tak uživatelské aplikace. Všechny ovladače běží v uživatelském prostoru v izolovaných prostředích sandbox. Pro kompatibilitu se stávajícími aplikacemi je k dispozici speciální vrstva POSIX, která umožňuje běh mnoha programů bez portování.

Systém uplatňuje zásadu „vše je URL“. Například URL „log://“ lze použít pro protokolování, „bus://“ pro meziprocesovou komunikaci, „tcp://“ pro síťovou komunikaci a tak dále. Moduly, které lze implementovat jako ovladače, rozšíření jádra a vlastní aplikace, mohou registrovat své vlastní obslužné rutiny URL, například můžete napsat modul pro přístup k I/O a svázat jej s adresou URL „port_io://“, poté můžete jej použít pro přístup k portu 60 otevřením adresy URL "port_io://60".

Uživatelské prostředí v Redoxu je postaveno na vlastním grafickém shellu Orbitalu (nezaměňovat s jiným Orbital shellem, který používá Qt a Wayland) a sadě nástrojů OrbTk, která poskytuje API podobné Flutter, React a Redux. Netsurf se používá jako webový prohlížeč. Projekt také vyvíjí vlastního správce balíčků, sadu standardních nástrojů (binutils, coreutils, netutils, extrautils), shell příkazů ion, standardní knihovnu C relibc, textový editor podobný sodíku vim, síťový zásobník a soubor Systém. Konfigurace je nastavena v jazyce Toml.

Zdroj: opennet.ru

Přidat komentář