Hlavní navigace

Proč není Hurd ani po dvaceti letech hotový?

Petr Krčmář

Jádro Hurd je starším bratříčkem Linuxu, ale ten ho už dávno přerostl. Původně nadějné jádro projektu GNU je dnes pro mnohé jen prázdným pojmem, který proti Linuxu vůbec nic neznamená. Jak to tenkrát bylo a proč ještě pořád není Hurd hotový? Má vůbec šanci se dostat do použitelného stavu?

Co vlastně víte o projektu Hurd? To je takové jiné jádro místo Linuxu, které zatím není dokončené a nepoužívá se, zněla by asi odpověď většiny. Možná by si někdo vzpomněl na pojem mikrojádro, ačkoliv by většina nedokázala přesně vysvětlit, o co jde. A proč není dokončený? Pravděpodobně by nikdo nevěděl.

Hurd je dnes trochu jako yetti. Všichni o něm slyšeli, obvykle si pod jeho jménem něco představí, ale nikdo ho vlastně nikdy neviděl a konkrétních informací o něm je jako šafránu. Rozhodli jsme se to změnit a ukázat vám, že Hurd doopravdy existuje, vyvíjí se a dokonce je možné ho opravdu nasadit a vyzkoušet si jeho výhody (i nevýhody).

Začneme ale od píky – tedy od historie tohoto projektu. Jak a proč to vlastně celé začalo a hlavně – proč to ještě nijak nedopadlo.

Psal se rok 1990

Bylo nebylo, před dvaceti lety. Tedy tehdy už bylo. Projekt GNU se už sedm let slibně vyvíjel a měl za sebou docela solidní výsledky. Existoval kompilátor, standardní C knihovna (libc), kompilační automat make, shell Bash i editor Emacs a další aplikace. Mohli bychom tedy říci, že svobodná alternativa komerčního Unixu byla naprogramovaná a bylo možné v ní vytvářet další aplikace a rozvíjet ji.

Richard Stallman, zakladatel projektu GNU

Jediné, co tehdy chybělo, bylo jádro. Vývojáři GNU od roku 1986 používali pro běh svého systému jádro TRIX. To vzniklo v sedmdesátých letech na MIT a jeho vývoj vedl profesor Steve Ward. Ten se později rozhodl výtvor uvolnit jako svobodný software a GNU jej proto použilo jako výchozí jádro pro další práci.

O několik let později (přibližně v našem roce 1990) došlo k rozhodnutí TRIX opustit a zkusit něco jiného. Důvody byly dva: běželo na jedné jediné architektuře (Motorola 68000) a nebylo jednoduše portovatelné a vývojáři se rozhodli, že koncept mikrojádra bude pro GNU výhodnější.

Bylo rozhodnuto, že koncept jádra postaveného nad mikrojádrem Hurd bude podstatně modernější a bude mít řadu výhod proti konkurenčnímu Unixu – bude výkonnější, bezpečnější, svobodnější a flexibilnější než to, co tu bylo doposud. Tak se zrodil projekt Hurd, jehož cílem bylo v několika následujících letech vytvořit funkční a moderní jádro pro prostředí GNU.

Odbočka: co to přesně je ten Hurd?

Technicky vzato je Hurd sada démonů (někdy též nazývaných servery), které komunikují s mikrojádrem a dohromady zajišťují všechny potřebné funkce pro běh systému. V počátcích (pořád jsme v roce 1990) bylo zvoleno mikrojádro Mach, konkrétně Mach 3.0 z Carnegie Mellon University. Nad ním pak byly vyvíjeny jednotlivé servery.

Koncepce mikrojádra se od tradičního monolitu (jakým je dnes třeba Linux) zásadně liší. Monolitické jádro má veškerý kód v jednom jediném adresovém prostoru. Všechny součásti tak mají neomezené právo nakládat se systémem a nikdo je nijak neomezuje. Chyba v ovladači tak může poslat do kolen celý systém, protože „nad ovladačem“ už není nikdo, kdo by dokázal situaci řídit nebo zachránit.

Proti tomu mikrojádro je jen poměrně malý kousek kódu (pod 10 000 řádek), který se stará jen o základní komunikaci mezi procesy, správu paměti a plánování běhu procesů. Neobsahuje žádné ovladače ani jiné pokročilé funkce. Ty jsou delegovány mimo paměťový prostor jádra a běží de facto jako běžné aplikace v systému. Jsou oddělené vzájemně i od jádra samotného. Pro komunikaci je definováno rozhraní (API), skrze které probíhá veškerá komunikace. Výhoda je nasnadě: špatně napsaný ovladač obrazovky nerozbije celý systém, ale udělá si nepořádek jen ve svém paměťovém prostoru. Může tak být na dálku opraven a restartován, zatímco zbytek systému běží. Samozřejmě i toto má své meze.

Vysoká modularita, bezpečnost, možnost výměny serverů za běhu systému, to jsou hlavní výhody obvykle citované při diskusi o mikrojádrech. Byly to také důvody, které v roce 1990 vedly k rozhodnutí využít tuto koncepci v projektu GNU. Jinými slovy si vývojáři řekli nebudeme jen alternativou ke komerčnímu Unixu, ale my budeme modernější a mnohem lepší.

Linux se rozbíhá a předbíhá

Historie Linuxu je snad všeobecně známá, ale pro jistotu si ji zopakujeme. V dubnu roku 1991 se finský student Linus Torvalds rozhodl vyvinout vlastní jádro operačního systému. Jeho minimalistický výtvor na sebe rychle obrátil pozornost a získal rychle řadu vývojářů. O necelý rok později (březen 1992) už bylo možné nad jeho jádrem spouštět X server a o další dva roky později vyšla verze 1.0.0, která už měla všechny důležité součásti a mohla být prohlášena za plnohodnotné jádro operačního systému.

Linus Torvalds, autor Linuxu

Linus sám přiznal, že Linux začal vznikat jen proto, že Hurd nebyl k dispozici: Kdyby bylo minulé léto už k dispozici GNU jádro, ani by mě nenapadlo spouštět vlastní projekt. Ve skutečnosti hotové nebylo a stále není, napsal Linus Andymu Tanenbaumovi v roce 1992. To ještě netušil, že se situace nezmění ani za dvacet let.

O chvíli později (1994) se projekt Hurd ocitá v prvních problémech, protože původní vývojáři z Carnegie Mellon University přestávají vyvíjet mikrojádro Mach. Vývojáři Hurdu jsou tak nuceni migrovat na konkurenční Mach 4, který je vyvíjen na University of Utah. Záhy se ovšem situace opakuje a končí i vývoj jádra Mach 4. Vývojáři se tentokrát rozhodli nehledat nové mikrojádro, ale z opuštěného Mach 4 vzniká GNU Mach – jádro vyvíjené v rámci projektu Hurd.

Nůžky se rozevírají

Velmi rychle se ukázalo, že koncept monolitického jádra byla dobrá volba. Přestože podle GNU to nebylo ideální řešení, během několika let se ukázalo, že to byl nejrychlejší a nejefektivnější způsob, jak vytvořit velmi slušné a především plně použitelné jádro.

Navíc se Linux velmi rychle Hurdu vzdaloval, protože to byl reálně použitelný kód, který mohli uživatelé ihned nasadit. To pochopitelně lákalo další vývojáře a nové jádro začalo utíkat kupředu mílovými kroky. Stále aktivní jaderný vývojář Ted Tso to řekl už v roce 1992: Realita je taková, že Linux je tady a GNU ne – a to lidé na Hurdu pracují mnohem déle než Linus na Linuxu.

Zatímco vývojáři Hurdu řešili výměny mikrojader a hráli si s krásnou akademickou, moderní a čistou koncepcí mikrojádra, Linus dělal něco jiného – vytvářel reálný kód. To ovšem na začátku lidem z GNU nestačilo. Richard Stallman k tomu později řekl: Slyšeli jsme, že se vůbec nedá portovat na jiné architektury. Dnes to už není pravda, ale tehdy se to říkalo. Slyšeli jsme, že Linux je na úrovni původního Unixu, ale naše práce byla ambicioznější a mířila mnohem dál.

Linus měl ale ještě jednu výhodu, kromě toho, že jeho jádro bylo svobodné a mohli se na něm podílet další vývojáři. Bylo určeno pro běžný levný hardware, který měl každý doma. To neplatilo o Unixu a tenkrát ani o Hurdu, který stále ještě vyžadoval počítač s procesorem Motorola 68000. Linuxová komunita tak velmi rychle přijala myšlenku „udělej si sám“ a začala portovat Linux na všechno možné: počítače, herní konzole, fotoaparáty, PDA a další vybavení.

Důležitým momentem tedy bylo, že lidé Linux vzali za vlastní a začali se podílet na jeho vývoji. Komunita vývojářů začala růst a Linux s ní. V té době Linux představoval prototyp svobodného a otevřeného software se vším všudy. Hurd byl proti tomu jen akademickou hračkou směrovanou lidmi z FSF a GNU. Tak tomu zůstalo vlastně dodnes.

O dvacet let později

Čas se nám posunul o více než dvacet let kupředu, ale Hurd je stále na svém původním místě – je to projekt uzavřené skupiny akademiků, která se stále snaží vyrobit ve své „laboratoři“ dokonalého jedince. Hurdu se nikdy nepodařilo prorazit do světa a oslovit větší komunitu vývojářů. Proto jeho vývoj není nijak rychlý a postrádá linuxovskou živelnost.

Marcus Brinkmann, dlouholetý šéf vývoje Hurdu

Podivnou zkostnatělost vývoje dokládá také „nejnovější“ snaha vývojářů opět Hurd portovat na jiné mikrojádro. V roce 2004 totiž bylo rozhodnuto, že by bylo vhodné, aby Hurd přešel na opravdu moderní (!) mikrojádro a začaly práce na portaci pro mikrojádro L4. Ta ale po pár letech skončila v prázdnu. O tři roky později následovala snaha přejít na mikrojádro Coyotos, která opět tak nějak nedopadla a v roce 2009 byla oficiálně odpískána. Mezi tím se ještě ale stihli vývojáři pokusit o port pro mikrojádro Viengoos, zatím také neúspěšně.

V současnosti výměna mikrojádra nepokračuje a většina vývojářů se věnuje práci na stávajícím mikrojádře GNU Mach. Ostatní pokusy jsou buď zrušeny, přerušeny nebo na ně jednoduše není čas. Ale čas přesto neúprosně běží. Poprvé vývojáři tvrdili, že je Hurd připraven už v roce 2001. Od té doby uběhlo deset let a výsledek je stále v nedohlednu.

Ukázalo se, že největší chybou bylo úvodní rozhodnutí založit celý projekt na mikrojádře Mach. To, co mělo být kvalitním odrazovým můstkem nakonec celý projekt pohřbilo. Přiznal to po letech i sám Richard Stallman: Nesu plnou zodpovědnost za rozhodnutí vyvinout GNU jádro nad mikrojádrem Mach. Rozhodnutí, které je důvodem, proč se celý vývoj tak protáhl. Myslel jsem si, že si použitím Machu ušetříme hodně práce a projekt urychlíme. Mýlil jsem se.

Přesto Hurd existuje

Ačkoliv by výše uvedený příběh mohl vypadat jako totální selhání celého GNU a Hurdu, je možné na něm najít i pozitivní stránky. GNU sehrál velmi důležitou roli, bez které bychom tu pravděpodobně neměli dnešní distribuce založené na Linuxu. Jeho předchozí práce umožnila vytvořit kvalitní základ alternativního unixového prostředí a následné selhání paradoxně dalo vzniknout mnohem lepšímu jádru, i když to z GNU nevzešlo.

