目標
- LPICについて概要を確認する
- BIOSとUEFIについて理解する
- Linuxが利用するデバイスのリソースについて理解する
- IRQ(Interrupt Request)について理解する
LPIC
LPICとは
LPIC(Linux Professional Institute Certification)は、Linuxオペレーティングシステムに関する知識とスキルを証明するための資格認定制度です。LPICの認定は、3段階のレベルに分かれています。
- LPIC-1: 初級の資格で、Linuxの基本的なシステム管理、コマンドラインの使用、パッケージ管理、ユーザー管理、ネットワーク設定などの基本的なスキルを証明します。
- LPIC-2: 中級の資格で、より高度なシステム管理スキル(ネットワークサービス、セキュリティ、システムバックアップ、パフォーマンスチューニングなど)を証明します。
- LPIC-3: 上級の資格で、Linuxシステムの高度な管理、仮想化、クラウドサービス、セキュリティ、ネットワークアーキテクチャなどの専門的なスキルが必要です。
BIOSとUEFI
BIOSとUEFIは、コンピュータの起動時に最初に実行されるソフトウェアで、ハードウェアとオペレーティングシステム(OS)の間でやり取りを行います。それぞれの役割は似ていますが、技術的には異なる点がいくつかあります。
BIOS(Basic Input/Output System)
BIOSは、パソコンが起動する際に最初に実行されるファームウェアです。主な役割は、コンピュータのハードウェア(CPU、メモリ、ストレージデバイスなど)を初期化して、オペレーティングシステム(OS)が起動できる状態を作り出すことです。
- 起動プロセス: BIOSは、まずハードウェアをテストして正常性を確認し、その後ブートデバイス(ハードディスク、SSD、CD/DVDドライブなど)を探してOSを起動します。
- 制約: BIOSは古い技術であり、パーティションテーブルに「MBR(Master Boot Record)」を使用します。このMBRは最大2TBのディスクしかサポートせず、1つのディスクに最大4つのプライマリパーティションしか作れません。
- ユーザーインターフェース: 通常、BIOSの設定画面はテキストベースで、マウスを使うことはできません。キーボードで操作します。
UEFI(Unified Extensible Firmware Interface)
UEFIは、BIOSの後継として登場した新しいファームウェアで、より高機能で柔軟性があります。UEFIは、BIOSに比べて多くの利点があります。
- 起動プロセス: UEFIは、OSを起動するためのより高度な方法を提供します。UEFIはBIOSのようにハードウェアを初期化するだけでなく、ネットワークを使った起動や、グラフィカルなインターフェースを提供します。
- パーティションサポート: UEFIは「GPT(GUID Partition Table)」という新しいパーティション方式を使用します。これにより、2TBを超えるディスクのサポートや、無制限に近い数のパーティションを作成できるようになります。
- セキュリティ: UEFIには、セキュアブートという機能があり、信頼できるOSだけが起動できるようにすることで、マルウェアや不正なブートローダーを防止することができます。
- ユーザーインターフェース: UEFIは、BIOSと比べてより直感的でグラフィカルなインターフェースを提供し、マウスで操作することもできます。
Linuxが利用するデバイスのリソース
Linuxでは仮想ファイルシステムの一部である「/procディレクトリ」に、機器に接続されているデバイスのリソース(ハードウェアリソース)の情報を格納しています。
/procディレクトリは、Linuxシステムにおける仮想ファイルシステムの一部で、カーネルやシステムの動作に関する情報を提供するために使用されます。/procディレクトリ内のファイルは、実際のディスク上にデータとして保存されているわけではなく、カーネルやシステムの状態をリアルタイムで反映する仮想ファイルであるため、システムの状態を動的に監視したり、設定を確認したりするために利用されます。
/proc
ディレクトリ内の主要なファイルとサブディレクトリ
- /proc/cpuinfo
- CPU(プロセッサ)に関する情報が格納されています。具体的には、CPUのモデル名、コア数、アーキテクチャ、キャッシュサイズ、周波数などが含まれます。
- /proc/meminfo
- メモリの使用状況や統計情報が表示されます。総メモリ量、使用中メモリ、空きメモリ、バッファキャッシュなどが確認できます。
- /proc/uptime
- システムの稼働時間とアイドル時間を秒単位で表示します。最初の値がシステムの稼働時間、2番目の値がアイドル時間です。
- /proc/partitions
- システムに接続されているディスクやパーティションの情報を表示します。ディスクの名前、サイズ、ブロック数などが含まれます。
- /proc/ioports
- I/Oポートの使用状況を表示します。これは、デバイスがどのI/Oポートを使用しているかを示すものです。通常、ハードウェアの設定やリソース管理に利用されます。
- /proc/devices
- 現在のシステムで使用されているデバイスの種類(ブロックデバイス、キャラクターデバイスなど)が表示されます。
- /proc/diskstats
- 各ディスクデバイスのパフォーマンス統計が表示されます。各ディスクの読み取り/書き込み回数、データ量、エラー数などが確認できます。
- /proc/net
- ネットワークに関する情報が格納されるディレクトリで、ネットワーク接続の状況や統計が表示されます。例えば、/proc/net/tcpではTCP接続の状態が確認できます。
- /proc/pci
- PCIバスに接続されているデバイスに関する情報が表示されます。各PCIデバイスの詳細(ベンダーID、デバイスIDなど)が含まれます。
- /proc/interrupts
- システムの割り込み(IRQ)に関する情報が表示されます。どのCPUコアがどの割り込みを処理しているか、また各割り込みがどれだけ発生しているかなどが確認できます。
- /proc/usb
- 接続されているUSBデバイスに関する情報が表示されます。USBデバイスの種類、ステータス、デバイスの識別子などが確認できます。
- /proc/sys
- システムのカーネルパラメータを管理するための設定ファイルが格納されています。たとえば、/proc/sys/net/ipv4/ip_forwardでは、IP転送の設定を確認・変更できます。これにより、システムのネットワーク設定やセキュリティ設定を動的に変更できます。
IRQ(Interrupt Request)
IRQ(Interrupt Request)は、コンピュータシステムにおいて、ハードウェアデバイスやソフトウェアからの割り込み信号を指します。割り込みは、CPUが現在行っている処理を一時中断し、優先度の高い処理(例:ハードウェアデバイスからの要求)を行うためのメカニズムです。
IRQの基本概念
コンピュータのCPUは、1つの命令を順番に実行するシーケンシャルな処理を行います。しかし、外部のハードウェアや周辺機器からの「割り込み」信号が発生すると、CPUはその処理を中断して、優先度の高い仕事を行います。割り込みが処理されると、元の作業に戻ります。これにより、例えばキーボードの入力やマウスの動き、ネットワークパケットの受信などが即座に反映されることが可能になります。
IRQの仕組み
- IRQライン
コンピュータのハードウェアは、一定の数のIRQラインを通じて、CPUに割り込みを通知します。これらのIRQラインは、特定のハードウェアデバイスに関連付けられていて、デバイスが割り込みを送ると、CPUはその割り込みを受け取ります。 - 割り込み要求(IRQ)番号
各割り込みには番号(IRQ番号)が付けられていて、例えば「IRQ0」「IRQ1」といった形です。これによって、どのデバイスが割り込みを発生させたかが特定されます。IRQ番号は、通常0〜15の範囲で定義されています(古いシステムでは16個のIRQラインがありました)。 - 割り込みハンドラ
割り込みが発生すると、システムは対応する割り込みハンドラ(またはISR, Interrupt Service Routine)を呼び出して、割り込みを処理します。この処理が完了した後、CPUは元の処理に戻ります。 - 割り込みの優先度
割り込みには優先度があります。CPUは、通常、最も優先度の高い割り込みから処理します。たとえば、ハードディスクからの読み取り要求よりも、キーボードの入力の方が優先されることがあります。
IRQ番号とその割り当て
伝統的に、以下のようにIRQ番号が割り当てられています(これは、古いPCのアーキテクチャでの標準例です)。
- IRQ0: システムタイマー(タイムクリティカルな処理)
- IRQ1: キーボード
- IRQ2: 2番目の割り込みコントローラ(ピクチャルーチン)
- IRQ3: COM2(シリアルポート2)
- IRQ4: COM1(シリアルポート1)
- IRQ5: サウンドカードやその他の周辺機器
- IRQ6: フロッピーディスクコントローラ
- IRQ7: パラレルポート(プリンター)
- IRQ8: RTC(リアルタイムクロック)
- IRQ9: ACPI(Advanced Configuration and Power Interface)
- IRQ10: NIC(ネットワークカード)
- IRQ11: サウンドカード(一般的に使われる場合)
- IRQ12: マウス(PS/2)
- IRQ13: FPU(浮動小数点ユニット)
- IRQ14: IDE(ハードディスクコントローラ)
- IRQ15: IDE(セカンダリコントローラ)
IRQの管理と競合
多くのデバイスが同じIRQラインを使うことができないため、IRQ競合が発生する可能性があります。たとえば、同じIRQ番号を持つ2つのデバイスが同時に割り込みを発生させると、正しく処理されなくなり、システムが不安定になることがあります。
IRQ競合は、特に古いPCや周辺機器で問題になることがありました。モダンなコンピュータでは、IRQの管理が改善され、ピン数の増加やPCI(Peripheral Component Interconnect)バスの導入により、IRQ競合を回避する方法が増えました。
/proc/interrupts で IRQを確認
Linuxでは、システムのIRQの使用状況を確認するために、/proc/interrupts
ファイルを参照することができます。このファイルには、各CPUがどのIRQラインをどれだけ処理したか、またそれぞれのデバイスがどのIRQを使っているかの情報が表示されます。
IRQの状況は「cat /proc/interrupts」コマンドで確認できます。
今回は以上になります。

ブックマークのすすめ
「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。

