学習記録#18 250616

385ページから

399ページまで

BIOSは、basic input output systemの略
UEFIは、Unified Extensible Firmware Interfaceの略

コンピュータのファームウェアの総称としてBIOSが使われることもある

Linuxは、ハードウェアのアクセスを抽象化するデバイスファイルを持っている。
全てのハードウェアはデバイスファイルとして表され、デバイスファイルの読み書きを通してハードウェアにアクセスできるようになっている
Linux -> デバイスファイル -> ハードウェア

デバイスファイルは/dev以下にある
これらは、udevという仕組みによって自動的に作成される

udevという仕組みによって自動的に作成される
かつてのLinuxでは使うかどうかに関わらず多数のデバイスをあらかじめ/dev以下に作っておく必要があった。また、カーネルがデバイスを認識していても、アプリケーションはデバイスを利用することができなかった。
udevの仕組みによって、あらかじめファイルを作らなくても自動で必要なデバイスファイルを作成することができる。また、デバイスファイルを通じてハードウェアにアクセスできる

デバイスの情報は、D-Busと呼ばれる

Linuxカーネルが認識しているデバイスに関する情報の一部は、/procディレクトリ以下のファイルで確認できる

確認できる主な情報は、
- CPU
- IRQ
- I/Oアドレス
- メモリ
- スワップ領域
- USBデバイス
- PCIデバイス

IRQ:Interrupt ReQuest
→割り込み要求。CPUに割り込みを要求する信号や、信号の番号のこと
スワップ領域
→コンピュータのメモリ(RAM)が不足した際に、ハードディスクの一部を仮想的なメモリとして利用する領域
PCIデバイス:Peripheral Component Interconnect
→PCIは「周辺機器相互接続」の意味。このPCIバスに接続された拡張カードのこと

PCIデバイスの情報は、lspci
コマンドで確認できる

USBデバイスの情報は、lsusb
コマンドで確認できる

/sysディレクトリは、/procディレクトリと同様に仮想的なファイルシステム。
テキストファイルとして、システム情報にアクセスできる
テキストファイルなので、catコマンドとかで中身を確認したら情報が見れる

ハードウェアを利用するにはデバイスドライバが必要

Linuxカーネルに搭載されている汎用のドライバ(クラスドライバ)もある

→デバイスドライバの仕様に沿ったUSBデバイスはクラスドライバで対応できるため、専用のデバイスドライバをインストールする必要はない

デバイスを利用するために必要な制御プログラムをデバイスドライバという

必要なデバイスドライバをカーネルに組み込むことをロードするという

ロード済みのカーネルモジュールを確認するには、lsmodコマンドを使う

通常、デバイスは自動でロードされる
手動でロードするときはmodprobe
コマンドを使う
カーネルモジュールをロードするときはinsmod
、取り外すrmmod
を使うことができるが、モジュール同士の依存関係はユーザー自身で解決する必要がある
modprobe
なら自動で依存関係まで処理してくれるので、こっちを使うのが一般的

ディスクに保存されるデータをファイルとして管理する仕組みがファイルシステム
ハードディスクやSSDを利用するには、ディスク内にパーティションを作成し、次にパーティション内にファイルシステムを作成し、そのファイルシステムをマウントするという作業を行う
ディスク
|_パーティション
|_ファイルシステム ←これをマウントする

パーティション:論理的な区画。ハードディスクやSSDなどのストレージは、これに分割して利用する
異なるパーティションには、異なるファイルシステムが作成できる
ディスク
|_パーティション1
|_ファイルシステムA
|_パーティション2
|_ファイルシステムB