Hurd je tak cimrmanovským „pionýrem slepých uliček“, jak už napsal Linus v roce 2006: Je směšné, jak zastánci mikrojader tvrdí, že jejich jádro je ‚jednodušší‘ než tradiční jádra. Není. Je mnohem komplikovanější, protože staví bariéry mezi datové struktury. Napsat a spravovat mikrojádro je proto mnohem těžší.

Na druhou stranu nemůžeme říct, že Hurd neexistuje a nedá se použít. Příště si proto ukážeme, jak doopravdy Hurd vypadá, jak se provozuje a co umí. Předvedeme si jeho použití v několika známých distribucích a řekneme si o jeho výhodách i nevýhodách víc. Zůstaňte naladěni.

Našli jste v článku chybu?

9. 5. 2011 10:03

Zdenek (neregistrovaný)

Hardware, ktery muzete znicit pomoci software si nic jineho nezaslouzi :)

9. 5. 2011 9:59

Michal2 (neregistrovaný)

Na vine je akademicke prostredi. Kdyz chci neco vymyslet- akademicke prostredi je pro to perfektni. Na zakladni vyzkum idealni.

Kdyz ale chci neco opravdu vytvorit- pak je jedno z nejhorsich moznych. Vetsi koncentraci v praxi nepouzitelnych snilku naprosto odtrzenych od reality s hlavou v oblacich a nulovym tahem na branku svet nevidel. Navic maji vetsinou zapornou motivaci- kdyz praci dokonci tak by se museli venovat necemu jinemu. Publikovatelne vysledky generuje i neustale motani se v miste,…

Vitalia.cz: To nejhorší při horečce u dětí: Febrilní křeče

To nejhorší při horečce u dětí: Febrilní křeče

Vitalia.cz: 7 originálních adventních kalendářů pro mlsné

7 originálních adventních kalendářů pro mlsné

120na80.cz: Boreliózu nelze žádným testem prokázat

Boreliózu nelze žádným testem prokázat

120na80.cz: Rovnátka, která nejsou vidět

Rovnátka, která nejsou vidět

DigiZone.cz: R2B2 a Hybrid uzavřely partnerství

R2B2 a Hybrid uzavřely partnerství

DigiZone.cz: Sat novinky: slovenská TV8 HD i ruský NTV Mir

Sat novinky: slovenská TV8 HD i ruský NTV Mir

Vitalia.cz: Nejlepší obranou při nachlazení je útok

Nejlepší obranou při nachlazení je útok

Měšec.cz: U levneELEKTRO.cz už reklamaci nevyřídíte

U levneELEKTRO.cz už reklamaci nevyřídíte

Měšec.cz: Za palivo zaplatíte mobilem (TEST)

Za palivo zaplatíte mobilem (TEST)

Lupa.cz: Levný tarif pro Brno nebude, je to kartel

Levný tarif pro Brno nebude, je to kartel

Měšec.cz: Exekuční poradna: ptejte se online

Exekuční poradna: ptejte se online

Vitalia.cz: Proč vás každý zubař posílá na dentální hygienu

Proč vás každý zubař posílá na dentální hygienu

Lupa.cz: Insolvenční řízení kvůli cookies? Vítejte v ČR

Insolvenční řízení kvůli cookies? Vítejte v ČR

Podnikatel.cz: Podnikatelům dorazí varování od BSA

Podnikatelům dorazí varování od BSA

Lupa.cz: Propustili je z Avastu, už po nich sahá ESET

Propustili je z Avastu, už po nich sahá ESET

Lupa.cz: Obchod budoucnosti je bez front, košíků i pokladen

Obchod budoucnosti je bez front, košíků i pokladen

Měšec.cz: Jak vymáhat výživné zadarmo?

Jak vymáhat výživné zadarmo?

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

DigiZone.cz: Česká televize mění schéma ČT :D

Česká televize mění schéma ČT :D

Root.cz: Certifikáty zadarmo jsou horší než za peníze?

Certifikáty zadarmo jsou horší než za peníze?