Na FreeHostingu Endora běží desítky tisíc webů. Přidejte se ještě dnes!

Vytvořit web zdarma

Na FreeHostingu Endora běží desítky tisíc webů. Přidejte se ještě dnes!

Vytvořit web zdarma

Rust se stěhuje do jader operačních systémů. Z Česka přichází LiberSystem

Statistika, která za posledních pět let změnila uvažování o bezpečnosti softwaru, pochází z Androidu. V roce 2019 měly chyby při práci s pamětí na svědomí 76 procent všech tamních zranitelností. V roce 2024 to bylo 24 procent a loni poprvé klesl podíl pod dvacet. Google přitom starý kód nepřepisoval — pouze začal nový psát v jazycích, které tuhle třídu chyb neumožňují. Především v Rustu.

Číslo je zajímavé i proto, že běžný oborový průměr se dlouhodobě drží kolem sedmdesáti procent. Přetečení bufferu, použití uvolněné paměti a podobné chyby tvoří většinu závažných zranitelností napříč celým odvětvím a jsou zároveň ty, které se nejčastěji zneužívají na dálku.

Odtud pramení trend, který se v posledních letech přesouvá z aplikací do těch nejnižších vrstev. Rust má od verze 6.1 podporu přímo v jádře Linuxu, Microsoft přepsal do Rustu vybrané části Windows a americký úřad pro kybernetickou bezpečnost vydal doporučení, aby výrobci softwaru přecházeli na paměťově bezpečné jazyky.

Otázka, kterou si kladou nová jádra

Přepisovat existující systémy je ale jen jedna možnost. Druhá zní: co kdyby se operační systém navrhoval znovu, s dnešními znalostmi a bez ohledu na zpětnou kompatibilitu?

Tuhle otázku si klade i český projekt LiberSystem, operační systém psaný v Rustu. Vzniká pod hlavičkou open-source organizace LiberSoft a nejde ani o distribuci Linuxu, ani o unixového klona. Jádro, ovladače i systémové služby jsou psané od nuly a systém stojí na architektuře, která se v komerčních operačních systémech objevuje jen výjimečně.

Tou architekturou je mikrojádro. Zatímco Linux nebo Windows drží ovladače, souborové systémy a síťovou vrstvu uvnitř privilegovaného jádra, mikrojádro tuhle výsadu odebírá skoro všemu. V jádře zůstává jen správa paměti, plánování a předávání zpráv; zbytek běží jako oddělené procesy. Chyba v ovladači síťové karty pak neshodí systém, protože ovladač lze restartovat samostatně.

Myšlenka není nová — v akademické podobě ji zpopularizoval MINIX, v komerční QNX, který dodnes pohání palubní systémy aut, a formálně ověřené mikrojádro seL4 se používá tam, kde je bezpečnost kritická. Praktickou překážkou byl vždycky výkon: předávání zpráv mezi procesy je dražší než přímé volání uvnitř jádra. Modernímu hardwaru a jazykům, které umí zaručit bezpečnost bez běhové režie, ale tenhle handicap ubývá.

Čím se LiberSystem liší od ostatních

Rustových systémových projektů existuje víc. Redox OS jde podobnou cestou už deset let, Google vyvíjí systém Fuchsia s mikrojádrem Zircon. LiberSystem se od nich odlišuje především bezpečnostním modelem a způsobem, jakým popisuje rozhraní mezi součástmi.

Přístup k prostředkům neřídí uživatelská práva, jak je zvykem v unixových systémech, ale takzvané kapability. Proces nedostane obecné oprávnění „jsi root, smíš všechno“, nýbrž konkrétní, nepadělatelný token opravňující k jedné věci. Kdo nedostal kapabilitu k síťovému rozhraní, nemá jak se k němu dostat — ani omylem, ani po kompromitaci.

V praxi to mění způsob, jakým se přemýšlí o kompromitaci. Když v běžném systému získá útočník kontrolu nad procesem, zdědí všechna práva uživatele, pod kterým proces běží. V kapabilitním modelu zdědí jen ty konkrétní kapability, které daný proces skutečně dostal — a to bývá výrazně méně.

Rozhraní jednotlivých služeb jsou popsaná ve vlastním jazyce LSIDL a z těchto popisů se generuje kód i dokumentace. Výsledkem je, že komunikace mezi službami má strojově ověřitelný tvar a nespoléhá na dohodu vývojářů.

Systém také opouští klasické mountpointy. Data se adresují přes explicitní svazky, takže cesta k souboru vždycky patří ke konkrétnímu úložišti a nemůže se stát, že po nepřipojeném disku začne aplikace zapisovat jinam. Vlastní souborový systém LiberFS pracuje s copy-on-write, kontrolními součty a snapshoty.

Jedno jádro běží na architekturách x86_64, ARM64 i RISC-V a startuje přes vlastní UEFI zavaděč. S vícejádrovými procesory systém počítá od návrhu, ne jako s funkcí doplněnou dodatečně. Zdrojový kód je uvolněný pod licencí Unlicense, tedy prakticky bez jakýchkoli podmínek užití.

Realistický pohled

Autoři sami mluví o experimentu a rané fázi vývoje, ne o náhradě zavedených systémů. Je to podstatné upřesnění: nový operační systém dnes nesoupeří jen s technickými parametry konkurence, ale s desetiletími nasbíraných ovladačů a knihoven. Právě proto se podobné projekty obvykle uplatní nejdřív ve specializovaných nasazeních — v zařízeních typu appliance, v edge computingu, v bezpečnostním výzkumu.

Zajímavou stránkou projektu je otevřenost dokumentace. Kromě návrhového dokumentu je veřejně dostupný i threat model, tedy rozbor toho, proti čemu se systém brání a kudy vedou jeho bezpečnostní hranice. U projektů téhle velikosti bývá dokumentace to první, co se odloží na později.

Pro české IT prostředí je LiberSystem pozoruhodný už tím, že vůbec vznikl. Systémový vývoj na téhle úrovni je náročný a projektů, které staví vlastní jádro, souborový systém i nástroje pro ladění současně, se v Evropě objevuje jen hrstka.

Vyzkoušet se dá už teď, byť zatím spíš ve virtuálním stroji než na produkčním hardwaru. Repozitář obsahuje kromě kódu i pokyny k sestavení, testovací sadu a nástroje pro ladění běžící instance; vývojáři zároveň vítají příspěvky komunity a hlášení chyb.

Zdrojové kódy a dokumentace jsou dostupné na webu projektu, další aktivity vývojářů pak na stránkách open-source organizace LiberSoft.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *