Open2
Linuxカーネル
カーネルバージョンとイメージ
- カーネルバージョン:
カーネルバージョンは、Linuxカーネルのリリースを識別する番号です。
構成:
- 例: 5.10.0
- 5: メジャーバージョン(大きな変更や新機能)
- 10: マイナーバージョン(smaller features, major fixes)
- 0: パッチレベル(バグ修正や小さな改善)
確認方法:
uname -r
重要性:
- 特定の機能やハードウェアサポートの有無を示す
- セキュリティパッチの適用状況を示す
- カーネルイメージ:
カーネルイメージは、実際に実行可能なカーネルのバイナリファイルです。
特徴:
- 通常は /boot ディレクトリに保存される
- ファイル名の例: vmlinuz-5.10.0-generic
構成要素:
- 圧縮されたカーネルコード
- 初期RAMディスク(initrd または initramfs)
- ブートプロセス初期に必要なドライバやスクリプトを含む
関連ファイル:
- System.map: カーネルシンボルとそのメモリアドレスのマッピング
- config: カーネルのビルド時の設定オプション
カーネルイメージの管理:
- 複数のバージョンを保持可能
- GRUBなどのブートローダーで選択可能
重要なコマンド:
- カーネルモジュールの一覧表示:
lsmod
- カーネルメッセージの表示:
dmesg
- カーネルパラメータの設定:
/etc/sysctl.conf
やsysctl
コマンド
Linuxカーネルの主要な構成要素について
-
プロセス管理:
- タスクスケジューリング: CPUの使用時間を各プロセスに割り当てる
- プロセス間通信(IPC): プロセス間でのデータ交換を管理
-
メモリ管理:
- 仮想メモリ: 物理メモリを効率的に使用するための仕組み
- ページング: メモリをページ単位で管理
- スワッピング: 必要に応じてメモリの内容をディスクに退避
-
ファイルシステム:
- VFS (Virtual File System): 異なるファイルシステムを統一的に扱うための抽象層
- 各種ファイルシステムのサポート (ext4, XFS, Btrfs など)
-
デバイスドライバ:
- ハードウェアとのインターフェース
- キーボード、マウス、ディスク、ネットワークカードなどの制御
-
ネットワークスタック:
- TCP/IP プロトコルの実装
- ネットワークインターフェースの管理
-
システムコール・インターフェース:
- ユーザースペースのプログラムがカーネル機能を利用するための窓口
-
アーキテクチャ固有のコード:
- 特定のハードウェアアーキテクチャに依存する部分
-
セキュリティモジュール:
- SELinux, AppArmor などのセキュリティ機能
-
電源管理:
- 省電力機能の制御
- システムの起動・シャットダウン処理
これらの要素が互いに連携して動作し、ハードウェアとユーザーアプリケーションの橋渡しをしています。
LPIC学習メモ