Dmesg

dmesgは、Unix系オペレーティングシステム (OS) のコマンドである。コマンド名は"display message" の略である。カーネルのメッセージバッファの内容を表示する。カーネルが書き込むメッセージバッファは先頭と末尾が連結された円環状の構造となっている。バッファに蓄積された文字数がバッファサイズを超えた場合には、再びバッファの先頭からの書き込みを開始し、古いメッセージから順番に上書きしている。

 機能 
コンピュータの電源を入れると、ブートが行われ、カーネルがメモリにロードされる。そしてカーネル内の個々のデバイスドライバが対応するデバイスが存在するかどうかを調べる。ハードウェアが存在する場合、具体的に何があったかを文字列化した診断メッセージを生成する。カーネル内の他のコンポーネントも、特定のコンポーネントがあるかどうか、どういうパラメータが対応するかといった情報をメッセージとして生成する。この処理は、個々のメッセージを読もうとしてもすぐにスクロールされるような速度で行われる。dmesgコマンドは、システムが完全に起動してから、そのようなメッセージを表示して調べるのに使う。

システムが完全に起動した後も、カーネルは診断メッセージを生成することがある。例えば、I/Oデバイスでエラーが発生した場合、USBデバイスがホットスワップされた場合などである。dmesgを使えば、それらのメッセージも後から確認できる。メッセージは生成されたときにコンソールにも表示される。コンソールを使って作業していると、ユーザープログラムの表示と混じったり、上書きされてすぐ読めなくなったりする。出力はsyslogなどのロギングデーモンがログファイルに保存している。

 使用例 
dmesgの出力は標準的な端末サイズの数画面ぶんになる。このため、一般にdmesgはmore、tail、grepなどと組み合わせて使う。

 関連 
商用OSで、ブート時にスプラッシュスクリーンを表示している場合は、ユーザがその時点でこれらのメッセージを見ないこともある。ただし、スプラッシュスクリーンを表示させず、メッセージを表示させるオプションが存在することがある。これは、システムのブートが失敗する場合には貴重な診断情報になる。dmesgがないOSでも、同等の機能を持つ（起動時の診断メッセージを表示する）コマンドや他の手段が存在する。Linux Standard Baseでも指定コマンドになっているLinux Standard Base https://refspecs.linuxfoundation.org/lsb.shtml。

 注釈 

 関連項目 
uname

 外部リンク 
dmesg(8) – JM Project
The dmesg Command - by The Linux Information Project (LINFO)

Category:UNIXのソフトウェア