rsyslogに基づいてカーネリングバッファはどこにありますか?

rsyslogに基づいてカーネリングバッファはどこにありますか?

rsyslogカーネルリングバッファの上に抽象化レイヤだけがありますか?それとも、カーネルリングバッファはそれ自体のエンティティであり、rsyslog他の「アプリケーション」のように対話しますか?

答え1

さまざまなドキュメント(参照を含むman dmesg)ではこれを「カーネルリングバッファ」と呼びますが、「リングバッファ」は一般的な用語であり、カーネルもリングバッファを使用すると考えているので、カーネルログバッファと呼ぶ方が良いです。完全に関連していないすべての種類の項目のバッファー。カーネル空間関数を使用して書き込みを行った後、「printk バッファ」も適しています。

それにもかかわらず、読み取りインターフェース/proc/kmsgと読み取りおよび書き込みインターフェースを提供してカーネルスペースに常駐します/dev/kmsg。したがって、ルートに移動する場合:

echo "Hello Kernel!" > /dev/ksmg

これを行うと、その内容が表示されますcat /dev/ksmg(ただし、どのログにもこの内容が表示されない可能性があります。考えられる理由については、以下のMatthew Phippsの説明を参照してください)。これは生出力であり、dmesgログファイルに表示されるものとまったく一致しません。少し一部の文書これにはカーネルソースコードが付属しています。 (r)syslogが実行されている場合は/proc/kmsg(他の)読み取りをお勧めします。/dev/ksmg

Rsyslogは多くのログの一つです。システムログLinux で一般的に使用される実装です。これは/proc/ksmg、ソケットを介してカーネルメッセージや他のユーザースペースプロセスからメッセージを取得するユーザースペースアプリケーションです/dev/log

関連情報