
É rsyslog
apenas uma camada de abstração no topo do buffer circular do kernel? Ou o buffer de anel do kernel é sua própria entidade e rsyslog
a interação é como a de qualquer outro "aplicativo"?
Responder1
Embora várias partes da documentação (incluindo man dmesg
) se refiram a ele como "o buffer de anel do kernel", talvez seja melhor referir-se a ele como o buffer de log do kernel, já que "buffer de anel" é um termo genérico e acredito que o kernel também usa anel buffers para várias coisas completamente não relacionadas. O "buffer printk" também é apropriado, após a função de espaço do kernel usada para gravar nele.
De qualquer forma, ele reside no espaço do kernel e uma interface de leitura é fornecida via /proc/kmsg
e uma interface de leitura-gravação via /dev/kmsg
. Então, se como root você for:
echo "Hello Kernel!" > /dev/ksmg
Você verá isso cat /dev/ksmg
(no entanto, provavelmente não verá isso aparecendo em nenhum registro - veja o comentário de Matthew Phipps abaixo por um possível motivo). Esta é a saída bruta e não se parece exatamente com o que você vê dmesg
nos arquivos de log. Há um poucoum pouco de documentaçãosobre isso fornecido com a fonte do kernel. A leitura de /proc/kmsg
(diferente de /dev/ksmg
) é recomendada se (r)syslog estiver em execução.
Rsyslog é um de váriosregistro de sistemaimplementações comumente usadas no Linux. Esses são aplicativos de usuário que fornecem mensagens do kernel /proc/ksmg
e mensagens de outros processos de usuário por meio de um soquete, /dev/log
.