procfs

procfs (zkratka z anglického process filesystem, doslova souborový systém procesů) je virtuální souborový systém přítomný na většině un*xových operačních systémů a sloužící k zjišťování informací o procesech a jiných informací o běžícím operačním systému. V rámci standardní adresářové struktury bývá připojován do souborového systému do adresáře /proc. Kromě čtení je možné přes něj i některé proměnné měnit. Obsah tohoto virtuálního souborového systému není nikde trvale uložen: jádro operačního systému jej vždy znovu během startu systému vytvoří a dále aktualizuje.

Dějiny

Tom J. Killian z Bellových laboratoří popsal přístup k procesům jako k souborům na letní konferenci USENIXu v roce 1984[1][2] a také implementoval první verzi procfs do Version 8 Unix. Cílem bylo především překonat nedostatky zjišťování informací o procesech pomocí ptrace. Dalším významným vývojovým stupněm byla implementace procfs v operačním systému Plan 9. V této podobě se rozšířil do dalších un*xových operačních systémů jako přirozený důsledek un*xové zásady vše je soubor.

V Linuxu byl postupně rozšiřován o množství systémových informací procesů se netýkajících, až byl ve verzi 2.6 založen nový virtuální souborový systém sysfs, kam byla většina z nich přesunuta. FreeBSD a OpenBSD, které procfs používaly, od něj naopak ustoupily (OpenBSD jej definitivně odstranilo ve verzi 5.7 z května 2015).

Odkazy

Reference

V tomto článku byly použity překlady textů z článků procfs na německé Wikipedii a procfs na anglické Wikipedii.

  1. KILLIAN, Tom J. Processes as files. In: [s.l.]: [s.n.] Dostupné online. (anglicky)
  2. KOVÁŘ, David. Proč máme /proc?. LinuxExpres [online]. 2006-04-26. Dostupné online. ISSN 1801-3996. 

Literatura

  • JELÍNEK, Lukáš. Jádro systému Linux. první. vyd. Brno: Computer Press, 2008. ISBN 978-80-251-2084-2. Kapitola 14. Souborový systém procfs. 
  • MITCHELL, Mark; OLDHAM, Jeffrey; SAMUEL, Alex. Pokročilé programování operačním systému Linux. Praha: Softpress, 2002. ISBN 80-86497-29-1. Kapitola 7. Souborový systém /proc.