procfs

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
Notă despre dezambiguizare.svg Dezambiguizare - "Proc" se referă aici. Dacă sunteți în căutarea municipiului Slovacia , consultați Proč .

În sistemele de operare de tip Unix, procfs (prescurtare pentru sistemul de fișiere de proces ) este un pseudo-sistem de fișiere utilizat pentru a accesa informațiile legate de proces furnizate de nucleu . Sistemul de fișiere se găsește de obicei montat în directorul /proc ; deoarece nu este un sistem de fișiere real, nu ocupă spațiu pe hard disk și o cantitate limitată de memorie .

procfs este acceptat pe sistemeleSolaris , BSD și Linux ; acesta din urmă găzduiește, de asemenea, informații care nu au legătură directă cu procesele nucleului.

Istorie

Versiunea procfs inclusă în cea de-a opta ediție a Unix a fost implementată de Tom J. Killian , care a trimis o lucrare intitulată Processes as Files către USENIX în iunie 1984 . A fost conceput pentru a înlocui apelul de sistem ptrace utilizat în mod tradițional pentru urmărirea proceselor.

Roger Faulkner și Ron Gomes au adus acest cod în ediția a patra a sistemului System V și au publicat The Process File System and Process Model în UNIX System V pe USENIX în ianuarie 1991 . Această încarnare a procfs-urilor a susținut nașterea ps , dar fișierele trebuiau încă manipulate cu funcțiile read() , write() și ioctl () .

În Planul 9 a fost implementat un sistem de fișiere pentru procese care depășea sistemul adoptat în Unix: în timp ce în acesta din urmă operațiunile care vizau un proces trebuiau aplicate fișierului unic care îl reprezenta, în Planul 9 fiecare tip de operație avea un fișier dedicat de sine, făcând / proc să devină o parte reală a sistemului de fișiere.

Versiunea BSD 4.4 implementată /proc ca un set de subdirectoare pentru fiecare proces, permițându-vă să accesați informații despre utilizarea memoriei, registrele utilizate și starea curentă. Implementarea Solaris 2.6 a avut, de asemenea, directoare separate pentru fiecare proces și a inclus un fișier ctl special care a permis monitorizarea, urmărirea și manipularea proceselor.

Linux

Pe Linux, /proc conține informații despre fiecare proces din directorul /proc/ PID și include, de asemenea:

  • Un link către procesul curent din /proc/self
  • Informații despre hardware , kernel și modulele legate de acesta
  • Acces la parametri modificabili dinamic în nucleu, în /proc/sys
  • Informații de sistem generice; de exemplu, /proc/meminfo include statistici de utilizare a memoriei

Procfs joacă un rol important în schimbul de informații între modul kernel și modul utilizator . De exemplu, versiunea GNU a comenzii ps funcționează în întregime în modul utilizator, folosind procfs pentru a obține informațiile.

În versiunea 2.6 a kernel-ului Linux, majoritatea fișierelor care nu au legătură cu procesul au fost separate într-un alt pseudo-sistem de fișiere numit SYSFS (și montat în /sys ).