我想知道printk是如何将数据从内核空间传递到用户空间的。我听说过relayfs,它提供了高效统一的文件系统来将庞大的数据从内核空间传输到用户空间,printk是否也使用relayfs或者它有自己的实现??
printk
不向用户空间传递数据。它只写入内核环缓冲区。像dmesg
这样的程序把它带到外面。
参见klogctl(2)
(man 2 klogctl
)的文档来读取内核环缓冲区