Za jídlo, šaty a vzduch otročíme na programech z temných světů

NetBSD: Poslední pořádný systém

Windows, Linux a Mac OS X. Na těchto třech systémech se v posledních pěti letech ustálilo společenské povědomí o operačních systémech. Tyto systémy jsou předmětem debat na diskusních fórech, předmětem článků na IT serverech, předmětem našeho zájmu, obdivu nebo nenávisti. Když se na ně ale podíváme z jistého úhlu pohledu, moc se od sebe neliší: Jsou stále více nenažrané, snaží se profilovat na mainstreamového uživatele a snaží se za nás dělat věci, které možná ani nechceme. Je NetBSD jiné?

Stručně řečeno: Ano je.

A nyní delší pokec:
V polovině prosince jsem od Nobyho dostal na JH Conu zajímavou základní desku, původně pocházející z nějakého průmyslového PC. Má na sobě Socket 7 (tedy lze osadit procesory řady Pentium/Pentium MMX), čtyři dlouhé SIMM sloty, grafickou kartu S3 Virge a hlavně je ve formátu ATX. Zásadní výhodou je přítomnost portů (USB, PS/2, LPT, COM) přímo na desce a hlavně odpadá nutnost shánět AT zdroj, který se dnes špatně shání už i v bazarech.

Pochopitelně jsem chtěl na takto starý hardware nainstalovat nějakou linuxovou distribuci, protože jsem Linux (Debian, Slackware) měl v paměti jako systém, který i v aktuální verzi běží na nejrůznějších vykopávkách. Před nějakými šesti lety jsem tehdy aktuální Debian nainstaloval na 386ku a i když to nebyla žádná slast, systém byl použitelný. Doba pokročila, ale nedomníval jsem se, že by dnes Debian neběžel na několikanásobně rychlejším hardware. Bohužel se velmi záhy ukázalo, že neběží. Aktuální verze Debianu při pokusu o boot z netinstall CD vypisovala spousty chyb většinou ohledně toho, že ten či onen DMA režim není dostupný a kernel by jej vážně moc chtěl, aby mohl pokračovat. Nehodlal jsem trávit zbytky svého mládí tím, že budu studovat bootovací parametry kernelu, Internet přeci nabízí i další distribuce. Další snažení tu ani nemá smysl detailně popisovat. Shrnu jej konstatováním, že po vyzkoušení Slackware Linuxu, několika variant Puppy Linuxu a Vector Linuxu jsem nakonec zjistil, že nic novějšího než tři roky starý Damn Small Linux na holé Pentium nedostanu.

Linux jsem tedy zavrhl a stáhl obraz instalačního média NetBSD. Pokud tento systém neznáte, pak si dovolím malé info: NetBSD je unix-like systém šířený pod opensource BSD licencí, jehož hlavním cílem je dostupnost pro co nejvíce hardwarových platforem. Podle oficiálních informací je v současné době dostupný pro 57 platforem a mezi podporované procesory patří mj. PowerPC, ARM, MIPS, SPARC nebo Motorola 680×0. Jelikož aktuální verze (5.1) běží i na takových archaismech jako Atari TT030 nebo Acorn Archimedes, je jasné že jeho minimální požadavky jsou z pohledu dnešní doby až směšně nízké: Na PC a kompatibilních si vystačí pro používání v textovém režimu s procesorem 486 a 24MB RAM. Na systém, jehož poslední verze je necelé dva měsíce stará, je to opravdu pěkné.

Stáhl jsem tedy 250MB velký obraz základního instalačního média a systém nainstaloval. Toto instalační CD není žádný ošizený netinstall, systém z něj je sice poměrně holý, ale zato včetně X Window. Při instalaci uživatele zaskočí jedna odlišnost od ostatních systémů: NetBSD ne zcela respektuje diskové oddíly. Aby systém byl konzistentní na 57 platformách, z nichž každá potenciálně může mít jiný způsob dělení disků (a také má, vezměme jen MBR na PC, GUID na Apple/x86, APT na Apple/PowerPC a další), vybere si uživatel při instalaci jen jeden diskový oddíl do nějž má být systém nainstalován a NetBSD si v jeho rámci vytvoří vlastní oddíly zvané slices, které jsou mimo NetBSD neviditelné, ale v rámci NetBSD jsou stejné na všech podporovaných platformách včetně toustovače.

Podobných odlišností mezi světem BSD a světem GNU (tj. linuxové systémy) je více. Například v čerstvě nainstalovaném systému nenajdeme bash (Bourne Again Shell), místo toho si můžeme vybrat mezi standardním bourne shellem (sh), korn shellem (ksh) a C-shellem (csh). Jako člověka zvyklého na Linux a Mac OS X mě všechny tři uvedené velice rychle začaly lézt na nervy, naštěstí není problém bash doinstalovat z oficálních balíčků.

Na Pentiu taktovaném na 150MHz se 128MB RAM se NetBSD chovalo velmi svižně. Boot od chvíle kdy BIOS načte boot block a předá řízení načteném kódu až po zobrazení přihlašovací zprávy v textovém režimu neuplynulo více než třicet sekund. Nastavení sítě byla otázka několika málo minut a systém nerozházela ani PCI-X síťová karta, určená pro PowerMac a G5 strčená do běžného PCI slotu.

PCI-X v PCI slotu

Do experimentování s nastavením X Window Systému mi bohužel přišly Vánoce a tak jsem skončil na půli cesty. Týden u rodičů jsem ale nehodlal zabít nicneděláním a tak jsem z svého tamějšího PC odstranil Xubuntu, které jsem tam nainstaloval o minulých Vánocích a na jeho místo přišlo právě NetBSD. Třígigahertzové Pentium 4 s 1GB RAM je trochu jiné kafe, než počítač na němž ve výsledku chci systém provozovat. I tak ale potěší, že NetBSD po bootu do konzole zabere pouhých 14MB RAM (z toho 8MB buffery a jen 2.5MB kernel). Když přidáme grafické prostředí v podobě minimalistického okenního správce VTWM, stále se vejdeme do 32MB obsazené paměti.

P4_NetBSD-2010_12_25.png

Moje první vážnější zkušenosti s NetBSD jsou tedy jednoznačně pozitivní. Systém byl před několika lety kritizován, že sice krásně běží na 20 let starých strojích, ale nezvládá moderní hardware. Posledních několik verzí ale tyto problémy odstranilo – vylepšena byla podpora SMP i správa paměti. Díky modulům binární kompatibility může uživatel přímo spouštět programy z Linuxu, Darwina nebo starého SunOS. Samozřejmě jsou stovky programů k dispozici v nativní podobě – balíčkovací systém sám stahuje balíčky z online zdroje, řeší závislosti a uživatel si může vybrat jestli chce instalovat balíček binární, nebo si program včetně závislostí přeložit ze zdrojových kódů.

Nezbývá doufat, že i NetBSD v nejbližší době nezlamerovatí. Nachází se v celé řadě embedded zařízení, jmenujme například Airport Extreme nebo Time Capsule od Apple. Když se podívám do své sbírky 32bitů, prakticky na všech bych tento systém rozeběhal. Snad to tak ještě pár let zůstane.