Hinweise zum Proc-Dateisystem des Linux-Kernel-Gerätetreibers

Hinweise zum Proc-Dateisystem des Linux-Kernel-Gerätetreibers
/*****************
 * proc-Dateisystem*****************/

(1) Eigenschaften des /proc-Dateisystems und Beschreibung der /proc-Dateien

Das /proc-Dateisystem ist ein spezielles, von der Software erstelltes Dateisystem. Der Kernel verwendet es, um Informationen nach außen zu exportieren. Das /proc-System existiert nur im Speicher und belegt keinen externen Speicherplatz.

Jede Datei unter /proc ist an eine Kernelfunktion gebunden, die den Inhalt der Datei dynamisch generiert, wenn der Benutzer die Datei liest. Sie können Kernelparameter auch ändern, indem Sie /proc-Dateien schreiben

Dateianalyse unter dem Verzeichnis /proc /proc/$pid Informationsverzeichnis über den Prozess $pid. Jeder Prozess hat ein Verzeichnis unter /proc, das nach seiner Prozessnummer benannt ist. Beispiel: $>strings -f /proc/[0-9]*/cmdline

  • /proc/cmdline-Befehlszeile für den Kernel-Start
  • /proc/cpuinfo Prozessorinformationen wie Typ, Hersteller, Modell und Leistung.
  • /proc/devices listet die Hauptnummern der Zeichen- und Blockgeräte und die diesen Nummern zugewiesenen Gerätenamen auf.
  • /proc/dma zeigt die aktuell verwendeten DMA-Kanäle.
  • /proc/filesystems listet die verfügbaren Dateisystemtypen auf, normalerweise die im Kernel integrierten, aber neue Typen können über Module hinzugefügt werden.
  • /proc/interrupts zeigt die verwendete Interruptnummer, den Interruptnamen und die Häufigkeit, mit der diese Interrupts seit dem Systemstart aufgetreten sind.
  • /proc/ioports Aktuell verwendete E/A-Ports.
  • /proc/kallsyms Kernelsymboltabelle. Nach der Installation eines neuen Moduls wird es hier angezeigt
  • /proc/kcore Abbild des physischen Systemspeichers. Genau dieselbe Größe wie der physische Speicher, belegt aber nicht so viel Speicher (Denken Sie daran: Nichts unter /proc nimmt Speicherplatz ein, sofern es nicht in eine Datei kopiert wird).
  • /proc/kmsg Kernel-Ausgabemeldungen. Wird auch an Syslog gesendet.
  • /proc/loadavg Die durchschnittliche Auslastung des Systems. Die ersten drei sind die Auslastungen der letzten 1 Minute, 5 Minuten und 15 Minuten, gefolgt von der Anzahl der laufenden Tasks und der Gesamtanzahl der Tasks und schließlich der Prozessnummer des letzten Laufs.
  • /proc/meminfo Informationen zur Speichernutzung, einschließlich physischem Speicher und Swap.
  • /proc/modules Welche Kernmodule aktuell geladen sind.
  • /proc/partitions Die Partitionsinformationen der aktuell vom System gemounteten Festplatte
  • /proc/pci-System PCI-Bus-Informationen
  • /proc/net Statusinformationen zum Netzwerkprotokoll.
  • /proc/self Ein symbolischer Link zum Prozessverzeichnis von Programmen, die /proc anzeigen. Wenn zwei Prozesse /proc betrachten, handelt es sich um unterschiedliche Verbindungen. Dies ist vor allem für ein Programm praktisch, um sein eigenes Prozessverzeichnis zu erhalten.
  • /proc/slabinfo Zuordnungsinformationen des Slab-Cache im System
  • /proc/stat Einige Statusinformationen des Systems
  • /proc/swaps Die vom System verwendeten Swap-Bereichsinformationen
  • /proc/sysrq-trigger wird verwendet, um den sysRq-Schlüssel zu starten $>echo 1 > sysrq-trigger
  • /proc/uptime: Die Zeitspanne, die das System aktiv und im Leerlauf war. Für den Einsatz während der Betriebszeit
  • /proc/version Kernelversion

