こんにちは、ゆーろんです。
今回はLinux OSとハードウェア関連に関するコマンドであるlspci,lsusb, lsmod, modprobeに関してまとめます。
基本的なシステムのハードウェア
CPU
コンピュータの「頭脳」となる部品で、プログラムの命令を受け取り、演算処理を実行する役割を担っています。CPUの性能が高いほど、高速で多くの処理をこなせるため、コンピュータの性能向上につながります。
Linuxでは多くのCPUの種類(アーキテクチャ)に対応しており、またCPUの性能指標の1つはGHzで動作周波数として表されます。
メモリ
コンピュータで処理するためのデータやプログラムを一時的に保存する部品で、コンピュータの動作に欠かせない重要な要素です。メモリの容量が大きいほど、より多くのデータを扱えるようになり、高速な動作を実現することができます。
メモリに記憶された内容はシステムの電源が切れると消えます。またLinuxでは動作するのに512MBから1GB程度ほどのメモリが必要です。
ハードディスク
コンピュータのデータを永続保存する部品で、ファイルやプログラムなどのデータを記録します。また電源が消えても内容は損失しません。
ハードディスクの容量が大きいほど、より多くのデータを保存できるため、長期間のデータの保管に適しています。
最近はHDDだけではなく、フラッシュメモリを使ったSSDもOSの保存場所として使われるようになっています。
入力装置
コンピュータにデータを入力するための部品で、キーボードやマウス、タッチパッドなどがあります。これらの装置を使用して、ユーザーがコンピュータにデータを入力することができます。
拡張カード
コンピュータに搭載された機能を拡張するための部品で、ネットワークカード(NIC)、グラフィックスカードやサウンドカード、SCSIカード、RAISカードなどがあります。これらの拡張カードを追加することで、コンピュータの性能を向上させることができます。
拡張カードの取り付け時はコンピュータのシステム電源は切っておく必要があります。
USB機器
コンピュータに接続して使用することができる様々な機器で、USBポートに接続することで利用できます。USB機器には、外付けハードディスクやマウス、キーボード、プリンター、スマートフォンなどがあります。USBポートの数が多いほど、複数の機器を同時に接続して利用することができます。
BIOS/UEFI
BIOS
BIOS(Basic Input/Output System)は、パソコンの起動時に最初に実行されるプログラムで、コンピュータの基本的なハードウェアを制御する役割を担っています。BIOSはROMに格納されており、電源を入れると自動的に起動して、ハードウェアの初期化や検査を行い、OSの起動を可能にします。BIOSは、パソコンの基本的な設定やパフォーマンスの最適化、デバイスの起動優先順位の設定など、多くの機能があります。
また、BIOSの基本機能は以下の通りです。
- OSを起動するためにプログラムをディスクから読み取る
- デバイスの動作の設定
- 基本的な入出力の制御
UEFI
UEFI(Unified Extensible Firmware Interface)は、BIOSに代わる新しい規格で、BIOSの制限を克服し、パソコンの起動時により高度な機能を提供することができるものです。UEFIはBIOSと異なり、C言語などのプログラミング言語を使用して開発されました。
また、BIOSよりも高速で安定性が高く、セキュリティも強化されています。
UEFIには、BIOSに比べて多くの機能があり、起動ローダーやネットワークブート機能、セキュアブート機能などがあります。UEFIは現在、ほとんどの新しいコンピュータで使用されており、BIOSからの移行が進んでいます。
BIOS/UEFIセットアップ
BIOS/UEFIセットアップで設定できる項目はシステムのBIOS/UEFIにより多少異なりますが、基本的には以下項目が設定可能です。
- ブートデバイスの優先順位:
コンピュータが起動時に使用するブートデバイスの順序を設定することができます - システムクロック:
プロセッサのクロック周波数を設定することができます - メモリの設定:
メモリのタイミングや帯域幅、電圧などの設定を行うことができます - セキュリティ設定:
セキュアブート、パスワード設定、TPM(Trusted Platform Module)の設定などを行うことができます - デバイスの設定:
デバイスの有効・無効や構成、IRQ(Interrupt Request)の割り当てなどの設定を行うことができます - 電源管理:
電源の節約や省電力設定など、電源管理関連の設定を行うことができます
デバイス情報
デバイスへのアクセス
Linuxではすべてのデバイス(ハードウェアや仮想的なものを含む)がファイル(デバイスファイル)として扱われています。これらのファイルを操作することで、デバイスの制御や情報の取得が可能となっています。
デバイスファイルは/dev ディレクトリ以下にあり、これらはudevと言う仕組みにより自動生成されます。
Linuxカーネルが認識しているデバイスに関する情報の一部は
/proc ディレクトリ以下で確認可能です。
ファイル名 | 内容の概要 |
---|---|
/proc/cpuinfo | CPUに関する詳細な情報を提供する |
/proc/meminfo | システムメモリに関する情報を提供する |
/proc/ioports | I/Oポートの使用状況に関する情報を提供する |
/proc/bus/usb/devices | 接続されたUSBデバイスに関する情報を提供する |
/proc/bus/pci/devices | 接続されたPCIデバイスに関する情報を提供する |
/proc/interrupts | インタラプトの使用状況に関する情報を提供する |
lspci コマンド
lspciはLinuxシステムで接続されたPCIバスデバイス情報を一覧表示するためのコマンドです。
username@host:$ lspci
6b41:00:00.0 3D controller: Microsoft Corporation Device 008e
USBデバイス
usbの規格とデバイスクラス
USB(Universal Serial Bus)は周辺機器とコンピュータを接続するための規格で、様々な種類のデバイスを接続することができます。
またUSBの規格はいくつかバージョンがあります。
バージョン | 伝送速度 |
---|---|
USB 1.1 | 1.5 Mbps |
USB 2.0 | 480 Mbps |
USB 3.0 | 5 Gbps |
USB 3.1 | 10 Gbps |
USB 4.0 | 40 Gbps |
USBデバイスを使用するにはデバイスドライバが必要です。これはUSBデバイスがデバイスクラスに応じて異なる方法で通信するために使用されます。
Linuxシステムにおいては最初から搭載されているクラスドライバがあります。デバイスクラスの使用に沿ったUSBデバイスはクラスドライバで対応するため、専用のデバイスドライバは不要となります。
デバイスクラス | サポートされるデバイスの例 |
---|---|
HID(ヒューマンインターフェイスデバイス) | キーボード、マウス、ジョイスティック、ゲームパッド |
Mass Storage(大容量ストレージ) | ハードドライブ、フラッシュドライブ、SDカード |
Audio(オーディオデバイス) | マイク、スピーカー、オーディオインターフェイス |
Printer(プリンタ) | プリンタ |
lsusb コマンド
lsusbは接続されたUSBデバイスをリストアップするコマンドです。
このコマンドは接続されたUSBデバイスのベンダーID、デバイスID、クラスなどの情報を提供します。
$ lsusb
lsusbコマンドのオプションは以下の通りです。
オプション | 説明 |
---|---|
-v | 詳細な情報を表示します。 |
-t | ツリー形式でUSBデバイスを表示します。 |
-s [bus]:[device] | 特定のバス番号とデバイス番号で指定されたUSBデバイスの情報を表示します。 |
-d [vendor]:[product] | 特定のベンダーIDとデバイスIDで指定されたUSBデバイスの情報を表示します。 |
udev
udevはデバイスの管理とドライバの自動検出を行う仕組みです。
udevはシステムに新しいデバイスが追加された場合、デバイスの属性情報を取得し、それに基づいて対応するデバイスドライバを自動的に読み込むことができます。
デバイスの情報は、D-Busと呼ばれるプロセス間通信(IPC)のための機構により、異なるアプリケーション間でデータやシグナルを送信したり、受信したりすることができます。
カーネルモジュールのロード
lsmod コマンド
lsmodコマンドはロードされたカーネルモジュールの一覧を表示するためのコマンドです。
カーネルモジュールは、カーネル内で動作するドライバーやファイルシステムなどの機能を提供します。
$ lsmod
modprobe コマンド
modprobeコマンドはカーネルモジュールを手動でロードするためのコマンドです。modprobeコマンドを使用すると、特定のカーネルモジュールをロードしたり、モジュールの依存関係を自動的に解決したりすることができます。
$ modprobe [カーネルモジュール名]