今日は小ネタを一つ。
Linuxで、ハードウェアに起因するトラブルが発生した場合や、搭載するCPUがサポートする機能など、ハードウェア情報を確認したい場合があります。
Windowsならデバイスマネージャから確認したり、CPU機能の識別ユーティリティなど使用するところですが、Linuxの場合は、/proc以下のファイルをcatコマンドで表示することで確認できます。
例:IRQの確認
cat /proc/interrupts
例:CPUがサポートする機能の確認
cat /proc/cpuinfo
※flagsがCPUの拡張機能を表示している部分です。例えば、vmxがあれば仮想化支援*1サポート、htがあればハイパースレッディングサポート等々…。
/procは疑似的なファイルシステムで、ハードディスクなどに実際にファイルが存在するわけではありません。
プロセスやメモリーなどのLinuxシステム上のリソース関連情報を,あたかもファイルであるかのように配置したものです。疑似的とはいえ、/proc以下のファイルの多くはASCIIテキストなので、catコマンドで内容を表示できます。
なお、例として/proc以下の主なファイルを挙げます。
devices | メジャーデバイス番号とデバイス名リスト |
dma | 登録されているDMAチャネル |
interrupts | 使用されているIRQと割り込み回数 |
ioports | 使用されているI/Oアドレス領域 |
cpuinfo | CPUの各種情報 |
meminfo | 物理メモリとスワップに関する情報 |
mounts | マウントされているファイルシステム |
partitions | カーネルが認識しているパーティション |
おまけ
ちなみに、/proc以下のファイルを表示する以外に、lsdevコマンド*2を使用することでDMA、IRQ、I/Oアドレスを一覧表示することができます。
また、PCIバスおよびPCIデバイスの情報を表示するには、lspciコマンド*3が利用できます。lspciコマンドでは、オプション「-v」をつけることで詳細情報を、「-vv」をつけることでさらに詳細な情報を表示することができます。