Operační systém je nejdůležitější software, který na svém počítači máte. Vzhled a funkce operačních systémů se za poslední desetiletí výrazně proměnily, přesto tu dnes stále máme systémy, které vznikaly v minulém století. Windows, Linux i macOS stojí na architekturách navržených dávno v historii. Každá nová funkce, bezpečnostní opatření nebo podpora moderního hardwaru byla jen přilepená na existující základ.
Tato evoluce není vyloženě špatná. Přináší obrovskou kompatibilitu. Zároveň s tím ale přichází také větší složitost a historická zátěž. Právě na tohle reagují čeští vývojáři z LiberSoft, kteří vytváří vlastní operační systém LiberSystem. Není to jen další distribuce Linuxu, jde o systém postavený od nuly, napsaný v Rustu a bořící spoustu doposud používaných principů.
Historická zátěž dnešních operačních systémů
Většina dnešních operačních systémů vznikala v době, kdy počítače fungovaly jinak než dnes. Internet byl teprve ve svých začátcích, kybernetické útoky prakticky neexistovaly a většina počítačů sloužila jedinému uživateli.
Architektura tehdejších systémů se zaměřovala na výkon a efektivní využití tehdejšího hardwaru. Na bezpečnost nebo izolaci jednotlivých aplikací se tolik nedbalo. Postupně se začaly přidávat bezpečnostní mechanismy, virtualizace, sandboxy či ochrana paměti, nicméně pouze jako další vrstva nad původní architekturou. Systémy jsou tak nesmírně rozsáhlé a komplikované.
Nový operační systém od nuly
LiberSystem přichází s odlišnou filozofií. Vývojáři nemusí zachovávat kompatibilitu s architekturou navrženou před desítkami let. Mohou prostě od začátku tvořit systém, který by měl fungovat v době virtualizace, víceprocesorových systémů, internetu věcí a cloudových služeb. Jak k tomu LiberSystem přistupuje?
Méně funkcí v jádře znamená menší riziko
Jedním z největších rozdílů je použití mikrojádra. Tradiční monolitická jádra obsahují velkou část systémových služeb přímo uvnitř, LiberSystem přesouvá většinu těchto funkcí mimo samotné jádro. Mikrojádro má na starost pouze nejnutnější činnosti, například správu paměti, plánování procesů apod. Ostatní služby, třeba správci zařízení či souborový systém, fungují jako samostatné procesy.
Největší výhodou je, že pokud některá služba selže, nespadne celý systém. Chyba se izoluje jen na konkrétní komponentu, která se dá restartovat či nahradit. Zároveň se zmenšuje množství kódu běžícího s nejvyššími oprávněními.
Přísná bezpečnostní pravidla
V tradičních operačních systémech aplikace dostane přístup ke zdrojům na základě identity skupiny či uživatele. Když má uživatel právo pracovat s určitým systémem, může s ním pracovat i spuštěná aplikace.
V LiberSystem je to jinak, každá aplikace dostane konkrétní oprávnění, která potřebuje pro svou činnost. Automatický přístup k celému souborovému systému či k ostatním službám tady neexistuje.
Vlastní souborový systém
LiberSystem přichází též s vlastním souborovým systémem LiberFS. Bylo zapotřebí mít moderní řešení se stejnými principy izolace, komunikace a zabezpečení, jaké jsou použité ve zbytku systému. LiberFS klade velký důraz na konzistenci dat. Minimalizuje riziko poškození dat při neočekávaném selhání některé komponenty či přerušení systému.
Aplikace nezávislé na procesoru
Zajímavým prvkem je též způsob spouštění aplikací. Místo klasických binárních programů určených pro jedinou architekturu využívá LiberSystem komponenty založené na WebAssembly a rozhraní WASI. Aplikaci tedy stačí vytvořit jednou a bude bez problémů běžet na různých procesorových architekturách. Vývojář nemusí chystat samostatné verze programu pro každou platformu. Aplikace běží izolovaně a se systémem komunikuje prostřednictvím přesně definovaných rozhraní.
Typované kontrakty pro jasnou komunikaci
LiberSystem má též vlastní jazyk LSIDL (LiberSystem Interface Definition Language), kterým definuje typované kontrakty mezi komponentami. Přesně popisuje každé rozhraní, z definice lze pak automaticky generovat serverové implementace, klientské knihovny a dokumentaci. Je to dobré pro další vývoj, protože nové komponenty pak mohou vznikat nezávisle na sobě, stačí dodržovat definované kontrakty.
Rust pomáhá omezovat časté chyby
LiberSystem je napsán v programovacím jazyce Rust, který klade velký důraz na bezpečnou práci s pamětí. Mnoho bezpečnostních zranitelností dnešních operačních systémů vzniká právě kvůli chybám při správě paměti (práce s již uvolněnými daty nebo přístup mimo vyhrazený prostor). Rust dokáže část těchto problémů odhalit už při překladu.
Nový směr pro operační systémy
LiberSystem zatím není konkurencí pro zavedené desktopové operační systémy. Tato fáze přijde až později. Vývoj celého operačního systému je nesmírně zdlouhavou a náročnou záležitostí. Aktuálně má LiberSystem možnost ovládání pouze přes terminál a obsahuje základní funkce. Do budoucna se plánuje i grafické uživatelské rozhraní. Cílem je stvořit univerzální operační systém, který by se mohl používat na desktopových zařízeních, v IoT, serverech, na mobilech a v mnoha dalších zařízeních.
Celý zdrojový kód je volně přístupný na GitHubu, můžete ho nejen vyzkoušet, ale i upravovat a experimentovat s ním. LiberSystem je vydáván pod licencí Unlicense. Na GitHubu najdete též obsáhlou dokumentaci s veškerými podrobnostmi.
O LiberSoft: LiberSoft je nezisková organizace se sídlem v Liberlandu, která vyvíjí inovativní open source software s cílem vytvářet decentralizovaná a bezpečná řešení.
