¿Dónde se ubica el búfer de anillo del kernel en relación con rsyslog?

¿Dónde se ubica el búfer de anillo del kernel en relación con rsyslog?

¿Es rsyslogsolo una capa de abstracción encima del búfer de anillo del núcleo? ¿O es el búfer de anillo del núcleo su propia entidad y rsyslogla interacción es como la de cualquier otra "aplicación"?

Respuesta1

Aunque varios documentos (incluido man dmesg) se refieren a él como "el búfer de anillo del núcleo", podría ser mejor referirse a él como el búfer de registro del núcleo, ya que "búfer de anillo" es un término genérico y creo que el núcleo también usa el búfer de anillo. buffers para varias cosas completamente ajenas. El "búfer printk" también es apropiado, después de que la función de espacio del núcleo se utilice para escribir en él.

De todos modos, reside en el espacio del kernel y se proporciona una interfaz de lectura a través /proc/kmsgde /dev/kmsg. Entonces si como root vas:

echo "Hello Kernel!" > /dev/ksmg

Lo verá si lo hace entonces cat /dev/ksmg(sin embargo, probablemente no verá que esto aparezca en ningún registro; consulte el comentario de Matthew Phipps a continuación para conocer una posible razón). Esta es una salida sin procesar y no se parece exactamente a lo que ve dmesgen sus archivos de registro. Hay un pocoun poco de documentaciónsobre esto proporcionado con la fuente del kernel. Se recomienda no leer desde /proc/kmsg(no es lo mismo que ) si se está ejecutando (r)syslog./dev/ksmg

Rsyslog es uno de variosregistro del sistemaImplementaciones comúnmente utilizadas en Linux. Estas son aplicaciones de usuario que obtienen mensajes del kernel /proc/ksmgy mensajes de otros procesos de usuario a través de un socket, /dev/log.

información relacionada