Portál AbcLinuxu, 28. března 2024 11:15

Patchsety pro kernel

12. 8. 2005 | Robert Krátký
Články - Patchsety pro kernel  

Pokud si chcete zkompilovat své vlastní jádro, můžete jeho funkce rozšířit nejen pomocí samostatných patchů, ale i ucelenými sadami patchů, které vývojáři z různých důvodů připravují.

Rychlý přístup

Vanilla kernel

Čas od času vydá Linus Torvalds novou verzi tzv. vanilla jádra (a ta se objeví na kernel.org). Toto vanilkové jádro by mělo být v rámci možností stabilní. Obsahuje funkce, které prošly několika stupni kontrol, podrobným testováním a ověřováním. Vanilla jádro je však většinou jen základ, na kterém distribuce a jednotlivci stavějí svá vlastní jádra.

Jsou pro to dva hlavní důvody:

  1. Vanilla jádro je, ač plnohodnotné, funkční a otestované, z určitého úhlu pohledu přeci jen trochu chudé na nejnovější funkce. Je to dáno skutečností, že mnohým novým funkcím trvá poměrně dlouho, než se do hlavního jádra probijí. Vývojáři je vylepšují, testují a připravují k začlenění do oficiálního jádra. Než se tak však stane, musí být do vanilla jádra přidávány formou patchů. Distribuce, které chtějí tyto nové funkce svým uživatelům nabídnout, je proto musí do jádra doplnit.

  2. Tato situace se trochu změnila (záměrně neříkám zlepšila, protože to je otázka názoru) po ukončení vývojové řady 2.5 a vydání stabilního jádra 2.6. Doposud bylo zvykem, že jádro se sudým číslem na druhé pozici (např. 2.2.11, 2.4.7, 2.6.0) bylo považováno za stabilní a jedinými změnami v něm byly opravy chyb. Veškerý převratný vývoj probíhal v řadě s lichým číslem (2.3, 2.5). Avšak po uvedení jádra 2.6.0 nebyla žádná vývojová řada 2.7 založena a vývoj od té doby probíhá v rámci stabilní řady.

    Jak je asi zřejmé, označení stabilní už není v této situace tak docela na místě. Počítá se s tím, že obyčejní uživatelé budou mít nainstalována jádra z distribucí, která jsou vyladěná, obsahují nejčerstvější opravy chyb a nestabilita jim nehrozí. Proto jsou v této tzv. stabilní řadě prováděny změny, které občas způsobí nemalé zemětřesení.

Patchsety

Patchset je v překladu sada patchů. V tomto článku však budu termín patchset používat výhradně ve smyslu sady patchů, která je s větší či menší pravidelností a pod určitým názvem připravována za nějakým specifickým účelem. Tím účelem může být větší stabilita, bezpečnost, nové funkce, alternativní komponenty nebo třeba specializace na určitý druh hardwaru.

Chcete-li tedy pro svůj systém používat vanilla jádro, je vhodné jej s pomocí různých patchsetů rozšířit (nebo zmenšit). Nejde-li vám o funkce, tak alespoň o opravy, které už nestihly zařazení do hlavního vanilla jádra.

Představme si tedy několik zajímavých patchsetů. Snažil jsem se vybírat jednak podle pravidelnosti jejich aktualizace (nemá cenu se zabývat patchsetem, který sice nabízí úžasné věci, ale aplikovat jej lze pouze na tři měsíce staré jádro) a také podle zaměření - abychom měli přehled co nejrozmanitější.

stable

Tento patchset rozhodně stojí za zvážení. Jeho historie je poměrně krátká. Začali ho připravovat vývojáři Greg KH a Chris Wright, kteří jsou Linusi Torvaldsovi velmi blízko. Patchset je částečnou odpovědí na nižší stabilitu vanilla jader v řadě 2.6, která je způsobená zmiňovaným vývojem probíhajícím přímo v ní. Bližší informace o založení patchsetu a jeho cílech a pravidlech najdete v článku Jaderné noviny 303.

Příslušné patche najdete ve stejném adresáři jako vanilla jádra.

Některé z patchsetů popisovaných níže už -stable obsahují. Budete-li některý z nich používat, není nutné jej na vanilla jádro aplikovat.

mm

Jedná se o vývojářský patchset Andrew Mortona. Andrew je při vývoji řady 2.6 pravou rukou Linuse Torvaldse, a -mm je proto jasně definovanou součástí vývojového cyklu. Všechny změny a nové funkce jsou nejprve začleněny do -mm. Teprve když Andrew usoudí, že se jim dostalo dostatečného testování a považuje je za kvalitní, předá je do hlavního jádra Linusovi.

Tento patchset je tedy sice naplněn těmi nejnovějšími věcmi, ale jeho stabilita rozhodně není zaručena. Dochází v něm k divokým změnám a neexistuje záruka, že je-li něco součástí -mm, stane se to i součástí vanilla jádra.

Patch si můžete stáhnout přímo z hlavní stránky kernel.org. Stručná informace je na The -mm patches to the Linux kernel.

ac

Alan Cox je jedním z nejznámějších vývojářů jádra. Působil jako správce stabilní řady 2.0 a i nadále se angažuje. Jeho -ac patchset plnil v době řady 2.4/2.5 funkci podobnou té, kterou nyní zastává patchset -mm. V současné době je však -ac patchset zaměřen na drobné opravy, které Alan považuje za důležité. Vzniká tak sada patchů, které mají ve většině případů za cíl vytvořit stabilnější jádro. Chcete-li vyzkoušet vanilla jádro, -ac patchset mu rozhodně neublíží, spíš naopak.

Najdete v Alanově adresáři na kernel.org: /pub/linux/kernel/people/alan/linux-2.6.

ck

Patchset Cona Kolivase patří k těm uznávaným a oblíbeným. Obsahuje několik různých doplňků, které zlepšují výkon desktopového systému. Jeho součástí je vždy patchset -stable, takže kromě vyladěného a výkonného jádra získáte i aktuální opravy chyb. Před nějakou dobou začal Con vydávat svůj patchset i ve verzi optimalizované pro použití na serveru.

Stránka s popisem patchů, které jsou do sady zařazovány, je Kernel patch homepage of Con Kolivas.

Con dříve připravoval patchsety i pro jádra řady 2.4. Jejich správu teď převzal Eric Hustvedt a aktuální patche můžete nalézt na adrese http://www.plumlocosoft.com/kernel/.

cko

Jde o patchset Cona Kolivase, který je vylepšen o několik dalších funkcí. Těch věcí, které jsou na -ck nabaleny, je vlastně docela dost, a proto také název -cko (-ck overloaded). Ačkoliv základem -cko je -ck, je v něm začleněn i celý -ac patchset. Kromě toho například ReiserFS4, SHFS nebo fbsplash. Pokud hledáte opravdu "nadupaný" patchset, tak -cko je jedním z nich.

Domovská stránka: http://kem.p.lodz.pl/~peter/cko/.

Další "nadupané" patchsety

Je jich hned několik. Kvalita se liší verzi od verze, ale základem je vždy snaha o dobrý výkon (především na desktopu), podporu nového hardwaru a doplnění zajímavých funkcí. Vyzkoušejte třeba nitro, love nebo vivid.

tiny

Na rozdíl od předchozích patchsetů, které funkce přidávaly, -tiny se zaměřuje spíše na zmenšování jádra. Jeho hlavním cílem je snížit spotřebu paměti i diskového prostoru. Kromě toho (přeci jen) doplňuje několik funkcí, které pomáhají s provozováním na malých systémech.

Shrnutí hlavních vlastností patchsetu najdete na The Linux-Tiny Tree.

grsecurity

Bezpečnostní rozšíření jsou tématem tohoto patchsetu. Potřebujete-li jádro zabezpečit proti útokům, vybavit se nástroji na jejich odhalování nebo jen zjistit, jaké jsou možnosti ochrany, přečtěte si více o patchsetu grsecurity.

Množství informací (ne jako u většiny ostatních patchsetů) je na stránkách grsecurity.net.

QoS, Netfilter

Určený především pro routery. Patchset s označením -qnet obsahuje funkce využitelné při nastavování podmínek síťového provozu.

Více informací hledejte na http://kem.p.lodz.pl/~peter/qnet/, Freshmeat: QoS and Netfilter patchset a netfilter.org.

"Standardní" patchsety

V rámci vývojového cyklu stabilních jader jsou vydávány patchsety, které jsou označovány jako -pre a -rc. Jejich úkolem je zpřístupnit ke snadnému testování změny a novinky, které jsou chystány pro nové vydání vanilla jádra. Kromě toho jsou automaticky generovány i tzv. snapshoty; patchsety obsahující změny za dané období, např. týden. Nejsou určeny pro normální používání, může se stát, že ani nepůjdou zkompilovat nebo nabootovat.

Všechny tyto patchsety jsou přímo dostupné z hlavní stránky kernel.org. Krátký popis -pre, -rc a -git je na Linux kernel snapshots.

Aplikace patchsetů

... se nijak neliší od aplikace jakýchkoliv jiných patchů. Jednoduchý příklad je uveden v popisu pojmu patch ve slovníku.

Související články

Seriál: Kompilovanie jadra
Seriál: Nebojíme se kompilace
Seriál: Cesta do hlubin kompilace jádra

Odkazy a zdroje

kernel.org - The Linux Kernel Archives

Další články z této rubriky

Týden na ITBiz: Svět IT a burzy, umělá inteligence, Nvidia a outsourcing
Linuxové foto novinky: pozvolná evoluce
PCLinuxOS 2017.2 MATE - tak trochu zvláštní linuxová distribuce
Krátký pohled na Fedoru 25, Wayland a GNOME 3.22
Naprosto ničím nezajímavé Lubuntu 16.10

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.