LinuxServer ハードウェア管理について その2
/procとprocfs
前回の記事で、LinuxでIRQやI/Oポートがどのように認識されているかは
catコマンドで/proc以下の対象ファイルを確認する方法を紹介しました。
このようにLinuxカーネルが認識するプロセスやデバイスに関する情報は
procfsを使用し、/procディレクトリ以下に擬似的なファイルとして配置されます。
procfsにより、動作中のプロセスの/proc/[PID]の情報と
システム全体のリソース情報(/proc/pci等)をがあり、
‘cat’コマンド等で情報を取得することができます。
[コマンド]cpuinfo CPU情報
# cat /proc/cpuinfo
[実行例]2つのCPUを使用しているのがわかります。
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 44
model name : Intel(R) Xeon(R) CPU E5645
stepping : 1
microcode : 0x1
cpu MHz : 2400.084
cache size : 4096 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 2
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 11
wp : yes
flags : fpu de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx lm constant_tsc nopl pni ssse3 cx16 sse4_1 sse4_2 x2apic popcnt aes hypervisor
bogomips : 4800.16
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
power management:
processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 44
model name : Intel(R) Xeon(R) CPU E5645
stepping : 1
microcode : 0x1
cpu MHz : 2400.084
cache size : 4096 KB
physical id : 0
siblings : 2
core id : 1
cpu cores : 2
apicid : 1
initial apicid : 1
fpu : yes
fpu_exception : yes
cpuid level : 11
wp : yes
flags : fpu de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx lm constant_tsc nopl pni ssse3 cx16 sse4_1 sse4_2 x2apic popcnt aes hypervisor
bogomips : 4800.16
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
power management:
[コマンド]loadavg システム負荷情報
# cat /proc/loadavg
[実行例]ほとんど負荷がありません
0.02 0.02 0.05 1/195 9902
[コマンド]version カーネルバージョン
# cat /proc/version
[実行例]カーネル3.5.2を使用しているのが分かります
Linux version 3.5.2-1.fc17.x86_64 (mockbuild@) (gcc version 4.7.0 20120507 (Red Hat 4.7.0-5) (GCC) )
#1 SMP Wed Aug 15 16:09:27 UTC 2012
カーネル2.6以降、デバイスやドライバについての情報を提供する
仮想ファイルシステムをprocfsからsysfsを利用するようになっています。
/devとudev
Linuxではカーネルが認識するデバイス(CPU、メモリ、ディスク、周辺機器等)を
/dev以下のディレクトリに配置される擬似的なファイル(デバイスファイル)で
管理します。
デバイスファイルはudev(Userspace Device Managemnet)という
デーモンにより、動的に生成されます。
udevはロードされているデバイスに限定したデバイスファイルの生成と
デバイスファイルの参照・編集によるデバイスの確認・操作を目的として
devfsとhotplugの後継として登場しました。
/devで認識されているデバイスの情報を取得するためのコマンドには
以下のものがあります。
[コマンド]PCI接続デバイスの情報を確認する
# lspci
[実行例]
00:00.0 Host bridge: Intel Corporation 440FX – 82441FX PMC [Natoma] (rev 02)
00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]
00:01.1 IDE interface: Intel Corporation 82371SB PIIX3 IDE [Natoma/Triton II]
00:01.2 USB Controller: Intel Corporation 82371SB PIIX3 USB [Natoma/Triton II] (rev 01)
00:01.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 03)
00:02.0 VGA compatible controller: Technical Corp. Device 1111
00:03.0 Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet Controller (rev 03)
00:04.0 SCSI storage controller: Red Hat, Inc Virtio block device
00:05.0 RAM memory: Red Hat, Inc Virtio memory balloon