Procfs

procfs  er et specielt filsystem, der bruges i UNIX -lignende operativsystemer. Giver dig adgang til information fra kernen om systemprocesser. Nødvendig for at køre kommandoer som ps , w , top . Det er normalt monteret på /proc. procfs skaber en to-niveau repræsentation af procesrum. På øverste niveau er processer mapper navngivet efter deres pid . På øverste niveau er der også et link til den mappe, der svarer til den proces, der foretager anmodningen; det kan have et andet navn på forskellige operativsystemer ( curproc på FreeBSD , self på Linux ).

Historie

UNIX 8. udgave

procfs dukkede første gang op i den 8. udgave af UNIX , udgivet i 1985, og var beregnet til at give en processtyringsgrænseflade, der var mere praktisk end at kalde ptrace . Det blev beskrevet i detaljer af Tom Killian i Processes as Files i 1984. Hver proces var repræsenteret af en fil, der kunne skrives til. Antallet af tilgængelige ioctl- opkald var 11. [1] [2]

System V release 4

Dette system, udgivet i 1990, arvede procfs fra UNIX 8, med nogle forbedringer. Processer var stadig repræsenteret som simple filer, men der var allerede 37 ioctl- opkald tilgængelige . FS blev tilstrækkelig til at bygge hjælpeprogrammer som ps på grundlag af det , men forblev ubelejligt og dårligt udvidelsesdygtigt. [en]

Implementeringen er detaljeret beskrevet i Roger Faulkner og Ron Gomez' "The Process File System and Process Model in UNIX System V" i 1991.

Plan 9

I 1992 udkom den første offentlige udgivelse af Plan 9 OS . Dette var toppen af ​​procfs udvikling . Al processtyring er flyttet hertil. Processer er blevet til mapper i stedet for filer. I stedet for ioctl blev der brugt tekstkommandoer, og kontrol kunne udføres med cat og ls kommandoerne . [3] Når du monterer /proc fra en anden computer over et netværk, kan en lokal proces interagere med en fjernproces, som om de var på den samme maskine.

Solaris 2.6

Solaris 2.6 arvede meget af Plan 9 's procfs- struktur , men alle filerne der var binære, beregnet til at blive brugt af et program, ikke et menneske. [1] Generelt er filsystemet blevet noget mere primitivt i forhold til det i Plan 9, men usammenligneligt mere avanceret end i SVR4.

4.4BSD

Det var endnu et skridt tilbage i sammenligning med Solaris. Antallet af filer i hver mappe er blevet reduceret til 8 (selvom en smule øget i senere udgivelser). Sættet af tilgængelige kommandoer er også blevet betydeligt reduceret. En omvendt overgang begyndte at ske, fra filgrænseflader til systemkald. [en]

I moderne versioner af FreeBSD er procfs ved at blive udfaset [4] [5] .

Linux

Linux er noget ude af historien beskrevet ovenfor. Helt fra begyndelsen repræsenterede procfs en universel grænseflade til at hente information fra kernen og ikke kun om processer. Roden indeholder filer (for det meste tekst) og mapper, der giver en række informationer om systemet.

Samtidig udfører procfs næsten ikke sin oprindelige funktion - processtyring . Der er ingen grænseflade til at sende kommandoer, filsystemet giver kun detaljeret information om processerne (og nogle steder giver det dig mulighed for at ændre nogle muligheder, f.eks. /proc/<pid>/oom_adj). [6]

Struktur

*BSD

Hver mappe på øverste niveau indeholder følgende filer:

Understøttelse af operativsystem

Links

Kilder

  1. 1 2 3 4 En kort historie om /proc (link utilgængeligt) . Arkiveret fra originalen den 2. marts 2012. 
  2. proc(4) manualside (UNIX, 8. udgave) (downlink) . Arkiveret fra originalen den 2. marts 2012. 
  3. proc(3) manualside (Plan 9) (downlink) . Arkiveret fra originalen den 2. marts 2012. 
  4. Hvad laver du til FreeBSD 8? (utilgængeligt link) . Arkiveret fra originalen den 2. marts 2012. 
  5. Hvorfor er procfs forældet til fordel for procstat? (freebsd-fs postliste) (downlink) . Arkiveret fra originalen den 2. marts 2012. 
  6. proc(5) manualside (Linux) (downlink) . Arkiveret fra originalen den 2. marts 2012.