Entdeckt /proc Dateisystem op Linux
Haut wäerte mir e Bléck am/proc Verzeechnes kucken an e Vertraut entwéckelen. De/proc Verzeechnes ass präsent op all Linux Systemer, onofhängeg vu Goût oder Architektur.
Eng Mëssverständnis déi mir direkt musse klären ass datt den/proc Verzeichnis NET e richtege Dateiesystem ass, am Sënn vum Begrëff. Et ass e virtuelle Dateiesystem. Enthält an de Procfs sinn Informatioun iwwer Prozesser an aner Systeminformatioun. Et gëtt op /proc mapéiert a montéiert beim Bootzäit.
Als éischt, loosst eis an den/proc Verzeechnes kommen a kucke ronderëm:
# cd /proc
Déi éischt Saach déi Dir bemierkt ass datt et e puer vertraute Klangdateien sinn, an dann eng ganz Rëtsch vun nummeréierten Verzeichnisser. Déi nummeréiert Verzeechnes representéieren Prozesser, besser bekannt als PIDs, a bannent hinnen e Kommando deen se besetzt. D'Dateien enthalen Systeminformatioun wéi Erënnerung (Meminfo), CPU Informatioun (cpuinfo), a verfügbare Dateiesystemer.
Liest och: Linux Gratis Kommando fir kierperlecht Gedächtnis z'iwwerpréiwen an Erënnerung ze tauschen
Loosst eis als éischt ee vun de Dateien kucken:
# cat /proc/meminfo
wat eppes ähnleches zu dësem zréckkënnt:
MemTotal: 604340 kB MemFree: 54240 kB Buffers: 18700 kB Cached: 369020 kB SwapCached: 0 kB Active: 312556 kB Inactive: 164856 kB Active(anon): 89744 kB Inactive(anon): 360 kB Active(file): 222812 kB Inactive(file): 164496 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 0 kB SwapFree: 0 kB Dirty: 0 kB Writeback: 0 kB AnonPages: 89724 kB Mapped: 18012 kB Shmem: 412 kB Slab: 50104 kB SReclaimable: 40224 kB ...
Wéi Dir gesitt, enthält /proc/meminfo eng Rëtsch Informatioun iwwer d'Erënnerung vun Ärem System, dorënner de Gesamtbetrag verfügbar (a kb) an de Betrag gratis op den Top zwou Zeilen.
Wann Dir de Cat Kommando op eng vun de Dateien an/proc ausféiert, gëtt hiren Inhalt erausginn. Informatioun iwwer all Dateien ass verfügbar op der Man-Säit andeems Dir leeft:
# man 5 /proc/<filename>
Ech ginn Iech e séieren Iwwerbléck iwwer/proc Dateien:
- /proc/cmdline – Kernel Kommandozeilinformatioun.
- /proc/console - Informatioun iwwer aktuell Konsolen inklusiv tty.
- /proc/devices - Gerät Treiber déi momentan fir de lafende Kernel konfiguréiert sinn.
- /proc/dma - Info iwwer aktuell DMA Kanäl.
- /proc/fb – Framebuffer Geräter.
- /proc/filesystems - Aktuell Dateiesystemer ënnerstëtzt vum Kernel.
- /proc/iomem - Aktuell System Memory Kaart fir Apparater.
- /proc/ioports - Registréiert Hafenregiounen fir Input Output Kommunikatioun mam Apparat.
- /proc/loadavg – Duerchschnëtt vum Systembelaaschtung.
- /proc/locks - Dateien déi momentan vum Kernel gespaart sinn.
- /proc/meminfo - Info iwwer Systemspeicher (kuckt Beispill hei uewen).
- /proc/misc - Verschidde Chauffeuren registréiert fir verschidde grouss Apparater.
- /proc/modules - Aktuell gelueden Kernel Moduler.
- /proc/mounts - Lëscht vun alle Mounts déi vum System benotzt ginn.
- /proc/partitions - Detailléiert Infoen iwwer Partitionen déi am System verfügbar sinn.
- /proc/pci - Informatioun iwwer all PCI Apparat.
- /proc/stat - Rekord oder verschidde Statistike gehale vum leschte Restart.
- /proc/swap – Informatiounen iwwer Swap-Plaz.
- /proc/uptime - Uptime Informatioun (a Sekonnen).
- /proc/version - Kernel Versioun, gcc Versioun, a Linux Verdeelung installéiert.
An /proc's nummeréiert Verzeichnisser fannt Dir e puer Dateien a Linken. Denkt drun datt d'Zuelen vun dësen Verzeichnisser mat der PID vum Kommando korreléieren, deen an hinnen leeft. Loosst eis e Beispill benotzen. Op mengem System gëtt et en Ordnernumm /proc/12:
# cd /proc/12 # ls
attr coredump_filter io mounts oom_score_adj smaps wchan autogroup cpuset latency mountstats pagemap stack auxv cwd limits net personality stat cgroup environ loginuid ns root statm clear_refs exe maps numa_maps sched status cmdline fd mem oom_adj schedstat syscall comm fdinfo mountinfo oom_score sessionid task
Wann ech lafen:
# cat /proc/12/status
Ech kréien déi folgend:
Name: xenwatch State: S (sleeping) Tgid: 12 Pid: 12 PPid: 2 TracerPid: 0 Uid: 0 0 0 0 Gid: 0 0 0 0 FDSize: 64 Groups: Threads: 1 SigQ: 1/4592 SigPnd: 0000000000000000 ShdPnd: 0000000000000000 SigBlk: 0000000000000000 SigIgn: ffffffffffffffff SigCgt: 0000000000000000 CapInh: 0000000000000000 CapPrm: ffffffffffffffff CapEff: ffffffffffffffff CapBnd: ffffffffffffffff Cpus_allowed: 1 Cpus_allowed_list: 0 Mems_allowed: 00000000,00000001 Mems_allowed_list: 0 voluntary_ctxt_switches: 84 nonvoluntary_ctxt_switches: 0
Also, wat heescht dat? Gutt, de wichtegen Deel ass uewen. Mir kënnen aus der Statusdatei gesinn datt dëse Prozess zu xenwatch gehéiert. Säin aktuellen Zoustand schléift, a säi Prozess ID ass 12, offensichtlech. Mir kënnen och gesinn wien dëst leeft, well UID a GID 0 sinn, wat beweist datt dëse Prozess zum Root Benotzer gehéiert.
An all nummeréiert Verzeechnes hutt Dir eng ähnlech Dateistruktur. Déi wichtegst, an hir Beschreiwunge sinn wéi follegt:
- cmdline - Kommandozeil vum Prozess
- Environnement - Ëmweltvariablen
- fd - Dateibeschreiwungen
- Limiten - enthält Informatiounen iwwer d'Limite vum Prozess
- Mounts - Zesummenhang Informatiounen
Dir wäert och eng Zuel vu Linken am nummeréierten Verzeechnes bemierken:
- cwd - e Link op den aktuellen Aarbechtsverzeichnis vum Prozess
- exe - Link op d'Ausféierbar vum Prozess
- root - Link op den Aarbechtsverzeichnis vum Prozess
Dëst sollt Iech unzefänken fir Iech mam /proc Verzeichnis vertraut ze maachen. Et sollt och Abléck ubidden wéi eng Zuel vu Kommandoen hir Informatioun kréien, sou wéi Uptime, lsof, mount, a ps, fir nëmmen e puer ze nennen.