Zoeken op website

/proc - Krijg Linux-proces- en hardware-informatie


Vandaag zullen we ons verdiepen in de inhoud van de map /proc om een beter begrip van de functionaliteiten ervan te ontwikkelen. Het is belangrijk op te merken dat de map /proc een gemeenschappelijk kenmerk is in alle Linux-distributies, ongeacht hun smaak of architectuur.

Eén misvatting die we onmiddellijk moeten ophelderen is dat de map /proc GEEN conventioneel bestandssysteem is in de traditionele zin van het woord.

Het is een virtueel bestandssysteem dat informatie bevat over processen en andere systeemgerelateerde gegevens binnen de procfs. Dit bestandssysteem wordt toegewezen aan de map /proc en wordt aangekoppeld tijdens het opstartproces van het systeem.

Wat is /proc in Linux

Het /proc bestandssysteem dient als interface voor kerneldatastructuren en runtime-informatie, waardoor zowel gebruikers als applicaties toegang krijgen tot gedetailleerde informatie over processen, systeemconfiguratie, hardware en meer, door deze gegevens via een hiërarchie van virtuele bestanden.

Om een volledige lijst met bestanden en mappen in het bestandssysteem /proc te bekijken, kunt u de opdracht ls gebruiken, zoals weergegeven.

ls /proc

Navigeren door /proc in Linux

Wanneer u naar de map /proc navigeert, zult u merken dat er enkele bekend klinkende bestanden zijn, en vervolgens een hele reeks genummerde mappen, die elk overeenkomen met een lopend proces op het systeem.

cd /proc
ls

Deze genummerde mappen vertegenwoordigen de processen, beter bekend als proces-ID's (PID's), en daarbinnen een opdracht die deze in beslag neemt. De bestanden bevatten systeeminformatie zoals geheugen (meminfo), CPU-informatie (cpuinfo) en beschikbare bestandssystemen.

