あるrsyslog
カーネルのリングバッファの上だけで抽象化レイヤは?または、カーネルリングバッファはそれ自体のエンティティであり、そのrsyslog
相互作用は他の「アプリケーション」の相互作用と似ていますか?
あるrsyslog
カーネルのリングバッファの上だけで抽象化レイヤは?または、カーネルリングバッファはそれ自体のエンティティであり、そのrsyslog
相互作用は他の「アプリケーション」の相互作用と似ていますか?
回答:
さまざまなドキュメント(を含む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で一般的に使用されている多くのsyslog実装の1つです。これらは/proc/ksmg
、ソケット経由で他のユーザーランドプロセスからのメッセージと他のユーザーランドプロセスからのメッセージを送信するユーザーランドアプリケーションです/dev/log
。