Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Welches Dateisystem ist proc unter Linux?

Welches Dateisystem ist proc unter Linux?

青灯夜游
青灯夜游Original
2023-03-15 11:31:061814Durchsuche

Unter Linux ist proc ein virtuelles Dateisystem und ein Kontrollzentrum, das den Betriebszustand des Kernels ändern kann, indem es einige der Dateien ändert. Es ist auch ein vom Kernel bereitgestelltes Abfragezentrum, über das Benutzer dies anzeigen können Informationen zur Systemhardware und zum aktuellen Betriebsprozess. Das Proc-System existiert nur im Speicher und bietet eine Schnittstelle für den Zugriff auf Systemkerneldaten in Form eines Dateisystems. Der Kernel-Betriebsstatus kann durch Ändern einiger Dateien geändert werden.

Welches Dateisystem ist proc unter Linux?

Die Betriebsumgebung dieses Tutorials: Linux7.3-System, Dell G3-Computer.

Was ist ein Proc-Dateisystem? Proc wird als virtuelles Dateisystem bezeichnet. Es ist ein Kontrollzentrum, das den Betriebszustand des Kernels ändern kann, indem es einige der Dateien ändert Kernel für uns, Benutzer. Sie können damit Informationen zur Systemhardware und zum aktuell ausgeführten Prozess anzeigen.

Die Datenquelle vieler Tools in Linux ist der Inhalt des proc-Verzeichnisses. Der Befehl lsmod ist beispielsweise ein Alias ​​von cat /proc/modules.

Unter Linux gibt es eine spezielle Art von Pseudodateisystem, das zur Ausführung verschiedener Funktionen mithilfe von mit der Dateischnittstelle vereinheitlichten Vorgängen wie Ptyfs, Devfs, Sysfs und Procfs verwendet wird. Procfs ist eines der am weitesten verbreiteten Pseudodateisysteme.

Was den Begriff Dateisystem betrifft, ist das Verzeichnis /proc kein echtes Dateisystem, sondern ein virtuelles Dateisystem, das manchmal auch als Prozessinformations-Pseudodateisystem bezeichnet wird.

Die von proc abgelegten Daten befinden sich alle im Speicher, z. B. Systemkernel, Prozess, Status externer Geräte und Netzwerkstatus usw. Da sich die Daten in diesem Verzeichnis im Speicher befinden, belegen sie keinen Festplattenspeicher.

procfs ist eine abstrakte Dateischnittstelle für Linux-Kernelinformationen. Eine große Menge an Informationen und einstellbaren Parametern im Kernel werden als reguläre Dateien einem Verzeichnisbaum zugeordnet, sodass wir Dateioperationsbefehle wie echo oder cat einfach und direkt verwenden können . Systeminformationen wurden abgerufen und angepasst. Gleichzeitig stellt procfs auch eine Schnittstelle bereit, über die unsere eigenen Kernelmodule oder Benutzermodusprogramme Parameter über procfs übertragen können. In heutigen Linux-Systemen erhalten viele Systemtools auch Kernel-Parameter wie ps, lspci usw. über procfs. Ohne procfs funktionieren sie möglicherweise nicht ordnungsgemäß.

Das proc-Dateisystem ist ein Pseudo-Dateisystem. Es existiert nur im Speicher und belegt keinen externen Speicherplatz. Es bietet eine Schnittstelle für den Zugriff auf Systemkerneldaten in Form eines Dateisystems. Benutzer und Anwendungen können über proc Systeminformationen abrufen und bestimmte Parameter des Kernels ändern. Da sich Systeminformationen wie Prozesse dynamisch ändern, liest das Proc-Dateisystem die erforderlichen Informationen dynamisch aus dem Systemkernel und übermittelt sie, wenn ein Benutzer oder eine Anwendung eine Proc-Datei liest.

Detaillierte Erläuterung des Linux-Proc-DateisystemsDas /proc-Verzeichnis auf dem Linux-System ist ein Dateisystem, nämlich das Proc-Dateisystem. Im Gegensatz zu anderen gängigen Dateisystemen ist /proc ein Pseudodateisystem (d. h. ein virtuelles Dateisystem), das keinen externen Speicherraum belegt. Es nutzt ein Dateisystem, um auf die Systemkerneldaten zuzugreifen eine Schnittstelle), die eine Reihe spezieller Dateien speichert, die den aktuellen Kernel-Ausführungsstatus speichern. Benutzer können diese Dateien verwenden, um Informationen über die Systemhardware und aktuell ausgeführte Prozesse anzuzeigen und sogar den Ausführungsstatus des Kernels zu ändern, indem sie einige davon ändern Dateien.

