Вы можете использовать dmesg -u, чтобы увидеть журнал из пространства пользователя. В моем случае у меня есть лог от systemd и lvm. Почему это происходит, почему пользовательская программа может печатать в буферное кольцо ядра?
2 ответа
Корневой процесс может записывать в /dev/kmsg
. Это используется для ведения журнала, которое происходит очень рано, до того, как обычные системы ведения журнала будут готовы выполнить любое ведение журнала.
Некоторые процессы пользовательского пространства могут писать в dmesg, потому что они выполняют действия, которые раньше принадлежали процессам пространства ядра, но которые были перемещены в пользовательское пространство, чтобы упростить управление пользователями.
Классическим примером является udev, который, согласно Википедии:
он обрабатывает ... все действия в пользовательском пространстве при добавлении / удалении устройств, включая загрузку прошивки.
Другой известный пример - FUSE :
Файловая система в пользовательском пространстве (FUSE) - это механизм операционной системы для Unix-подобных компьютерных операционных систем, который позволяет непривилегированным пользователям создавать свои собственные файловые системы без редактирования кода ядра.
Вместе с LVM, init и т.д. Эти инструменты выполняют операции ядра в пространстве пользователя; по этой причине и, возможно, также для обеспечения преемственности с инструментами, которые они заменили (devfs, hotplug, ...), их вывод явно принадлежит кольцевому буферу ядра.