Jak vlastně HelenOS vznikl? Jako školní projekt?
Ve druháku na matfyzu jsem měl programovat zápočtový projekt v C/C++, a tak jsem se s vedoucím dohodl, že výsledkem bude jednoduchý kernel. Později přišly další předměty, ve kterých bylo možné kód dále přirozeně rozšířit například o podporu víceprocesorových systémů a první ne-x86 port pro mips32.
Později jsem si zapsal předmět Softwarový projekt, což je skupinový počin většího rozsahu, pracuje na ní pět až šest studentů a mají na to několik semestrů. Takhle se mi podařilo sehnat další lidi a většina z nich na projektu už zůstala. Zhruba v té době také dostal projekt jméno HelenOS.
Jak vzniklo jméno HelenOS?
Když to byl ještě čistě můj projekt, měl spoustu různých jmen. V nějaký okamžik jsem kernelu začal říkat Spartan kernel, protože byl spartánský, stručný. Když se ke mě připojili další lidé, museli jsme vymyslet jméno pro celý projekt, nejen pro jádro samotné. Proto jsme chvíli hledali a z následného hlasování vyplynulo jméno HelenOS. Připadalo nám, že zní řecky a pasuje k tomu původnímu Spartan (smích). Navíc Helena byla původně ze Sparty.
Kdo je Jakub Jermář?
Narodil se v Praze, kde i vystudoval Softwarové systémy na Matematicko-fyzikální fakultě UK. Poté se oženil a šel pracovat do Sun Microsystems, kde analyzoval a opravoval chyby v jádře operačního systému Solaris. Necelý rok po koupení Sunu firmou Oracle odešel vyvíjet virtualizační technologii do společnosti AVAST Software. Nyní žije se svou manželkou a malým synem v Berouně. Mezi jeho záliby patří vývoj svobodného software – konkrétně systému HelenOS – a, pokud zbude nějaký čas, také historie, jazyky a cestování.
Když se řekne „studentský projekt“, proč vlastně HelenOS neskončil v páťáku na matfyzu a pokračuje?
Když se mě na to lidé ptají, s oblibou říkám, že HelenOS nemá žádný definitivní cíl. Nikdy si neřekneme „tak, je to hotové, můžeme jít od toho“. Náš projekt je svým způsobem svým vlastním cílem ve smyslu hesla „i cesta může být cíl“ nebo „zkoušel jsem přestat, ale nejde to“. HelenOS nás mnoha věcem naučil, hodně nás posunul.
Jaký je aktuální stav projektu?
Pořád není hotový a vlastně ani nikdy hotový nebude. Ani není ve stavu, že byste si ho mohl nainstalovat na notebook a psát v něm články. Není možné HelenOS zatím ani provozovat třeba na web serveru s Apachem. I když už máme zárodek web serveru.
Máme stabilní kernel, který je jednoduše portovatelný a v současné době běží na sedmi architekturách, což je jedna z nejzajímavějších vlastností HelenOSu, kterou se jiné podobné projekty pochlubit nemůžou. Máme souborové systémy, máme jakž takž funkční networking, ale s ním nejsme úplně spokojení.
Je vlastně cílem, aby to bylo nasaditelné v produkčním prostředí? Třeba na tom web serveru?
Když jsme v roce 2004 začali skutečně psát HelenOS, tak jsme si říkali, že by bylo hezké jednoho dne si ho pustit na vlastním serveru a mít něj web server. I dneska už byste mohl udělat nějaký black box, strčit do něj HelenOS a použít ho jako souborový server. Proč byste to ale dělal, když máte k dispozici Linux? Pokud se nám u projektu ale podaří udržet a lákat na něj další studenty, třeba se časem do takového stádia opravdu dostaneme.
A už se o nějaké nasazení někdo pokusil?
Jeden občasný člen našeho týmu je Američan žijící na Filipínách a snad z legrace nás kdysi strašil tím, že by HelenOS nasadil v jedné své zakázce. Pracuje na volné noze a přemýšlel, jak zajistit, aby turbíny nějaké vodní elektrárny neucpávaly medúzy. Uvažoval, že HelenOS by byl dobrý systém pro řízení jeho systému. Ale vůbec nevím, jak chtěl v praxi ten problém řešit.
Letos jste se zapojili i do Google Summer of Code. Co si od účasti slibujete?
Podařilo se nám projít až napotřetí a už se nám hlásí studenti z celého světa – z Ruska, Rumunska, Anglie, Polska i Indie. Máme vymyšlené projekty, jejichž realizací by se HelenOS najednou stal výrazně použitelnějším systémem.
Například důležitým milníkem, kterého bychom chtěli dosáhnout, je, aby HelenOS byl self hosting. Když ho chceme zkompilovat teď, musíme udělat cross-kompilaci z Linuxu. My ale chceme kompilovat aplikace přímo v HelenOSu. Samozřejmě nevěřím tomu, že bychom po letošním Summer of Code tohohle cíle už dosáhli. Ale pokud se všechno povede, budeme mu rozhodně blíž.
Jak těžké bylo se do Summer of Code dostat?
Bylo to poměrně obtížné, jak jsem říkal, podařilo se až na třetí pokus. Museli jsme vyplnit docela dlouhý formulář, ve kterém odpovídáte na otázky typu: „Jak se vypořádáte se studenty, kteří s vámi přestanou komunikovat a slehne se po nich zem?“ nebo „Co si slibujete od Summer of Code?“ a podobně. Lidé z Google to pak nějakým netransparentním způsobem vyhodnocují a pak zveřejní seznam organizací, které se daný rok do projektu zapojí. Letos mělo štěstí přesně 175 organizací.
Letos jsme přihlášku podali trochu jinak, přihlásili jsme se pod patronací Karlovy univerzity, Katedry distribuovaných a spolehlivých systémů, což je možná ten důvod, proč se to letos povedlo. A nebo možná taky ne.
HelenOS vyvíjejí i další studenti z matfyzu, že?
Ano, všichni původní autoři HelenOSu jsou absolventi matfyzu a už sedm dalších studentů nám na HelenOS obhájilo diplomové práce. Jedna z chystaných by měla přinést řešení problému bezpečnosti. Souborový systém teď například nijak neřeší přístupová práva a každý si může zapisovat co chce kam chce. Po dokončení této diplomové práce bychom měli mít k dispozici bezpečnostní server, který bude řídit přístupy k jednotlivým objektům.
Takže studenti na matfyzu běžně používají HelenOS pro svou diplomku?
Neřekl bych, že běžně. Diplomek na matfyzu vznikne každý rok velké množství a na HelenOS obhájí ročně dva až tři studenti. Ale ta možnost tu je a teď třeba probíhají další dva projekty v rámci předmětu Softwarový projekt – jeden připravuje podporu pro USB a druhý framework pro síťové karty.
Mluvil jste o serveru. Základem HelenOS je mikrokernel. Jaké jsou vaše zkušenosti s tímhle konceptem?
Kdybych měl srovnat třeba HelenOS, Minix a Hurd, což jsou všechno multiserverové mikrojádrové systémy, tak samozřejmě Hurd je z nich nejdál. I když z nějakého důvodu není mediálně tak úspěšný jako Minix, který si takovou publicitu podle mě až tak nezaslouží. Hurd umí nejvíc věcí a nejvíc věcí v něm funguje.
Jeho vývojáři na mě ale působí zvláštním dojmem, protože nechtějí Hurd vydat do té doby, dokud nebude úplně hotový, dokonalý a nebude plnohodnotnou náhradou linuxového jádra. Každopádně koncept mikrojádra je funkční, i když se hodně přeceňuje.
Občas čtu nadšené názory na téma, jak je mikrojádrová architektura skvělá, protože v systému všechno popadá a ten stejně běží dál. Samozřejmě záleží na tom, co vám spadne. Když havaruje VFS, tak je konec. Vy sice můžete pořád přepínat mezi konzolemi, ale už nejste schopni vůbec nic podstatného udělat. Je to spíš zajímavý koncept, jak psát operační systém. Můžete ho psát naprosto modulárně a rozdělit práci mezi nezávislé týmy.
Tím jsme se dostali k samotnému modelu vývoje. Jak vám vyhovuje open source vývoj?
Myslím si, že kdyby HelenOS nebyl open-source, vůbec bychom nebyli schopni přilákat pozornost studentů. Teprve teď se nám ale začalo opravdu dařit je oslovovat. Za deset let vývoje HelenOS nám přispívalo už přibližně 45 studentů a za poslední roky se nám daří počty studentů zvyšovat. Navíc když jsme teď v Google Summer of Code, je zájem ještě větší. Mnoho lidí motivuje už jen ta vidina případného stipendia a už sami začínají posílat patche. Kdyby to takhle zůstalo, bylo by to skvělé.
Zatím nemáte mnoho zahraničních přispěvatelů, chcete to změnit?
Byli bychom rádi, kdyby se nám podařilo získat třeba studenty z Číny nebo jiných zemí. Dost by nám v tom měl pomoci právě Summer of Code. Zapojení zahraničních studentů nám pak otevře cestu na další světové univerzity. HelenOS by se tam pak mohl dostat jako výukový systém nebo prostředí, ve kterém pak mohou studenti dělat semestrální práce nebo diplomky. Chceme se trochu dostat do světa.
Pracujete jako vývojář Sunu, respektive dnes Oracle. Jak to jde dohromady s HelenOS?
V případě Sunu to bylo docela dobré, vlastně z jejich strany existovala taková tichá podpora. Jako diplomku jsem dělal portaci HelenOS na architekturu SPARC V9. Sun mi dokonce zapůjčil stroj s procesorem UltraSPARC II a nejbližší management mě v mém úsilí hodně podporoval.
A vstoupil do toho nějak Oracle?
S příchodem Oracle se toho hodně změnilo. Když došlo k akvizici, tak jsme dostali k podepsání takzvaný Proprietary Informational Agreement. To je takový hodně ošklivý právnický text, který se dle mého názoru snaží zaměstnance přimět k souhlasu se silnějšími podmínkami než je standardní znění autorského zákona. Ten říká zhruba to, že zaměstnavatel vykonává majetková autorská práva na díla, která zaměstnanec vytvoří v rámci svých pracovních povinností, pokud není sjednáno jinak. Já jsem měl silné podezření, že právě tento dokument se dohodu snaží nastavit tak, že by zaměstnavatel vykonával veškerá majetková autorská práva na veškerá díla, která vytvořím. To se mi samozřejmě nelíbilo a tak jsem ten dokument, tak jak mi ho předložili, nepodepsal. To mělo za následek řadu akcí a reakcí a spolu s dalšími okolnostmi přispělo k mému rozhodnutí změnit zaměstnavatele.
Děkuji za rozhovor.
(Foto: Ondřej Hošt)