【LPIC 201】カーネルの構成要素

LPIC

今回はLPIC2 201の出題範囲である、Linuxカーネルの構成要素についての覚えておきたいポイントをまとめました。

Linuxカーネルとは

まず、LinuxカーネルとはLinuxと呼ばれているOSの中にあるLinuxという名前のカーネルのことです。

カーネルとはOSの中核部分を担っているソフトウェアのことで、動作中のプログラムの実行状態を管理したり、ハードウェア資源を管理してプログラムがハードウェアの機能を利用する手段を提供したりしています。

本来Linuxはカーネルのことですが、カーネルだけではOSは動かないため、OSとして成り立たせるソフトウェア群とLinuxカーネルを合わせてLinuxと呼ばれています。

カーネルのバージョン確認方法

unameコマンド

稼働中のカーネルバージョンを確認することが可能です。

書式

uname [オプション]

<主なオプション>

オプション内容
-aすべての情報を表示
-rカーネルバージョンを表示
-mハードウェアアーキテクチャを表示

<実行例>

# uname -r
3.10.0-1127.el7.x86_64
# 

# uname -a
Linux localhost.localdomain 3.10.0-1127.el7.x86_64 #1 SMP Tue Mar 31 23:36:51 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
# 

/proc/versionファイル

[/proc/version]ファイルでもカーネルのバージョン確認が可能です。

<実行例>

# cat /proc/version
Linux version 3.10.0-1127.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) ) #1 SMP Tue Mar 31 23:36:51 UTC 2020
#

/usr/src/linux/Makefileファイル

カーネルソースをビルドしてカーネルを作った場合には、[/usr/src/linux/Makefile]にもカーネルバージョンの記載があります。

カーネルソースとは、カーネルの元となるプログラムで人間が読める形で記述されています。このカーネルソースを機械が読める形に変換(コンパイル)し、プログラムに問題がないか解析等を行い実際のプログラムを作成することをビルドといいます。

カーネルイメージファイルの形式

カーネルイメージファイルとは、カーネル本体のデータが保存されたファイルのことです。このカーネル本体のデータはgzipで圧縮され、通常は/bootディレクトリ内に[vmlinuz-カーネルバージョン]というファイル名で配置されています。

カーネルイメージファイルには「zImage」と「bzImage」といった形式があり、それぞれ以下のような違いがあります。

zImage

サイズが512KB以下という制限がある。

bzImage

1MBを超えるサイズでも扱える。現在主流の2.6 系や 3.x 系ではbzImage形式が使用されている。

リリースされるLinuxカーネルのカテゴリ

Linuxカーネルのリリースには、以下のカテゴリがあります。

prepatch

リリース候補で、テストが必要な新機能が含まれており、カーネルの開発者や最新機能を試したユーザ向けの開発版リリースです。

mainline

prepatchの後にリリースされる正式版です。prepatchで導入された新機能が含まれており、Linus Torvalds氏が数ヶ月ごとにリリースします。mainlineは、リリースされた時点で安定板の第0版とみなされます。

stable

mainlineの後にリリースされる安定板です。mainlineに対して発見された不具合の修正が行われ、安定したカーネルとしてリリースされます。stable版のリリースは指定されたカーネルメンテナが行います。

longterm

stableの中から選ばれ、新しいカーネルに行われたものと同様のバグフィックスが行われるリリースです。

さいごに

次回はLinuxカーネルのコンパイルについてまとめていきます。

コメント

タイトルとURLをコピーしました