- předchozí článek - následující článek - obsah -

Linuxové noviny Prosinec 1997

TIP: Jak efektivně hledat ve zdrojových textech jádra?

Pavel Janík ml., 11. prosince 1997

Problém hledání ve zdrojových textech jádra operačního systému Linux nabývá rozměrů hlavně v poslední době, kdy např. velikost posledních vývojových jader (2.1.7x) se pohybuje těsně pod hranicí 10 megabytů (samozřejmě po komprimaci).

Možná se zeptáte, proč vůbec (a co vlastně) hledat v takové spoustě zdrojových textů. Odpověď je jednoduchá - spousta uživatelů Linuxu se zajímá o detaily implementace jednotlivých funkcí operačního systému apod. Ve zdrojových textech se můžete mimo jiné dočíst i spoustu zajímavých informací o lidech, kteří Linux píší (např. věk Linuse Torvaldse). Zdrojové texty jsou místy i vtipné (zvláště pokud je jejich autorem Dave Miller ...).


/* Amuse the user. */
printk(
"               \\|/ ____ \\|/\n"
"               \"@'/ ,. \\`@\"\n"
"               /_| \\__/ |_\\\n"
"                  \\__U_/\n");

Výpis 3: Dave S. Miller, arch/sparc/kernel/traps.c

Jak tedy efektivně hledat? Existuje několik způsobů. Asi ten nejméně efektivní je použít programu grep k hledání nějakého regulárního výrazu. To ale není řešení, protože program grep není napsán pro prohledávání desítek megabytů textu. K tomu je určen např. program glimpse http://glimpse.cs.arizona.edu umožňující po předchozí indexaci velmi rychle vyhledávat pomocí regulárních výrazů. Popíšeme si tedy typický postup při vyhledávání.

Jak je již výše napsáno, musíme nejprve vytvořit počáteční indexový soubor. K tomu slouží program glimpseindex, který je součástí instalace balíku glimpse.

glimpseindex /usr/src/linux

Indexový soubor se vytvoří ve vašem domovském adresáři (pomocí parametru -H můžete nastavit jiný adresář). Nyní máme již vše připraveno k rychlému hledání. Zkusíme tedy pro zajímavost najít ve zdrojových textech výskyt slova BogoMIPS:

glimpse BogoMIPS

Výstupem by nám měl být seznam souborů obsahujících hledané slovo, včetně řádků, které jej obsahují. Programy glimpse a glimpseindex mají mnohem více možností, které bohužel nelze postihnout v tomto článku.

Další možností, jak vyhledávat ve zdrojových textech jádra, je použít službu Linux Source Search http://www.math.muni.cz/cgi-bin/LSDSearch, která je vystavěna nad balíkem glimpse.

Pokud chcete např. hledat pouze proměnnou nebo funkci v jádře, je k dispozici i aplikace Linux Source Index http://www.math.muni.cz/LSDIndex. *


- předchozí článek - následující článek - obsah -