Loading AI tools
Aus Wikipedia, der freien Enzyklopädie
Das Programm dmesg ist ein Unix-Befehl, der Nachrichten aus dem Puffer des Kernels ausgibt. Der Befehl ist seit 4.0BSD[1] von 1980 in Unix enthalten, so auch in der UNIX 8th Edition[2] von 1985, sowie in einigen Unix-artigen Betriebssystemen wie beispielsweise Linux.[3] Dabei ist dmesg jedoch nicht Teil der POSIX-Spezifikation.
dmesg, was u. a. für englisch display messages oder diagnostic messages stehen kann, liest die Systemnachrichten (system messages) direkt aus dem Kernel-Pufferspeicher und gibt sie als lesbaren Text aus. Unix folgt dem Prinzip „Alles ist eine Datei“, sodass auch der Kernelpuffer aus einer Datei im Unix-Dateisystem ausgelesen werden kann. Unter Linux liest dmesg beispielsweise standardmäßig /proc/kmsg
aus.[3] Je nach System oder Konfiguration ist diese Datei jedoch privilegiert, sodass auch dmesg nur mit den nötigen Berechtigungen oder als Benutzer „root“ ausgeführt werden kann.[4][5]
Da der Kernelpufferspeicher eine begrenzte Größe hat, können eventuell nicht alle Systemnachrichten vorgehalten werden. Wird der Speicher voll, werden ältere Nachrichten verworfen (Ringpuffer), wodurch diese auch bei der Ausgabe mit dmesg fehlen.
dmesg wird gerne von Systemadministratoren[6] und manchmal auch von Benutzern[7] zur Fehleranalyse verwendet. Nicht selten ist die Ausgabe von dmesg auch ein wesentlicher Teil für Fehlerberichte (englisch bug reports) bei Linux.[8][9]
Beispiel, bei dem das Kernel-Log auf einer Unix-Shell unter Linux in die Datei dmesg.log
(im aktuellen Verzeichnis) gespeichert wird:
# dmesg > dmesg.log
Beispiel für eine spezifische Fehleranalyse (die Zeichenkette „i915“ als Suchfilter soll Meldungen des gleichnamigen Kernel-Moduls isoliert zeigen):
# dmesg | grep i915 [ 5.552078] i915 0000:00:02.0: [drm] VT-d active for gfx access [ 5.553821] i915 0000:00:02.0: vgaarb: deactivate vga console [ 5.553881] i915 0000:00:02.0: [drm] DMAR active, disabling use of stolen memory [ 5.555138] i915 0000:00:02.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=io+mem:owns=io+mem [ 5.604661] [drm] Initialized i915 1.6.0 20201103 for 0000:00:02.0 on minor 0 [ 5.803113] fbcon: i915drmfb (fb0) is primary device [ 6.691361] i915 0000:00:02.0: [drm] *ERROR* uncleared fifo underrun on pipe A [ 6.691368] i915 0000:00:02.0: [drm] *ERROR* CPU pipe A FIFO underrun [ 6.693280] i915 0000:00:02.0: [drm] *ERROR* uncleared pch fifo underrun on pch transcoder A [ 6.693287] i915 0000:00:02.0: [drm] *ERROR* PCH transcoder A FIFO underrun [ 6.707693] snd_hda_intel 0000:00:1b.0: bound 0000:00:02.0 (ops i915_audio_component_bind_ops) [ 7.369510] i915 0000:00:02.0: [drm] fb0: i915drmfb frame buffer device
Einige Unix- und Unix-artige Betriebssysteme führen eigene bzw. erweiterte Logs, die Teile der Kernel-Systemnachrichten enthalten. So kann unter Linux die Datei /var/log/messages
ausgegeben werden, die von syslogd geführt wird. Unter macOS finden sich die Nachrichten unter /var/log/kernel.log
und /var/log/system.log
.[10]
Moderne init-Systeme wie systemd integrieren die Funktionalität von dmesg ebenfalls.
dmesg(8)
: display the system message buffer – OpenBSD System Manager's Manualdmesg(1)
: print or control the kernel ring buffer – Debian GNU/Linux Ausführbare Programme oder Shell-Befehle HandbuchseiteSeamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.