Hier zijn een paar belangrijke bestanden en mappen die u tegenkomt:

  • /proc/cpuinfo – Geef informatie weer over de CPU('s) op het systeem, zoals het model, de snelheid en het aantal cores.
  • /proc/meminfo – Geeft details weer over het geheugengebruik en statistieken die de totale hoeveelheid geheugen, het vrije geheugen en het geheugen bevatten dat door elk proces wordt gebruikt.
  • /proc/filesystems – Bevat een lijst van alle bestandssystemen die door de kernel worden ondersteund.
  • /proc/sys – Lijst met configuratie- en runtimeparameters voor de kernel.
  • /proc/loadavg – Toon het gemiddelde van de systeembelasting over verschillende tijdsintervallen, zoals 1, 5 en 15 minuten.
  • /proc/self – Een symbolische link naar de eigen map van het proces.
  • /proc/stat – Bevat een verscheidenheid aan statistieken over het systeem, zoals het aantal actieve processen, het aantal interrupts en de hoeveelheid tijd die in elke CPU-status wordt doorgebracht.
  • /proc/uptime – Bevat de hoeveelheid tijd dat het systeem actief is geweest.
  • /proc/PID – Bevat informatie over een specifiek proces, waarbij PID de proces-ID is.

Systeeminformatie extraheren

De /proc/meminfo wordt gebruikt om informatie weer te geven over het geheugengebruik en statistieken van een Linux-systeem, dat een momentopname bevat van verschillende geheugengerelateerde statistieken, wat handig kan zijn voor het monitoren van de systeemprestaties en het gebruik van bronnen .

cat /proc/meminfo

Zoals u kunt zien bevat /proc/meminfo een heleboel informatie over het geheugen van uw systeem, inclusief de totale hoeveelheid beschikbaar (in kb) en de hoeveelheid die vrij is in de bovenste twee lijnen.

Als u het cat-commando uitvoert op een van de bestanden in /proc, wordt de inhoud ervan weergegeven. Informatie over alle bestanden is beschikbaar op de manpagina door het volgende uit te voeren:

man 5 /proc/<filename>

Ik zal je een kort overzicht geven van de bestanden van /proc:

  • /proc/cmdline – Kernel-opdrachtregelinformatie.
  • /proc/console – Informatie over huidige consoles, inclusief tty.
  • /proc/devices – Apparaatstuurprogramma's die momenteel zijn geconfigureerd voor de actieve kernel.
  • /proc/dma – Info over huidige DMA-kanalen.
  • /proc/fb – Framebuffer-apparaten.
  • /proc/filesystems – Huidige bestandssystemen die door de kernel worden ondersteund.
  • /proc/iomem – Huidige systeemgeheugenkaart voor apparaten.
  • /proc/ioports – Geregistreerde poortregio's voor invoer-uitvoercommunicatie met het apparaat.
  • /proc/loadavg – Gemiddelde systeembelasting.
  • /proc/locks – Bestanden die momenteel zijn vergrendeld door de kernel.
  • /proc/meminfo – Info over systeemgeheugen (zie voorbeeld hierboven).
  • /proc/misc – Diverse stuurprogramma's geregistreerd voor de diverse belangrijke apparaten.
  • /proc/modules – Momenteel geladen kernelmodules.
  • /proc/mounts – Lijst met alle mounts die door het systeem worden gebruikt.
  • /proc/partitions – Gedetailleerde informatie over partities die beschikbaar zijn voor het systeem.
  • /proc/pci – Informatie over elk PCI-apparaat.
  • /proc/stat – Record of verschillende statistieken bewaard vanaf de laatste herstart.
  • /proc/swap – Informatie over swapruimte.
  • /proc/uptime – Uptime-informatie (in seconden).
  • /proc/version – Kernelversie, gcc-versie en Linux-distributie geïnstalleerd.

Procesinformatie extraheren

In de genummerde mappen van /proc vindt u een aantal bestanden en links. Houd er rekening mee dat de nummers van deze mappen correleren met de PID van de opdracht die daarin wordt uitgevoerd.

Navigeren naar /proc/ levert bijvoorbeeld details op zoals:

  • /proc//cmdline – Opdrachtregelargumenten die worden gebruikt om het proces te starten.
  • /proc//status – Gedetailleerde statusinformatie, inclusief geheugengebruik en processtatistieken.
  • /proc//fd – Symbolische links naar bestanden die door het proces worden geopend.

Laten we een voorbeeld gebruiken om een map te bekijken met de naam /proc/12.

cd /proc/12
ls

Als ik ren:

cat /proc/12/status

Ik krijg het volgende:

Wat betekent dit? Het belangrijkste deel staat bovenaan. We kunnen aan het statusbestand zien dat dit proces tot rcu_tasks_rude_kthread behoort. De huidige status is inactief en de ID van het proces is uiteraard 12.

We kunnen ook zien wie dit uitvoert, aangezien UID en GID 0 zijn, wat aangeeft dat dit proces tot de root behoort sterke> gebruiker.

In elke genummerde map heb je een vergelijkbare bestandsstructuur, en de belangrijkste met hun beschrijvingen zijn als volgt:

  • cmdline – opdrachtregel van het proces
  • omgeving – omgevingsvariabelen
  • fd – bestandsbeschrijvingen
  • limieten – bevat informatie over de limieten van het proces
  • mounts – gerelateerde informatie

U zult ook verschillende links in de genummerde map opmerken:

  • cwd – een link naar de huidige werkmap van het proces
  • exe – link naar het uitvoerbare bestand van het proces
  • root – link naar de werkmap van het proces

Dit zou u op weg moeten helpen om vertrouwd te raken met de map /proc. Het zou ook inzicht moeten geven in hoe een aantal commando's hun informatie verkrijgen, zoals uptime, lsof, mount en ps, om er maar een paar te noemen.