¿Cómo leer el buffer de anillo dentro del espacio del kernel de Linux?

Estoy escribiendo un controlador de caracteres de Linux que puede imprimir registros del sistema en el espacio del usuario. Tal como lo hace el comando 'dmesg'. Aprendí que todo el registro que imprimimos con 'printk' se enviará a un espacio llamado anillo de almacenamiento intermedio. Entonces tengo las preguntas:

¿Es el buffer de anillo dentro del espacio del kernel? Si es así, ¿cómo puedo leer el buffer de anillo dentro del espacio del kernel? (Intenté leer el código fuente de dmesg.c. Pero no me ayudó.)

Respuestas a la pregunta(4)

Su respuesta a la pregunta