Open2

Linuxカーネル

ひでひで

カーネルバージョンとイメージ

  1. カーネルバージョン:

カーネルバージョンは、Linuxカーネルのリリースを識別する番号です。

構成:

  • 例: 5.10.0
    • 5: メジャーバージョン(大きな変更や新機能)
    • 10: マイナーバージョン(smaller features, major fixes)
    • 0: パッチレベル(バグ修正や小さな改善)

確認方法:

uname -r

重要性:

  • 特定の機能やハードウェアサポートの有無を示す
  • セキュリティパッチの適用状況を示す
  1. カーネルイメージ:

カーネルイメージは、実際に実行可能なカーネルのバイナリファイルです。

特徴:

  • 通常は /boot ディレクトリに保存される
  • ファイル名の例: vmlinuz-5.10.0-generic

構成要素:

  • 圧縮されたカーネルコード
  • 初期RAMディスク(initrd または initramfs)
    • ブートプロセス初期に必要なドライバやスクリプトを含む

関連ファイル:

  • System.map: カーネルシンボルとそのメモリアドレスのマッピング
  • config: カーネルのビルド時の設定オプション

カーネルイメージの管理:

  • 複数のバージョンを保持可能
  • GRUBなどのブートローダーで選択可能

重要なコマンド:

  • カーネルモジュールの一覧表示: lsmod
  • カーネルメッセージの表示: dmesg
  • カーネルパラメータの設定: /etc/sysctl.confsysctl コマンド

Linuxカーネルの主要な構成要素について

  1. プロセス管理:

    • タスクスケジューリング: CPUの使用時間を各プロセスに割り当てる
    • プロセス間通信(IPC): プロセス間でのデータ交換を管理
  2. メモリ管理:

    • 仮想メモリ: 物理メモリを効率的に使用するための仕組み
    • ページング: メモリをページ単位で管理
    • スワッピング: 必要に応じてメモリの内容をディスクに退避
  3. ファイルシステム:

    • VFS (Virtual File System): 異なるファイルシステムを統一的に扱うための抽象層
    • 各種ファイルシステムのサポート (ext4, XFS, Btrfs など)
  4. デバイスドライバ:

    • ハードウェアとのインターフェース
    • キーボード、マウス、ディスク、ネットワークカードなどの制御
  5. ネットワークスタック:

    • TCP/IP プロトコルの実装
    • ネットワークインターフェースの管理
  6. システムコール・インターフェース:

    • ユーザースペースのプログラムがカーネル機能を利用するための窓口
  7. アーキテクチャ固有のコード:

    • 特定のハードウェアアーキテクチャに依存する部分
  8. セキュリティモジュール:

    • SELinux, AppArmor などのセキュリティ機能
  9. 電源管理:

    • 省電力機能の制御
    • システムの起動・シャットダウン処理

これらの要素が互いに連携して動作し、ハードウェアとユーザーアプリケーションの橋渡しをしています。