为什么 dmesg 会有来自用户空间的消息?

为什么 dmesg 会有来自用户空间的消息?

您可以使用 dmesg -u 查看来自用户空间的日志。就我而言,我有来自 systemd 和 lvm 的日志。为什么会发生这种情况,为什么用户空间程序可以打印到内核缓冲区环?

答案1

根进程可以写入/dev/kmsg。这用于在常规日志系统准备好进行任何日志记录之前非常早地发生的日志记录。

答案2

一些用户空间进程可以写入 dmesg,因为它们执行曾经属于内核空间进程的操作,但这些操作已被移至用户空间,以便于用户控制。

一个典型的例子是udev,根据维基百科

它处理...添加/删除设备时的所有用户空间操作,包括固件加载。

另一个众所周知的例子是保险丝,即:

用户空间文件系统 (FUSE) 是一种类 Unix 计算机操作系统的操作系统机制,它允许非特权用户创建自己的文件系统,而无需编辑内核代码。

和...一起LVM,初始化等等,这些工具在用户空间执行内核操作;出于这个原因,也可能是为了与它们所取代的工具(devfs、hotplug 等)保持连续性,它们的输出显然属于内核环形缓冲区。

相关内容