Profs

procfs  je speciální souborový systém používaný v operačních systémech podobných UNIXu . Umožňuje přístup k informacím z jádra o systémových procesech. Potřebné pro spouštění příkazů jako ps , w , top . Obvykle se montuje na /proc. procfs vytváří dvouúrovňovou reprezentaci procesních prostorů. Na nejvyšší úrovni jsou procesy adresáře pojmenované podle jejich pid . Na nejvyšší úrovni je také odkaz na adresář odpovídající procesu, který požadavek podává; může mít na různých operačních systémech jiný název ( curproc na FreeBSD , self na Linuxu ).

Historie

UNIX 8. vydání

procfs se poprvé objevil v 8. vydání UNIX , vydaném v roce 1985, a měl poskytnout rozhraní pro správu procesů, které bylo pohodlnější než volání ptrace . To bylo podrobně popsáno Tomem Killianem v Processes as Files v roce 1984. Každý proces byl reprezentován souborem, do kterého bylo možné zapisovat. Počet dostupných hovorů ioctl byl 11. [1] [2]

System V verze 4

Tento systém, vydaný v roce 1990, zdědil procfs z UNIX 8 s některými vylepšeními. Procesy byly stále reprezentovány jako jednoduché soubory, ale již bylo k dispozici 37 volání ioctl . FS se stal dostatečným pro budování utilit, jako je ps na jeho základě , ale zůstal nepohodlný a špatně rozšiřitelný. [jeden]

Implementace je podrobně popsána v knize Rogera Faulknera a Rona Gomeze „The Process File System and Process Model in UNIX System V“ z roku 1991.

Plán 9

V roce 1992 vyšlo první veřejné vydání operačního systému Plan 9 . Toto byl vrchol vývoje procfs . Veškeré procesní řízení bylo přesunuto sem. Z procesů se místo souborů staly adresáře. Místo ioctl byly použity textové příkazy a ovládání bylo možné provádět pomocí příkazů cat a ls . [3] Při připojování /proc z jiného počítače přes síť může místní proces interagovat se vzdáleným procesem, jako by byly na stejném počítači.

Solaris 2.6

Solaris 2.6 zdědil velkou část struktury procfs Plan 9 , nicméně všechny soubory tam umístěné byly binární, určené k použití programem, nikoli člověkem. [1] Obecně se souborový systém stal poněkud primitivnějším ve srovnání s plánem 9, ale nesrovnatelně pokročilejším než v SVR4.

4.4BSD

Ve srovnání se Solarisem to byl další krok zpět. Počet souborů v každém adresáři byl snížen na 8 (i když se v pozdějších verzích mírně zvýšil). Výrazně se také zredukovala sada dostupných příkazů. Začal se opakovat přechod od souborových rozhraní k systémovým voláním. [jeden]

V moderních verzích FreeBSD se procfs postupně vyřazuje [4] [5] .

Linux

Linux je poněkud mimo příběh popsaný výše. Od samého počátku v něm procfs představoval univerzální rozhraní pro získávání informací z jádra, a to nejen o procesech. Kořen obsahuje soubory (většinou text) a adresáře, které poskytují různé informace o systému.

Procfs přitom téměř neplní svou původní funkci – řízení procesů . Chybí rozhraní pro odesílání příkazů, souborový systém poskytuje pouze podrobné informace o procesech (a na některých místech umožňuje změnit některé volby, např. /proc/<pid>/oom_adj). [6]

Struktura

*BSD

Každý adresář nejvyšší úrovně obsahuje následující soubory:

Podpora operačního systému

Odkazy

Zdroje

  1. 1 2 3 4 Stručná historie /proc (odkaz není k dispozici) . Archivováno z originálu 2. března 2012. 
  2. manuálová stránka proc(4) (UNIX, 8. vydání) (odkaz dolů) . Archivováno z originálu 2. března 2012. 
  3. manuálová stránka proc(3) (Plán 9) (odkaz dolů) . Archivováno z originálu 2. března 2012. 
  4. Co je vaření pro FreeBSD 8? (nedostupný odkaz) . Archivováno z originálu 2. března 2012. 
  5. Proč je procfs zavrženo ve prospěch procstat? (freebsd-fs mailing list) (downlink) . Archivováno z originálu 2. března 2012. 
  6. proc(5) manuálová stránka (Linux) (odkaz dolů) . Archivováno z originálu 2. března 2012.