/proc - Hanki Linux-prosessi- ja laitteistotiedot


Tänään perehdymme /proc-hakemiston sisältöön, jotta voimme ymmärtää paremmin sen toimintoja. On tärkeää huomata, että /proc-hakemisto on yhteinen ominaisuus kaikissa Linux-jakeluissa niiden mausta tai arkkitehtuurista riippumatta.

Yksi väärinkäsitys, joka meidän on heti selvennettävä, on se, että /proc-hakemisto EI ole perinteinen tiedostojärjestelmä termin perinteisessä merkityksessä.

Se on virtuaalinen tiedostojärjestelmä, joka sisältää tietoja prosesseista ja muista järjestelmään liittyvistä tiedoista procfsissa. Tämä tiedostojärjestelmä on yhdistetty /proc-hakemistoon ja liitetään järjestelmän käynnistyksen aikana.

Mikä on /proc Linuxissa

/proc-tiedostojärjestelmä toimii käyttöliittymänä ytimen tietorakenteille ja ajonaikaisille tiedoille, mikä tarjoaa sekä käyttäjille että sovelluksille tavan saada yksityiskohtaisia tietoja prosesseista, järjestelmän kokoonpanosta, laitteistosta ja muusta paljastamalla nämä tiedot virtuaalitiedostojen hierarkian kautta.

Voit tarkastella täydellistä luetteloa /proc-tiedostojärjestelmän tiedostoista ja hakemistoista käyttämällä ls-komentoa kuvan mukaisesti.

ls /proc

Navigointi /proc Linuxissa

Kun siirryt /proc-hakemistoon, huomaat, että siellä on joitain tutulta kuulostavia tiedostoja ja sitten koko joukko numeroituja hakemistoja, joista jokainen vastaa järjestelmän käynnissä olevaa prosessia.

cd /proc
ls

Nämä numeroidut hakemistot edustavat prosesseja, jotka tunnetaan paremmin nimellä prosessitunnukset (PID), ja niissä oleva komento, joka käyttää niitä. Tiedostot sisältävät järjestelmätietoja, kuten muisti (meminfo), CPU-tiedot (cpuinfo) ja käytettävissä olevat tiedostojärjestelmät.

Tässä on muutamia keskeisiä tiedostoja ja hakemistoja, joita kohtaat:

  • /proc/cpuinfo – Luettelo tiedot järjestelmän prosessoreista, kuten malli, nopeus ja ytimien lukumäärä.
  • /proc/meminfo – Luettelo muistinkäytöstä ja tilastoista, jotka sisältävät muistin kokonaismäärän, vapaan muistin ja kunkin prosessin käyttämän muistin.
  • /proc/filesystems – Sisältää luettelon kaikista ytimen tukemista tiedostojärjestelmistä.
  • /proc/sys – Luetteloi ytimen kokoonpano- ja ajonaikaiset parametrit.
  • /proc/loadavg – Näytä järjestelmän kuormituksen keskiarvo eri aikaväleillä, kuten 1, 5 ja 15 minuuttia.
  • /proc/self – symbolinen linkki prosessin omaan hakemistoon.
  • /proc/stat – Sisältää erilaisia tilastotietoja järjestelmästä, kuten käynnissä olevien prosessien lukumäärän, keskeytysten lukumäärän ja kussakin suorittimen tilassa käytetyn ajan.
  • /proc/uptime – Sisältää ajan, jonka järjestelmä on ollut käynnissä.
  • /proc/PID – Sisältää tietoja tietystä prosessista, jossa PID on prosessin tunnus.

Järjestelmätietojen purkaminen

/proc/meminfo-komentoa käytetään näyttämään tietoja Linux-järjestelmän muistin käytöstä ja tilastoista, jotka sisältävät tilannekuvan erilaisista muistiin liittyvistä mittareista, joista voi olla hyötyä järjestelmän suorituskyvyn ja resurssien käytön seurannassa. .

cat /proc/meminfo

Kuten näet, /proc/meminfo sisältää joukon tietoja järjestelmäsi muistista, mukaan lukien käytettävissä olevan kokonaismäärän (kt) ja kahden ylimmän vapaan määrän. rivit.

Cat-komennon suorittaminen missä tahansa tiedostossa /proc näyttää niiden sisällön. Tietoja kaikista tiedostoista on saatavilla man-sivulla suorittamalla:

