Warum erhält dmesg eine Nachricht aus dem Benutzerbereich?

1663
dspjm

Sie können dmesg -u verwenden, um das Protokoll des Benutzerbereichs anzuzeigen. In meinem Fall habe ich mich von systemd und lvm angemeldet. Warum passiert das, warum kann das Userpace-Programm auf den Kernel-Buffer-Ring drucken?

3

2 Antworten auf die Frage

2
David Schwartz

Ein Root-Prozess kann schreiben /dev/kmsg. Dies wird für die Protokollierung verwendet, die sehr früh erfolgt, bevor reguläre Protokollierungssysteme für die Protokollierung bereit sind.

0
MariusMatutiae

Einige Userpace-Prozesse können in dmesg schreiben, da sie Aktionen ausführen, die früher zu Kernel-Space-Prozessen gehörten, die jedoch in den User-Space verschoben wurden, um Benutzern eine einfachere Kontrolle zu ermöglichen.

Ein klassisches Beispiel ist udev, das laut Wikipedia :

es handhabt ... alle Benutzerbereichsaktionen beim Hinzufügen / Entfernen von Geräten, einschließlich Firmware-Laden.

Ein anderes bekanntes Beispiel ist FUSE, das heißt:

Filesystem in Userspace (FUSE) ist ein Betriebssystemmechanismus für Unix-ähnliche Computerbetriebssysteme, mit dem nicht privilegierte Benutzer ihre eigenen Dateisysteme erstellen können, ohne Kernel-Code bearbeiten zu müssen.

Zusammen mit LVM, init usw. führen diese Tools Kernelvorgänge im Benutzerbereich aus. Aus diesem Grund und möglicherweise auch für die Kontinuität der Instrumente, die sie ersetzt haben (devfs, hotplug, ...), gehört ihre Ausgabe eindeutig in den Kernel-Ringpuffer.