PID Verzeichnis, jeder aktuell im System laufende Prozess hat ein entsprechendes Verzeichnis unter /proc, mit der PID-Nummer des Prozesses als Verzeichnisname.


  • attr Das Verzeichnis stellt lesbare und beschreibbare sicherheitsrelevante Attribute bereit, um Sicherheitsmodule wie SELinux usw. zu unterstützen. CONFIG_SECURITY muss konfiguriert werden.

  • aktuelle Datei, aktuelle sicherheitsrelevante Attribute.

  • exec Datei, sicherheitsrelevante Attribute, die beim Ausführen des Befehls execve festgelegt werden.

  • fscreate Datei, sicherheitsrelevante Attribute, die beim Ausführen von Befehlen festgelegt werden: open, mkdir, symlink, mknod.

  • keycreate Datei, sicherheitsrelevante Attribute, die beim Ausführen des Befehls add_key festgelegt werden.

  • prev Datei, sicherheitsrelevante Attribute, wann der Befehl execve zuletzt ausgeführt wurde, also das vorherige „/proc/[pid]/attr/current“.

  • sockcreate Datei, sicherheitsrelevante Attribute, die beim Erstellen eines Sockets festgelegt werden. Die Datei

  • autogroup kann zum Ändern der CPU-Bandbreite verwendet werden, die automatischen Gruppen zugewiesen wird. Dazu schreiben Sie eine Zahl im „nice“-Bereich, um den Nice-Wert für die automatische Gruppierung festzulegen. Der Wertebereich liegt zwischen +19 (niedrige Priorität) und -20 (hohe Priorität). (Das Schreiben von Werten außerhalb dieses Bereichs führt dazu, dass write(2) mit dem Fehler EINVAL fehlschlägt.)

  • auxv

    Datei, ELF-Interpreterinformationen, das Format ist eine vorzeichenlose lange Typ-ID plus einen vorzeichenlosen langen Typwert und schließlich zwei Nullen (man getauxval).

  • cgroup

    Datei, die Kontrollgruppe, zu der der Prozess gehört, besteht aus drei durch Doppelpunkte getrennten Feldern, nämlich Struktur-ID, Subsystem und Kontrollgruppe, die konfiguriert werden müssen.

  • clear_refs

    Datei, schreibgeschützt, nur vom Eigentümer des Prozesses verwendet, PG_Referenced löschen und ACCESSED/YOUNG zur Schätzung der Speichernutzung verwenden, es gibt vier Strategien 1, 2, 3 und 4 1 bedeutet das Löschen aller zugehörigen Seiten, 2 bedeutet das Löschen der zugehörigen anonymen Seiten, 3 bedeutet das Löschen der zugehörigen Zuordnungsdateiseiten und 4 bedeutet das Löschen der zugehörigen Soft-Dirty-Seiten. CONFIG_PROC_PAGE_MONITOR muss konfiguriert werden.

  • cmdline

    Datei, schreibgeschützt, speichert die vollständige Befehlszeilenzeichenfolge des Startvorgangs. Wenn es sich um einen Zombie-Prozess handelt, ist diese Datei leer.

  • comm

    Datei, Befehlsname des Prozesses, verschiedene Threads (man clone prctl pthread_setname_np) können unterschiedliche Thread-Namen haben, der Speicherort ist „task/[tid]/comm“, die Namenslänge überschreitet TASK_COMM_LEN wird gekürzt.

  • coredump_filter

    Datei, Coredump-Filter, z. B. 00000037 (Man Core), verschiedene Binärbits repräsentieren das Filtern unterschiedlicher Informationen.

  • cpuset

    Datei, Knoten, der CPU und Speicher steuert (man cpuset).

  • cwd -> /

    Verzeichnis, ein symbolischer Link zum aktuellen Arbeitsverzeichnis.

  • Umgebungsdateien, Umgebungsvariablen.

  • exe Datei, symbolisch mit dem vollständigen Befehl verknüpft, um den Prozess zu starten. q

  • fd Verzeichnis, das die aktuellen fd enthält, die symbolische Links zu den tatsächlich geöffneten Dateien sind.

  • fdinfo Verzeichnis, enthält die Informationen des aktuellen FD, verschiedene Arten von FD-Informationen sind unterschiedlich.

  • gid_map Datei, Informationen zu Gruppen-IDs, die aus Benutzernamensräumen (man user_namespaces) zugeordnet werden.

  • ioDatei, IO-Informationen.

  • LimitsSoft- und Hard-Limits für Dateien, Ressourcen (man getrlimit).

  • loginuid Datei aktiviert der Audit-Daemon Auditing-Tools im Kernel. Jeder Prozess, der ausgeführt wird, bevor die Überwachung im Kernel aktiviert wird, erhält die Login-ID 4294967295. 4294967295 ist nur (unsigned long) -1. -1 bedeutet, dass loginuid nicht festgelegt ist. Dies ist ein normales Verhalten für Prozesse, die nicht von einem Anmeldeprozess (z. B. einem Daemon) gestartet werden. loginuid ist standardmäßig auf -1 eingestellt; das Modul pam_loginuid ändert es bei jeder Anmeldung (in tty/in DM/über ssh) in Ihre Benutzer-ID, und der Wert wird vom untergeordneten Prozess beibehalten.


  • map_files Verzeichnis, einschließlich einiger speicherzugeordneter Dateien (man mmap), das Dateinamenformat ist BeginAddress-EndAddress, symbolische Links zu zugeordneten Dateien, CONFIG_CHECKPOINT_RESTORE muss konfiguriert werden.

  • Karten Dateien, Informationen zur Speicherzuordnung.

  • mem Datei, die zum Zugriff auf die Speicherseiten des Prozesses durch Öffnen, Lesen und Suchen verwendet wird.

  • mountinfo Datei, Mountinformationen, das Format ist 44 41 253:1 // rw,relatime shared:35 master:1 - ext4 /dev/vda1 rw,data=ordered, mit Leerzeichen als Trennzeichen, die Bedeutung jedes Feldes von links nach rechts ist die eindeutige Mount-ID, die übergeordnete Mount-ID, die Geräte-Master- und Slave-Nummer des Dateisystems, der im Dateisystem gemountete Root-Knoten und der Mount-Punkt relativ zum Prozess-Root Knoten, Mount-Konfigurationen wie Mount-Berechtigungen, optionale Konfigurationen und Bindestriche zeigen das Ende der vorherigen optionalen Konfigurationen, Dateisystemtypen, dateisystemspezifischen Mount-Quellen oder keine oder zusätzliche Konfigurationen an.

  • mounts Datei, im aktuellen Prozess gemountete Dateisystemliste, /dev/vda1 / ext4 rw,relatime,data=ordered 0 0 Formatreferenz (man fstab).

  • mountstats Datei, Mount-Informationen, im Format des Geräts /dev/vda1, gemountet auf / mit fstype ext4 [Statistik].

  • net Verzeichnis, in dem netzwerkbezogene Dateien und Verzeichnisse des Prozesses gespeichert werden.

  • ns Verzeichnis, in dem die Einträge jedes Namespaces gespeichert werden. Weitere Informationen finden Sie unter (man namespaces).

  • numa_maps Datei, numa ist Non Uniform Memory Access, siehe (man numa) für Details.

  • oom_adj

    Datei, passen Sie den OOM-Wert an. Wenn OOM auftritt, bricht OOM Killer den Prozess mit einem hohen Wert basierend auf dem OOM-Wert ab und erbt die Einstellungen des übergeordneten Prozesses.

  • oom_score

    Datei, OOM-Score.

  • oom_score_adj

    Datei, der OOM-Score reicht von -1000 bis 1000. Die Datei

  • pagemap

    , die Seitenzuordnungsinformationen des virtuellen Speichers des aktuellen Prozesses, muss mit CONFIG_PROC_PAGE_MONITOR konfiguriert werden.

  • personality

    Datei, um das Prozesspersönlichkeitsflag in /proc sichtbar zu machen. Da die Persönlichkeit eines Prozesses vertraulich sein kann (z. B. READ_IMPLIES_EXEC), kann diese Datei nur vom Prozessbesitzer gelesen werden. Die Datei

  • projid_map

    kann, ähnlich wie bei der Benutzer- und Gruppen-ID-Zuordnung, eine Projekt-ID-Zuordnung für Benutzernamespaces erstellen. (Die Projekt-ID wird für Festplattenkontingente verwendet; siehe setquota(8) und quotectl(2).)

  • patch_state

    Datei, die den Patch-Statuswert jeder Aufgabe offenlegt, damit Benutzer bestimmen können, welche Aufgaben es sind Verhindern Sie, dass Patch-Vorgänge abgeschlossen werden.

  • root -> /

    Verzeichnis, verknüpft mit dem Stammverzeichnis des aktuellen Prozesses.

  • geplante

    Dateien, Planungsstatistiken und Statusinformationen des Prozesses.

  • schedstat

    Datei, Planungsinformationen des Prozesses.

  • sessionid

    Datei, Prozesssitzungs-ID, Standard 4294967295.

  • setgroups

    Datei: Wenn der Prozess, der die Prozess-PID im Benutzernamensraum enthält, den Systemaufruf setgroups(2) verwenden darf, zeigt die Datei /proc/[pid]/setgroups die Zeichenfolge „ allow"; Wenn setgroups(2) im Namespace des Benutzers nicht zulässig ist, wird „deny“ angezeigt. Beachten Sie, dass der Aufruf von setgroups(2) unabhängig vom Wert in der Datei /proc/[pid]/setgroups (und unabhängig von den Fähigkeiten des Prozesses) nicht zulässig ist, wenn /proc/[pid]/gid_map nicht festgelegt wurde.

  • smaps

    Dateien, Speicherzuordnungsinformationen, ähnlich dem Befehl pmap, müssen CONFIG_PROC_PAGE_MONITOR konfigurieren. Die Datei

  • stack

    , der Funktionsaufrufstapel des Kernelraums, muss mit CONFIG_STACKTRACE konfiguriert werden.

  • stat

    Datei, Prozessstatusinformationen, wird für den ps-Befehl verwendet.

  • statm

    Datei, Prozessspeichernutzungsinformationen, 7 durch Leerzeichen getrennte Zahlen, von links nach rechts repräsentieren jeweils die Gesamtprogrammgröße, die Größe des residenten Speichers, die Seitengröße des gemeinsam genutzten Speichers, den Textcode, die Bibliothek und die Daten + Stapel, schmutzige Seiten.

  • Status

    Datei, lesbare prozessbezogene Informationen.

  • syscall

    Datei, Systemaufruf-bezogene Informationen, CONFIG_HAVE_ARCH_TRACEHOOK muss konfiguriert werden.

  • task

    Verzeichnis, jeder Thread hat ein Unterverzeichnis und der Verzeichnisname ist die Thread-ID.

  • Timer

    Datei, POSIT-Timer-Liste, einschließlich Timer-ID, Signal und anderen Informationen.

  • uid_map

    Datei, Benutzer-ID-Zuordnungsinformationen.

  • wchan

    Datei, eine symbolische Darstellung des entsprechenden Speicherorts im Kernel, wenn der Prozess schläft, z. B. do_wait.