man 5 /proc/<filename>

Annan sinulle nopean yhteenvedon /proc-tiedostoista:

  • /proc/cmdline – Ytimen komentorivitiedot.
  • /proc/console – Tietoja nykyisistä konsoleista, mukaan lukien tty.
  • /proc/devices – Laiteohjaimet, jotka on tällä hetkellä määritetty käynnissä olevalle ytimelle.
  • /proc/dma – Tietoja nykyisistä DMA-kanavista.
  • /proc/fb – Framebuffer-laitteet.
  • /proc/filesystems – Ytimen tukemat nykyiset tiedostojärjestelmät.
  • /proc/iomem – Nykyinen järjestelmämuistikartta laitteille.
  • /proc/ioports – Rekisteröity porttialueet tulo-lähtöviestintään laitteen kanssa.
  • /proc/loadavg – Järjestelmän keskimääräinen kuormitus.
  • /proc/locks – Ytimen tällä hetkellä lukitsemat tiedostot.
  • /proc/meminfo – Tietoja järjestelmämuistista (katso yllä oleva esimerkki).
  • /proc/misc – Sekalaiset ohjaimet, jotka on rekisteröity erilaisille tärkeimmille laitteille.
  • /proc/modules – Tällä hetkellä ladatut ydinmoduulit.
  • /proc/mounts – Luettelo kaikista järjestelmän käyttämistä kiinnikkeistä.
  • /proc/partitions – Yksityiskohtaiset tiedot järjestelmän käytettävissä olevista osioista.
  • /proc/pci – Tietoja kaikista PCI-laitteista.
  • /proc/stat – Viimeisestä uudelleenkäynnistyksestä säilytetty tietue tai erilaisia tilastotietoja.
  • /proc/swap – Tietoja swap-tilasta.
  • /proc/uptime – Käyttöaikatiedot (sekunteina).
  • /proc/version – Ytimen versio, gcc-versio ja Linux-jakelu asennettu.

Prosessitietojen purkaminen

/proc:n numeroiduista hakemistoista löydät muutamia tiedostoja ja linkkejä. Muista, että näiden hakemistojen numerot korreloivat niissä suoritettavan komennon PID:n kanssa.

Esimerkiksi siirtymällä kohtaan /proc/ saat tietoja, kuten:

  • /proc//cmdline – Komentoriviargumentit, joita käytetään prosessin käynnistämiseen.
  • /proc//status – Yksityiskohtaiset tilatiedot, mukaan lukien muistin käyttö ja prosessitilastot.
  • /proc//fd – Symboliset linkit prosessin avaamiin tiedostoihin.

Tarkastellaan esimerkkiä kansiota nimeltä /proc/12.

cd /proc/12
ls

Jos juoksen:

cat /proc/12/status

Saan seuraavan:

Mitä tämä tarkoittaa? No, tärkein osa on ylhäällä. Näemme tilatiedostosta, että tämä prosessi kuuluu tiedostoon rcu_tasks_rude_kthread. Sen nykyinen tila on idle, ja sen prosessin ID on luonnollisesti 12.

Voimme myös nähdä, kuka tätä suorittaa, sillä UID ja GID ovat 0, mikä tarkoittaa, että tämä prosessi kuuluu juurelle. vahva> käyttäjä.

Missä tahansa numeroidussa hakemistossa sinulla on samanlainen tiedostorakenne, ja tärkeimmät kuvauksineen ovat seuraavat:

  • cmdline – prosessin komentorivi
  • ympäristö – ympäristömuuttujat
  • fd – tiedostojen kuvaukset
  • rajat – sisältää tietoa prosessin rajoista
  • kiinnikkeet – liittyvät tiedot

Huomaat myös useita linkkejä numeroidussa hakemistossa:

  • cwd – linkki prosessin nykyiseen työhakemistoon
  • exe – linkki prosessin suoritettavaan tiedostoon
  • juuri – linkki prosessin työhakemistoon

Tämän pitäisi auttaa sinua tutustumaan /proc-hakemistoon. Sen pitäisi myös tarjota tietoa siitä, kuinka useat komennot saavat tietonsa, kuten käyttöaika, lsof, mount ja ps, vain muutamia mainitakseni.