Vývojáři linuxového jádra v čele s Linusem Torvaldsem jsou často velmi konzervativní. Jejich výtvor se také nazývá Vanilla podle základní vanilkové chuti zmrzliny. Je to logické: jádro je citlivá věc a do oficiální verze by se měl dostat jen bezpečný, otestovaný a dostatečně vyzrálý kód. Chcete něco navíc? Přidejte si to tam sami na vlastní riziko.
Proč? Protože můžeme!
Existuje řada uživatelů (třeba těch od Gentoo), kteří si rádi dělají věci po svém a příprava jádra k nim rozhodně patří. A když už si děláte vlastní jádro, proč si do něj občas nepřihodit nějaký ten patch, něco si vylepšit a nějakou šikovnou funkci si přidat?
Kompilujete si vlastní jádra?
Jednou z možností je prostě vtrhnout na vyhledávač a začít prohledávat internet. To vás ale jen přivede k ohromné hromadě neprověřených a různě (ne)kvalitních úprav, a pokud se v nich nevyznáte, můžete napáchat víc škody než užitku. Naštěstí už ale jiní tuhle práci odvedli za vás. Výsledkem jsou různá upravená jádra, mezi které patří i Zen Kernel.
Zen Kernel je výsledkem společné práce jaderných hackerů, kteří se snaží vytvořit nejlepší možné linuxové jádro. Zahrnujeme do něj kód, který není součástí hlavní větve jádra a snažíme se vytvořit po všech stránkách lepší jádro pro desktop. Přidáváme nové vlastnosti, podporujeme nejnovější hardware a zahrnujeme různý kód a optimalizace. Zen je stoprocentně komunitní projekt, takže se každý může přidat.
Takto zní definice projektu, kterou je možné najít na webu Zen-Kernel.org. Zen je tedy vlastně sada úprav (patchů) proti oficiálnímu jádru. Kopíruje aktuální vydání vanilkových jader a jedná se o velmi aktuální a živý projekt.
Co se Zenem získám?
Rozhodně se nejedná o pár malých úprav, což poznáte už podle toho, že komprimovaná sada patchů zabere jeden megabajt. Úprav je tedy poměrně hodně. Pojďme si o nich říct více.
Zen vylepšuje standardní plánovač jádra tak, aby podával lepší výsledky na desktopových systémech. Přidává také vlastnost Boost, která automaticky mění nice u prioritních procesů na –10. K dispozici je také alternativní plánovač BFS, který vyniká rychlejší odezvou systému, která je opět velmi přínosná na desktopu.
Užitečný je také BFQ I/O plánovač, který mění kompletně princip plánování práce se zařízeními. Zatímco klasický CFQ přiděluje jednotlivým úlohám časové úseky, BFQ přiděluje počet zpracovatelných sektorů. BFQ má mnoho zajímavých vlastností a parametrů, které je možné ladit. Výsledkem by měla být opět lepší odezva systému a hladší běh. Zen Kernel tak elegantně řeší i problém se špatnou odezvou systému při velké diskové I/O zátěži, o které se intenzivně diskutovalo na našich fórech.
Při nedostatku paměti se pak hodí vlastnost Compsache, která vytváří v paměti nové blokové zařízení nazvané ramzswap, do kterého je možné swapovat. Pokud se ptáte, jaký smysl má swapování paměti do paměti, pak vězte, že ramzswap automaticky ukládaná data komprimuje. Výsledkem tak je, že swapujete výrazně rychleji než na disk a reálně máte k dispozici více paměti.
Zen také rozšiřuje možnosti při práci s hardwarovými senzory, protože obsahuje vylepšení IPMI sensors. Tento patch je součástí projektu lm-sensors a umožňuje získávat data ze základních desek, které splňují standard IPMI. Ten byl vytvořen společnostmi Intel, HP a dalšími a je poměrně široce rozšířen.
Další zajímavou vlastnost týkající se hardware ocení především majitelé notebooků. Linux-PHC umožňuje uživatelům snížit napětí procesoru a tím i jeho příkon a teplotu. Pokud používáte některou z jádrem standardně nepodporovaných WiFi karet, dost možná vám pomůže projekt MadWifi. Stejně tak, pokud chcete ovládat svůj počítač pomocí dálkového ovladače, můžete nasadit LIRC.
Pokud používáte notebook, potěší vás podpora hibernace pomocí TuxOnIce. Jeho výhodou je vysoký výkon, možnost šifrování, možnost hibernovat do běžného souboru, podpora SMP a další. Pokud jste o TuxOnIce neslyšeli, pak vězte, že se projekt českého vývojáře Pavla Machka původně jmenoval Suspend2.
Síťaře zase potěší rozšíření IPtables o Layer7-filter. Ten umožňuje rozšířit pravidla o aplikační vrstvu a filtr je pak schopen identifikovat jednotlivé protokoly podle obsahu paketů bez ohledu na porty. Rozeznává například Kazaa, HTTP, Jabber, Citrix, Bittorrent, FTP, Gnucleus, eDonkey2000 a další.
Velmi vítanou vlastnosti Zen Kernelu je také rozšířená podpora souborových systémů. Použít tak můžete AUFS2, Reiser4 či DazukoFS. Poslední jmenovaný umožňuje předávat libovolné aplikaci informace o tom, že se systém snaží přistoupit k některému souboru na disku. Zmíněná aplikace pak rozhodne, zda je vůbec možno k souboru přistoupit a předá tuto informaci zpět jádru. Původně byl tento mechanismus vyvinut pro potřeby antivirové kontroly, ale jeho využití je široké.
Zen přidává také podporu některých zajímavých kusů hardware. Podporuje tak například touchpady na Apple zařízeních iBook, které s ním mají stejné možnosti jako touchpady Synaptics. Stejně tak přidává podporu některých nových platforem jako je Nintendo GameCube/Wii nebo notebooky MacBook Pro. Stejně tak Zen obsahuje experimentální podporu pro notebooky Lenovo SL, se kterými nespolupracuje klasický thinkpad_acpi ovladač. Pokud vlastníte ThinkPad, bude se vám hodit patch TP_Smapi, který vylepšuje správu baterií na těchto legendárních strojích.
Kromě toho je součástí Zenu ještě řada dalších drobností jako patch CKO, který umožňuje obarvit terminálové hlášky, které pocházejí z jádra nebo patch, který upravuje konfigurační menu jádra a činí jej tak přehlednějším. Další drobností je možnost vkládat na pozadí virtuálních terminálů barevné obrázky.
Jak můžu Zen získat?
Pokud patříte mezi uživatele distribucí Gentoo, Source Mage nebo Yoper Linux, máte Zen Kernel k dispozici jako alternativní jádro. Máte tím zjednodušenou cestu. V opačném případě budete muset stáhnout a sestavit Zen Kernel vlastními silami. Máte v zásadě dvě možnosti: buďto použít patch a aplikovat jej na vanilla jádro, nebo stáhnout celé Zen jádro z GITu.
Vývojáři doporučují druhou možnost, protože tím získáte možnost jednoduše zdrojové kódy jádra aktualizovat a máte vždy přístup k nejaktuálnější podobě Zen Kernelu. Vybrat si navíc můžete ze dvou variant: Zen-Stable a Zen. První zmíněná obsahuje vždy jen stabilní vydání jádra, druhá pak kopíruje vývojový cyklus vanilky, takže se v této větvi objevují i všemožné -rc verze.
Samotná kompilace pak probíhá standardně a její popis by vydal na samostatný článek (na přání můžu připravit). Jen musím ještě přidat malé upozornění: Zen Kernel není oficiálně podporován distributory, neobracejte se proto s případnými problémy na oficiální fóra distribucí.
Zen Kernel nabízí zajímavé rozšíření možností linuxového jádra a přidává řadu dalších schopností a vlastností. Pokud chcete ze svého desktopového linuxového systému dostat víc a víte, co děláte, můžete Zen zkusit. Heslo projektu zní: „Proč jezdit, když můžeme létat?“ Nechcete se proletět?