acpi/wakeup

Datei, Geräte-Weckvorgang.

buddyinfo

Datei zur Diagnose von Speicherfragmentierungsproblemen.

Bus

Verzeichnis, installierte Busse.

  • Eingabe/Geräte

    Datei zur Eingabe von Geräteinformationen.

  • Eingabe/Handler

    Datei, Informationen verarbeiten.

  • pci/00/00.0-08.0

    Datei, PCI-Socket-Informationen.

  • pci/devices

    Dateien, PCI-Geräteinformationen.

cgroups

cgroups-Informationszusammenfassung, Feld subsys_name hierarchy num_cgroups aktiviert.

cmdline

Datei, Parameter, die beim Systemstart an den Linux-Kernel übergeben werden, z. B. Lilo, Grub und andere Boot-Management-Module.

consoles

Datei, um die derzeit in der Systemkonsole /dev/console verwendeten Gerätezeilenzeichen anzuzeigen, können Sie einfach die Datei /proc/console anzeigen

Datei-, CPU- und Systemarchitekturinformationen, der Befehl lscpu verwendet diese Datei.

crypto

Datei, Verschlüsselungsliste, bereitgestellt von der Kernel-Verschlüsselungs-API.

Geräte

Dateien, gerätebezogene Informationen.

diskstats

