Hlavní navigace

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

Tomáš Kašpárek 19. 7. 2001

I dnešní díl bude o souborech v základním adresáři. Kupodivu se ukazuje, že i na první pohled zřejmé soubory si vyžadují delší popis a komentář. Asi tento seriál nebude tak krátký, jak jsem si myslel.

Kvůli lepší orientaci opět výpis základního adresáře /proc:

  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

Předchozí díl končil souborem o DMA kanálech, dnes se tedy vrhneme na další v pořadí – execdomain.

execdomain

Řekl bych, že tohle je první soubor, který běžnému uživateli neříká asi vůbec nic. Výpis je skutečně zcelanaprosto­úplněnicneříka­jícísnůškazna­ků. Posuďte sami:

0-255   Linux                   [kernel]

Tato informace je (dle dokumentace jádra v filesystems/proc­.txt) nová pro řadu 2.4 a má co dělat s bezpečností. To nám ale nestačí, nakoukneme proto do zrojového kódu jádra. Existuje přímo soubor kernel/execdo­mains.c, ale množství komentářů v něm je opravdu minimání. První informace tedy je, že základní doména se jmenuje „Linux“, což je druhá položka výpisu, že je napevno zakompilována do jádra, to je poslední položka – název modulu, a že platí pro „personality“ 0 až 255, tedy pro všechny. Nyní se ovšem vynoří otázka, co znamená pojem „personality“. V souboru include/perso­nality.h se dozvíme, že možné typy jsou například Linux, SVR3, SVR4, BSD, SunOS, Xenix, Irix64 nebo Solaris.

Soubory, ve kterých se vyskytují alespon trochu rozumné informace, jsou následující: kernel/exec_do­main.c, fs/binfmt_elf.c, arch/…/kernel/sig­nal.c. Při použití přibydou ještě kernel/exit.c, fork.c, ksyms.c. V posledně jmenovaných je pouze adminitrativa při implementaci této vlastnosti jako modulu.

Na závěr mohu říci, že mám opravdu jen mlhavou představu, k čemu se execdomains využívají. Pravděpodobně jde hlavně o emulaci kódu pro cizí/neznámé platformy a jejich binární formáty. Pro lepší pochopení doporučuji nastudovat problematiku modulu binfmt.

Nedlouho před odevzdáním tohoto článku jsem konečně našel nějaké rozumnější informace. Můj odhad byl veskrze správný. Tato vlastnost slouží pro emulaci chování jiných operačních systémů při spouštení jejich nativního kódu. Může ovlivňovat vykonávání některých systémových volání, jako například select dle zadaného typu operačního systému. V oficiálním jádře (od Linuse) není implementována žádná dodatečná doména, a je tedy nutno poohlédnout se po ní ve formě patchů nebo modulů na Síti. Můžete si ji samozřejmě také napsat sami :), pro více informací doporučuji Linux Kernel Internals kapitolu 3.8.

filesystems

Nejprve samozřejmě ukázkový výpis:

nodev   proc
nodev   sockfs
nodev   tmpfs
nodev   pipefs
        ext2
nodev   devpts
nodev   usbdevfs
        vfat

Jedná se o seznam souborových systému podporovaných jádrem. Jsou zde vidět skutečné souborové systémy pro disk – ext2 a vfat, dále také virtuální souborové systémy, jako například proc nebo devpts. Tato druhá skupina vytváří informace v souborovém systému proc, případně zástupné soubory pro devfs nebo adresář /dev. Poslední skupinou jsou souborové systémy, které implementují chování prostředků jako roura (pipefs) nebo soket (sockfs).

Ještě malou zmínku o usbdevfs. Tento vitruální souborový systém zpřístupňuje informace o zařízeních USB. Není ovšem připojen automaticky, a tak je potřeba to udělat ručně:

mount -t usbdevfs none /proc/bus/usb

K témuž účelu lze samozřejmě využít i fstab – přidat do něj řádek:

none /proc/bus/usb usbdefs defaults 0 0

K podrobnému popisu obsahu těchto adresářu se dostaneme někdy příště.

Přítomnost položky tmpfs může být trochu zavádějící. Normálně by člověk předpokládal, že bude přítomna pouze při využívání stejnojmenného souborového systému pro ramdisk. Tmpfs umožňuje ve zkratce vyhradit (proměnlivou) část paměti, kterou lze potom používat jako libovolný jiný souborový systém. Až na to, že po vypnutí nebo restaru se jeho obsah nenávratně ztratí. Implementace souborového systému tmpfs se ovšem využívá i tehdy, pokud dotyčný systém není v jádře přímo přítomen (a není ani jako modul), a to pro implementaci některých částí sdílené paměti. Pro další informace doporučuji proto především soubor mm/shmem.c a samozřejmě příslušnou dokumentaci v jádře.

Považuji již za zcela zřejmé, že informace se zde mohou měnit v závisloti na aktuálné nahraných modulech. Stále setrvávají jen ty, které jsou v jádře napevno (z diskových často jen ext2).

Na shledanou s vámi se těším opět za týden.

Našli jste v článku chybu?
Vitalia.cz: Pečete cukroví a zbyl vám bílek?

Pečete cukroví a zbyl vám bílek?

Lupa.cz: Google měl výpadek, nejel Gmail ani YouTube

Google měl výpadek, nejel Gmail ani YouTube

Root.cz: Vypadl Google a rozbilo se toho hodně

Vypadl Google a rozbilo se toho hodně

Vitalia.cz: Baletky propagují zdravotní superpostel

Baletky propagují zdravotní superpostel

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Měšec.cz: Jak vymáhat výživné zadarmo?

Jak vymáhat výživné zadarmo?

Podnikatel.cz: 1. den EET? Problémy s pokladnami

1. den EET? Problémy s pokladnami

Lupa.cz: Co se dá měřit přes Internet věcí

Co se dá měřit přes Internet věcí

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

DigiZone.cz: Rádio Šlágr má licenci pro digi vysílání

Rádio Šlágr má licenci pro digi vysílání

DigiZone.cz: ČRa DVB-T2 ověřeno: Hisense a Sencor

ČRa DVB-T2 ověřeno: Hisense a Sencor

Měšec.cz: Finančním poradcům hrozí vracení provizí

Finančním poradcům hrozí vracení provizí

120na80.cz: Rakovina oka. Jak ji poznáte?

Rakovina oka. Jak ji poznáte?

Vitalia.cz: Dáte si jahody s plísní?

Dáte si jahody s plísní?

Lupa.cz: Insolvenční řízení kvůli cookies? Vítejte v ČR

Insolvenční řízení kvůli cookies? Vítejte v ČR

Vitalia.cz: Jsou čajové sáčky toxické?

Jsou čajové sáčky toxické?

120na80.cz: Boreliózu nelze žádným testem prokázat

Boreliózu nelze žádným testem prokázat

Měšec.cz: Kdy vám stát dá na stěhování 50 000 Kč?

Kdy vám stát dá na stěhování 50 000 Kč?

Vitalia.cz: Proč vás každý zubař posílá na dentální hygienu

Proč vás každý zubař posílá na dentální hygienu

Vitalia.cz: Mondelez stahuje rizikovou čokoládu Milka

Mondelez stahuje rizikovou čokoládu Milka