(2) Implementieren Sie selbst eine /proc-Datei

Die Header-Datei <linux/proc_fs.h> muss eingebunden werden, die Funktion ist in /fs/proc/generic.c definiert.

a. Erstellen Sie eine Datei unter /proc

Rufen Sie create_proc_read_entry auf, um eine neue Datei unter /proc zu erstellen

Struktur proc_dir_entry *create_proc_read_entry(
    const char *Name,
    mode_t-Modus, 
    Struktur proc_dir_entry *base,
    lese_proc_t *lese_proc, 
    ungültig * Daten)

b. Deinstallieren Sie Dateien unter /proc

Verwenden Sie remove_proc_entry, um Proc-Dateien zu deinstallieren

void remove_proc_entry(
    const char *Name, 
    Struktur proc_dir_entry *übergeordnet);

c. Definieren Sie eine Funktion, die Daten zurückgibt

Wenn der Prozess die /proc-Datei liest, weist der Kernel eine Speicherseite zu (d. h. einen Speicherblock mit PAGE_SIZE Bytes) und der Treiber gibt die Daten zurück, die über diese Speicherseite in den Benutzerbereich geschrieben werden sollen.

typedef int (read_proc_t)(char *Seite, char **Start, off_t aus,
int-Anzahl, int *eof, void *data);

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Wenn Sie mehr darüber erfahren möchten, schauen Sie sich bitte die folgenden Links an

Das könnte Sie auch interessieren:
  • Hinweise zur Speicherverwaltung von Linux-Kernel-Gerätetreibern
  • Hinweise zur Zeitverwaltung des Linux-Kernel-Gerätetreibers
  • Hinweise zum Zeichengerätetreiber des Linux-Kernel-Gerätetreibers
  • Hinweise zum virtuellen Dateisystem des Linux-Kernel-Gerätetreibers
  • Sortierung der technischen Hinweise zum Linux-Kernel-Gerätetreiber-Kernel-Debugging
  • Hinweise zur Verwendung der verknüpften Liste des Linux-Kernel-Gerätetreibers
  • Detaillierte Erklärung zum Schreiben von Linux-Kameratreibern
  • Analyse des Parameterübertragungsprozesses des Treibermoduls in Linux

<<:  So rufen Sie die Browser-Sharing-Funktion in Vue auf

>>:  So aktivieren Sie das langsame Abfrageprotokoll in MySQL

Artikel empfehlen

Regeln für die Verwendung gemeinsamer MySQL-Indizes

Ein gemeinsamer Index wird auch als zusammengeset...

CentOS 8 ist jetzt verfügbar

CentOS 8 ist jetzt verfügbar! Die Versionen von C...

HTTP-Rückgabecodeliste (Erklärung auf Chinesisch und Englisch)

Liste der HTTP-Rückgabecodes (unten finden Sie ei...

Das Vue-Projekt realisiert Anmelde- und Registrierungseffekte

In diesem Artikelbeispiel wird der spezifische Co...

JavaScript implementiert Countdown auf Front-End-Webseite

Verwenden Sie natives JavaScript, um den Countdow...

Lösung zum Erstellen mehrerer Datenbanken, wenn Docker PostgreSQL startet

1 Einleitung Im Artikel „PostgreSQL mit Docker st...

JavaScript zum Erreichen eines einfachen Message Board-Falls

Verwenden Sie Javascript, um ein Message Board-Be...

MySQL-Datenbank Daten laden, vielfältige Verwendungsmöglichkeiten

Inhaltsverzeichnis Vielfältige Einsatzmöglichkeit...

6 Möglichkeiten, die von Linux-Prozessen belegten Portnummern anzuzeigen

Für Linux-Systemadministratoren ist es von entsch...

Bei verschachtelten MySQL-Transaktionen aufgetretene Probleme

MySQL unterstützt verschachtelte Transaktionen, a...

So laden Sie die Kamera in HTML

Wirkungsdiagramm: Gesamtwirkung: Video wird gelad...