Datei, Festplattenstatus.

dma

Datei, dma ist Direct Memory Access.

Treiber

nvram

Dateien, die Zugriff auf nichtflüchtigen Speicher in Echtzeituhren auf PCs und Ataris ermöglichen. Auf einem PC wird dieser oft als CMOS-Speicher bezeichnet und speichert BIOS-Konfigurationsoptionen.
  • rtc

    Datei, Systemlaufzeitkonfiguration.
  • execdomains

Datei, Liste der Ausführungsdomänen.

fb

Datei, Frame-Puffer-Informationen, CONFIG_FB muss konfiguriert werden.

Dateisysteme

Dateien, vom Kernel unterstützte Dateisystemtypen (Man-Dateisysteme).

fs

Verzeichnis, Informationen zum gemounteten Dateisystem.

Interrupts

Datei, Interrupt-Informationen für jeden E/A jeder CPU. Die IRQ-Nummer, die Häufigkeit, mit der jede CPU den IRQ verarbeitet, der Name des Interrupt-Controllers, der Name des IRQ und der vom Treiber zum Registrieren des IRQ verwendete Name werden nacheinander angezeigt.

iomem

Datei, IO-Speicherzuordnungsinformationen.

ioports

Datei, IO-Port-Informationen.

irq

Verzeichnis, unten wird für jeden registrierten IRQ ein Unterverzeichnis mit dem Namen der IRQ-Nummer erstellt.

