Почему dmesg будет получать сообщения из пространства пользователя?

Вы можете использовать dmesg -u, чтобы увидеть журнал из пространства пользователя. В моем случае у меня есть лог от systemd и lvm. Почему это происходит, почему пользовательская программа может печатать в буферное кольцо ядра?

2 ответа

Корневой процесс может писать в /dev/kmsg, Это используется для ведения журнала, которое происходит очень рано, до того, как обычные системы ведения журнала будут готовы выполнить любое ведение журнала.

Некоторые процессы пользовательского пространства могут писать в dmesg, потому что они выполняют действия, которые раньше принадлежали процессам пространства ядра, но которые были перемещены в пользовательское пространство, чтобы упростить управление пользователями.

Классическим примером является udev, который, согласно Википедии:

он выполняет... все действия в пользовательском пространстве при добавлении / удалении устройств, включая загрузку прошивки.

Другой известный пример - FUSE, который:

Файловая система в пользовательском пространстве (FUSE) - это механизм операционной системы для Unix-подобных компьютерных операционных систем, который позволяет непривилегированным пользователям создавать свои собственные файловые системы без редактирования кода ядра.

Вместе с LVM, init и т. Д. Эти инструменты выполняют операции ядра в пространстве пользователя; по этой причине, а также, возможно, и для преемственности с инструментами, которые они заменили (devfs, hotplug, ...), их вывод явно принадлежит кольцевому буферу ядра.

Другие вопросы по тегам