Hlavní navigace

Co před námi tají /proc (2)

2. 7. 2001
Doba čtení: 4 minuty

Sdílet

Minule jsme si dali lehký úvod, takže co bude následovat dnes? Podíváme se na skupinu souborů v adresáři /proc poskytujících základní a/nebo všeobecné informace o systému.

Nejprve několik drobných změn. Kdo jste četli reakce na minulý díl, víte, že se mi (bohužel) podařilo uzmout tohle téma jinému člověku před nosem. Tak to totiž dopadá, když člověk nečte konferenci pořádně a vrhá se do diskuse od prostředka. Doufám, že se s původním autorem (a s redakci Roota) nějak domluvíme, každopádně o informace určitě nepřijdete.

Další „drobností“ je, že mám nový počítač, a tak budou informace od nynějška poněkud aktuálnější co se týče hardwaru. Původním referenčním strojem byla Acer Extensa 710DX, teď mám k dispozici novou Pé-trojku. To jenom kdyby se někomu zdálo, že si některé informace v prvním dílu neodpovídají se zbytkem. Takových údajů by ale mělo být minimum.

Pro oživení opět uvedu základní výpis adresáře proc v nynější aktuální podobě:

 809 cmdline fs/ kmsg mounts slabinfo version
 840 cpuinfo ide/ ksyms mtrr stat
 842 devices interrupts loadavg net/ swaps
 847 dma iomem locks nv/ sys/
 848 driver/ ioports meminfo partitions sysvipc/
 apm execdomains irq/ misc pci tty/
 bus/ filesystems kcore modules self@ uptime

Jak vidíte, změn není mnoho, respektive je jich minimum.

CS24_early

Tentokrát se tedy pustíme do obsahu jednotlivých souborů v základním adresáři. Takže vzhůru na ně!

apm
Obsahem souboru je pro nás:
1.14 1.2 0x07 0x01 0xff 0x80 -1% -1 ?

To vypadá docela vtipně, nemyslíte? Ale zase tak tajuplné to není. První číslo je verze ovladače APM v jádře (modul apm.o), druhé označuje verzi APM BIOSu a závisí tedy na konkrétním počítači. Tyto informace můžete získat pomocí příkazu apm -v. Ten vypíše následující informace:

APM BIOS 1.2 (kernel driver 1.14)
AC on-line, no system battery

Na stroji poháněném bateriemi (Acer Extensa 710) je potom výpis následující:

APM BIOS 1.2 (kernel driver 1.14)
AC off-line, battery status critical: 6%

Další čtyři čísla v souboru apm jsou příznaky s následujícím významem:

1. Příznaky APM BIOSU
bit 0 nastaven: 16bit APM podporováno
bit 1 nastaven: 32bit APM podporováno
bit 2 nastaven: stav procesoru IDLE způsobí zpomalení hodin
bit 3 nastaven: APM BIOS zakázaný (DISABLED)
bit 4 nastaven: APM BIOS nevyužitý (DISENGAGED)

2. Stav zdroje napájení
0×00: vypnut (off-line)
0×01: zapnut (on-line)
0×02: využívá se záložní zdroj (APM BIOS >=1.1)
0×ff: Neznámý (unknown)

3. Stav baterie
0×00: Nabitá (High)
0×01: Částečně vybitá (Low)
0×02: Téměř vybitá (Critical)
0×03: Nabíjí se (Charging)
0×04: Vybraná baterie nepřítomna (APM BIOS >=1.2)
0×ff: neznámá (unknown)

4. Příznaky baterie
0×00: Nabitá (High)
0×01: Částečně vybitá (Low)
0×02: Téměř vybitá (Critical)
0×03: Nabíjí se (Charging)
0×04: Není systémová baterie
0×ff: neznámá (unknown)

5. Zbývající množství energie: (procento)
0–100 procento zbytku energie
-1 neznámo, zobrazí se i tehdy, pokud baterie chybí

6. Zbývající množství energie (čas)
num min/sec zbývá num minut nebo sekund běhu. Pokud nelze určit, zobrazí se znak ‚?‘.

Na tomto případě bych rád ukázal, jak skvělé je mít k dispozici zdrojový kód systému (nejen operačního), na kterém pracujete. Veškeré výše uvedené informace jsem totiž bez problémů nalezl v kódu a dokumentaci k modulu apm.o v souboru arch/i386/ker­nel/apm.c. Mám také zaručeno, že dodané informace jsou absolutně čerstvé a aktuální a vše si mohu vyzkoušet, ověřit a v případě potřeby modifikovat. Proto doporučuji se na tento soubor podívat a „za domácí úkol“ si uvedené informace nalézt. Jen podotýkám, že pracuji s jádrem verze 2.4.5.

cmdline
tento soubor obsahuje kompletní seznam parametrů předaných jádru zavaděčem OS (v našem případě LILO) při startu. Parametry jádra jsou v podstatě jedinou cestou, jak může zavaděč s jádrem komunikovat. Jedná se o maximálně 256 znaků dlouhý řetězec ukončený ‚\0‘. Ukázkou je tento řádek:
BOOT_IMAGE=l4 ro root=303 BOOT_FILE=/boot/vmlinuz-2.4.5

„BOOT_IMAGE“ je název sekce v konfiguračním souboru /etc/lilo.conf, „BOOT_FILE“ soubor s jádrem, „ro“ způsob připojení kořenového svazku (pouze pro čtení je kvůli kontrole integrity pomocí fsck) a nakonec „root“ je označení pro diskový oddíl, ze kterého se bude bootovat. 303 znamená zařízení s čísly 03:03, tedy /dev/hda3. (kanál IDE0, 3 partition)

cpuinfo
Tahle položka je celkem průhledná. Prostě „oťukne“ váš procesor a vypíše o něm vše možné i nemožné. Příkladem budiž třeba:
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 8
model name : Pentium III (Coppermine)
stepping : 6
cpu MHz : 998.392
cache size : 256 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 3
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8
apic sep mtrr pge mca cmov pat pse36 mmx fxsr sse
bogomips : 1992.29

Jenom letecky. První řádek udává identifikaci (číslo) procesoru v jádře a má smysl pouze pro SMP systémy. Další položky potom popisují model procesoru, jeho frekvenci a velikost cache. Přesnější velikost cache se vypisuje při startu systému a lze ji tedy nalézt v souboru /var/log/dmesg. Zajímavé může být rozepsání obsahu příznaků procesoru při instrukci cpuid, což je předposlední řádek. Tam je potom vidět například podpora MMX instrukcí, APIC – lepšího řadiče přerušení, instrukcí SSE a dalších vymožeností moderních procesorů.

To je pro tentokrát poslední položka výpisu. Moc toho dnes pravda nebylo, ale snad už příště bude líp. Doufejme, že už bude vyřešen problém dvou autorů stejného tématu a seriál bude moci pokračovat dál, jen možná s jiným podpisem.

Byl pro vás článek přínosný?

Autor článku