kalllsyms

Datei, die für dynamische Verknüpfungen und Modulbindungssymboldefinitionen verwendet wird.

kcore

Datei, der physische Speicher im ELF-Format im System. Die Datei

keys

stellt eine Liste von Schlüsseln bereit, für deren Anzeige der Lesethread berechtigt ist, und stellt verschiedene Informationen zu jedem Schlüssel bereit. Der Thread muss nicht Eigentümer des Schlüssels sein, der in dieser Datei sichtbar ist.

key-users

Datei, die verschiedene Informationen für jede Benutzer-ID auflistet, die mindestens einen Schlüssel im System hat.

kmsg

Datei, Kernel-Protokollinformationen, dmsg-Befehl verwendet diese Datei.

kpagecount

Datei, die Häufigkeit, mit der jeder physische Seitenrahmen zugeordnet wird, muss mit CONFIG_PROC_PAGE_MONITOR konfiguriert werden. Die Datei

kpageflags

, die Maske jedes physischen Seitenrahmens, muss mit CONFIG_PROC_PAGE_MONITOR konfiguriert werden.

loadavg

Datei, aktuelle Systemlast.

locks

Datei, der aktuelle Dateisperrstatus.

mdstat

Dateien, Informationen zu virtuellen Geräten (Soft Raid usw.).

meminfo

Datei, Systemspeichernutzungsstatistiken, diese Datei wird vom kostenlosen Befehl verwendet.

Verschiedene

Dateien, Treiber, die auf anderen wichtigen Geräten registriert sind (Gerätenummer 10).

modules

Datei, vom System geladene Modulinformationen, der zugehörige Befehl ist lsmod.

mounts -> self/mounts

Datei, verknüpft mit /self/mounts.

mtrr

Dateien, Speichertypbereichsregister.

net -> self/net

Verzeichnis, bezogen auf das Netzwerk-Pseudodateisystem.

pagetypeinfo

Dateien, andere Seitenzuordnungsinformationen.

Partitionen

Datei- und Partitionsinformationen.

sched_debug

Datei, Scheduler-Debug-Informationen.

schedstat

Datei, Zeitplanerinformationen.

scsi

Verzeichnis, SCSI-Schnittstellengerät.

self -> 22699

Verzeichnis, verknüpft mit dem Verzeichnis, in dem sich der aktuelle Prozess befindet.

slabinfo

Datei, Kernel-Cache-Informationen, CONFIG_SLAB muss konfiguriert werden.

softirqs

Datei, System-Soft-Interrupt-Informationen.

stat

Statistiken für Dateien, System und Kernel.

Swaps

Datei- und Swap-Partitionsnutzung.

sys

Verzeichnis, Informationen zu Systemvariablen.

sysrq-trigger

Datei, beschreibbar, löst Systemaufrufe aus. Das Verzeichnis

sysvipc

enthält drei Dateien: msg, sem und shm, bei denen es sich um System V IPC-Objekte handelt.

timer_list

Datei, eine Liste laufender Timer.

timer_stats

Datei, Timer-Status.

tty

Verzeichnis, tty-gerätebezogen.

Betriebszeit

Dateien, Systemaktualisierungszeit und Prozessleerlaufzeit.

Version

Datei, Kernel-Versionsinformationen.

vmallocinfo

Datei, Informationen zur virtuellen Speicherzuordnung.

vmstat

Datei, Speicherstatistik, angezeigt in Form von Schlüssel-Wert-Paaren.

zoneinfo

Datei, Speicherblockinformationen, wird zur Analyse des Verhaltens des virtuellen Speichers verwendet.

Verwandte Empfehlungen: „Linux-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWelches Dateisystem ist proc unter Linux?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn