Procfs

procfs  on erityinen tiedostojärjestelmä, jota käytetään UNIX - tyyppisissä käyttöjärjestelmissä. Mahdollistaa ytimen tietojen tarkastelemisen järjestelmäprosesseista. Tarvitaan suorittamaan komentoja, kuten ps , w , top . Se asennetaan yleensä /proc. procfs luo kaksitasoisen esityksen prosessitiloista. Ylimmällä tasolla prosessit ovat hakemistoja , jotka on nimetty niiden pid :n mukaan . Ylimmällä tasolla on myös linkki pyynnön tekevää prosessia vastaavaan hakemistoon; sillä voi olla eri nimi eri käyttöjärjestelmissä ( curproc FreeBSD :ssä, itse Linuxissa ) .

Historia

UNIX 8th edition

procfs ilmestyi ensimmäisen kerran UNIX :n 8. painoksessa , joka julkaistiin vuonna 1985, ja sen tarkoituksena oli tarjota prosessinhallintaliittymä, joka oli kätevämpi kuin ptracen kutsuminen . Tom Killian kuvasi sen yksityiskohtaisesti Prosessit tiedostoina vuonna 1984. Jokaista prosessia edusti tiedosto, johon voitiin kirjoittaa. Käytettävissä olevien ioctl - puhelujen määrä oli 11. [1] [2]

System V julkaisu 4

Tämä vuonna 1990 julkaistu järjestelmä peri UNIX 8:n procfs -toiminnot muutamilla parannuksilla. Prosessit esitettiin edelleen yksinkertaisina tiedostoina, mutta käytettävissä oli jo 37 ioctl- kutsua . FS:stä tuli sen perusteella riittävä rakentamaan apuohjelmia, kuten ps , mutta pysyi hankalana ja huonosti laajennettavana. [yksi]

Toteutus on kuvattu yksityiskohtaisesti Roger Faulknerin ja Ron Gomezin teoksessa "The Process File System and Process Model in UNIX System V" vuonna 1991.

Suunnitelma 9

Vuonna 1992 Plan 9 -käyttöjärjestelmän ensimmäinen julkinen julkaisu julkaistiin . Tämä oli procfs - kehityksen huippu . Kaikki prosessinhallinta on siirretty tänne. Prosesseista on tullut hakemistoja tiedostojen sijaan. Ioctl :n sijaan käytettiin tekstikomentoja, ja ohjaus onnistui cat- ja ls-komennoilla . [3] Kun /proc asennetaan toisesta tietokoneesta verkon kautta, paikallinen prosessi voi olla vuorovaikutuksessa etäprosessin kanssa ikään kuin ne olisivat samassa koneessa.

Solaris 2.6

Solaris 2.6 peri suuren osan Plan 9 :n procfs- rakenteesta , mutta kaikki siellä olevat tiedostot olivat binaarisia, jotka oli tarkoitettu ohjelman, ei ihmisen, käytettäväksi. [1] Yleisesti ottaen tiedostojärjestelmästä on tullut hieman primitiivisempi kuin Plan 9:ssä, mutta verrattomasti kehittyneempää kuin SVR4:ssä.

4.4BSD

Se oli askel taaksepäin Solarikseen verrattuna. Kussakin hakemistossa olevien tiedostojen määrä on vähennetty 8:aan (tosin myöhemmissä julkaisuissa hieman lisätty). Saatavilla olevien komentojen joukkoa on myös vähennetty merkittävästi. Alkoi tapahtua käänteinen siirtyminen tiedostoliitännöistä järjestelmäkutsuihin. [yksi]

Nykyaikaisissa FreeBSD :n versioissa procfs poistetaan käytöstä [4] [5] .

Linux

Linux on hieman poissa yllä kuvatusta tarinasta. Alusta alkaen procfs edusti siinä universaalia käyttöliittymää tiedon saamiseksi ytimestä, eikä vain prosesseista. Päähakemisto sisältää tiedostoja (enimmäkseen tekstiä) ja hakemistoja, jotka tarjoavat erilaisia ​​tietoja järjestelmästä.

Samaan aikaan procfs ei läheskään suorita alkuperäistä tehtäväänsä - prosessinhallintaa . Komentojen lähettämiseen ei ole käyttöliittymää, tiedostojärjestelmä antaa vain yksityiskohtaista tietoa prosesseista (ja joissain paikoissa sen avulla voit muuttaa joitain vaihtoehtoja, esim. /proc/<pid>/oom_adj). [6]

Rakenne

*BSD

Jokainen ylimmän tason hakemisto sisältää seuraavat tiedostot:

Käyttöjärjestelmän tuki

Linkit

Lähteet

  1. 1 2 3 4 Lyhyt /proc historia (linkki ei ole käytettävissä) . Arkistoitu alkuperäisestä 2. maaliskuuta 2012. 
  2. proc(4) manuaalisivu (UNIX, 8. painos) (downlink) . Arkistoitu alkuperäisestä 2. maaliskuuta 2012. 
  3. proc(3) manuaalisivu (suunnitelma 9) (downlink) . Arkistoitu alkuperäisestä 2. maaliskuuta 2012. 
  4. Mitä FreeBSD 8 valmistaa? (linkki ei saatavilla) . Arkistoitu alkuperäisestä 2. maaliskuuta 2012. 
  5. Miksi procfs on poistettu käytöstä procstatin hyväksi? (freebsd-fs-postituslista) (downlink) . Arkistoitu alkuperäisestä 2. maaliskuuta 2012. 
  6. proc(5) manuaalisivu (Linux) (downlink) . Arkistoitu alkuperäisestä 2. maaliskuuta 2012.