【发布时间】:2011-07-13 18:34:38
【问题描述】:
我想知道 printk 是如何将数据从内核空间传递到用户空间的。我听说过relayfs,它提供了高效统一的文件系统,将大量数据从内核空间传输到用户空间,printk是否也使用relayfs或者它有自己的实现??
【问题讨论】:
我想知道 printk 是如何将数据从内核空间传递到用户空间的。我听说过relayfs,它提供了高效统一的文件系统,将大量数据从内核空间传输到用户空间,printk是否也使用relayfs或者它有自己的实现??
【问题讨论】:
printk 不向用户空间传递数据。它只写入内核环形缓冲区。像dmesg 这样的程序把它带到外面去。
有关读取内核环形缓冲区的信息,请参阅klogctl(2) (man 2 klogctl) 的文档。
【讨论】:
klogctl 从内核获取它。然后它以正常方式将其打印到标准输出。