procfs
Această intrare sau secțiune despre sistemul de operare subiect nu menționează sursele necesare sau cei prezenți sunt insuficienți . |
Î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
).