GNU/Hurd

Úvod

Výpočetní technika se již pevně zakořenila do života současné lidské společnosti. Každý člověk, nehledě na věk či pohlaví, se s přístroji řízenné počítačem setkává na každém kroku. Počítače jsou v mobilních telefonech, mikrovlnných troubách, ledničkách. Každé takovéto zařízení potřebuje k zajištění správné funkčnosti program, který bude řídit jeho činnost. Tomuto programu se v odborné terminologii říká operační systém (OS). Mezi nejznámější a na pracovních stanicích (PC) nejrozšířenější je OS Windows od společnosti Microsoft. Operačních systémů existuje celá řada. Od těch primitivních, které najdem v jednoduchých zařízeních typu pračka, až po ty komplexní, které řídí složité, životně důležité, systémy. V této práci bych Vám rád představil jeden z těch komplexnějších systemů, systém GNU/Hurd.

Historie

V roce 1983 začal Richard Matthew Stallman (RMS) svůj projekt GNU a odstartoval tím revoluci ve světě vývoje softwaru. Cílem projetku bylo a je vytvořit svobodný operační systém (OS). Během několika málo let, spolu s programátory z celého světa, vytvořil základní programové nástroje pro GNU OS. Jediné co mu v té době chybělo k naplnění jeho cíle bylo jádro operačního systému. Začal tedy práci na projeku Trix (Pojmenováno po jeho bývalé manželce.) V roce 1986 převzala patronát nad jádrem Trix nově vzniklá organizace the Free Software Foundation (FSF). Jestě než začala FSF provádět rozsáhlejší změny v jádře Trix, začal Professor Rashid z Carnegie-Mellon University pracovat na mikrojádře Mach. Z vyjádření FSF z té doby vyplývá, že by raději pokračovala v práci na jádře Mach než na vývoji Trixu. V roce 1990 se rozhodlo, že se nebude pokračovat ve vývoji vlastního jádra, ale bude použito jádro Mach. V roce 1991 startuje projekt Hurd. Cituji z textu té doby:

We are still interested in a multi-process kernel running on top of Mach. The CMU lawyers are currently deciding if they can release Mach with distribution conditions that will enable us to distribute it. If they decide to do so, then we will probably start work. CMU has available under the same terms as Mach a single-server partial Unix emulator named Poe; it is rather slow and provides minimal functionality. We would probably begin by extending Poe to provide full functionality. Later we hope to have a modular emulator divided into multiple processes. [Gnusletter, Jan. 1991].

Jádro Hurd není jádro v pravém slova smyslu. Je to kolekce serverů běžících nad mikrojádrem Mach. V roce 1993 začíná Linus Torvald práci na jádře Linux. Toto jádro je též šířené v souladu s GNU licencí. Je zastaralé koncepce, ale i přesto na sebe strhne převážnou většinu uživatelů a vývojářů svobodného softwaru. Vznik Linuxu je tedy takovým symbolickým posledním hřebíčkem do rakve projektu Hurd. V současné době existuje jediný operační systém používající jádro Hurd a to Debian GNU/Hurd . Tento operační systém vznik v roce 1998 a je stále ve vývoji. Na webových stránkách projektu se dozvíme, že systém prozatím není vhodný pro produkční nasazení.

Architektura

Nejzajímavější na celém systému GNU/Hurd je architektura. Většina současných operačních systémů používá monolitická jádra. Tato jádra v sobě obsahují vše potřebné pro běh systému, proto monolitická. Architektura těcho jader vychází z architektury, která vznika v 70 letech minulého století, která reagovala na požadavky své doby. Tato jádra se obtížně vyvíjejí a spravují. Chyba v jedné části kódu může způsobit nepředvídatelné chování nebo pád systému. S rozvojem výpočetní techniky vznikaly nové požadavky na funkčnost OS. Monolitické systémy to řešily po svém - začaly přidávat stále více a více kódu až celá struktura jádra stává čím dál tím méně přehledná. Některá moderní monolitická jádra přešla na modulární systém. Část funkčnosti je převedena do modulů, které lze za běhu systému přidávat a odebírat. Je to jen berlička řešící jeden problém. Ostatní problémy zůstávají. Jako reakce na tyto problémy v 80 a v 90 letech minulého století přichází koncept mikrojader. Tato jádra neumí skoro nic ve srovnání s jádry monolitickými. Starají se jen o nejzákladnější věci - podpora HW, správa paměti a meziprocesová komunikace. Díky tomu jsou velice malá, snadno udržovatelná a portovatelná. Veškerá další funkčnost, kterou monolitická jádra mají zahrnutu v sobě, je přenechána serverům. Servery jsou procesy, které spolu komunikují protřednictvím mikrojádra a poskytují navenek určitou funkčnost. Tato koncepce má, oproti monolitickým jadrům, spoustu výhod. Umožňuje snadnější ladění jádra při vývoji bez nutnosti provádět při každé změně restart. Žádná špatně napsaná část nemůže shodit celý systém. Koncepce je celkově pružnější a umožňuje řešit některé problémy elegantněji než monolitická jádra. Jako příklad se dá uvést projojení několika počítačů v síti tak, aby se pro uživatele tvářily jako jeden.

Schéma použití mikrojader pro transparentní použití více počítačů.

Mach

GNU Mach je mikrojádro pro GNU systém. Vychází z původního jádra napsaného profesorem Rashidem v polovině 80 let. Poskytuje základní abstrakci nad HW. Je objektově orientované a napsané v jazyce C. V současné době běží jen na procesorech řady x86.

Hurd

Kolekce serverů běžících nad mikrojádrem Mach. Cílem je nahradit zastaralé unixové systémy. Zjednodušeně řečeno Hurd + Mach = unixové jádro. Základní servery jsou:

V krátkosti se zmíním jen o authentification serveru. Je to nejdůležitější server. Přes něj začíná každá komunikace. Stará se též o kontrolu práv, tj. pokud některý proces chce začít komunikovat s jiným procesem, požádá authentification server. Pokud ten shledá, že žádající proces má správné oprávnění, komunikaci povolí. V opačném případě zamítne.

Závěr

GNU/Hurd je pozoruhodný OS, který v sobě spojuje sílu GNU a nové myšlenky jádra Hurd. Bohužel má/měl ve svém životě smůlu a přišel v nevhodný čas. V současném světě obchodu není místo pro experimenty, vyhrávají jednodušší řešení. A ač se to spoustě lidí nebude líbit, tak žádný OS, který neuspěje ve světě obchodu, nemá šanci na úspěch. Přesto doufám, že GNU/Hurd bude ta pověstná vyjímka potvrzující pravidlo. Přejme mu štěstí.


Použitá literatura

Valid HTML 4.01!