LinuCレベル2 201試験の出題範囲「2.01.3 Linux カーネルの構成要素」の解説まとめ

IT資格

LinuCレベル2 201試験の出題範囲「2.01.3 Linux カーネルの構成要素」の技術的内容についての解説をまとめました。

重要度2
概要特定のハードウェア、ハードウェアドライバ、システムリソース、およびさまざまな要求に必要となるカーネルの構成要素を利用する。これには、異なる種類のカーネルイメージを実装すること、安定版および開発版のカーネルとパッチを区別すること、カーネルモジュールを利用することなども含まれる。
詳細Kernel の配布形式。bzImage , xz データ圧縮Kernelのモジュールとドキュメント。
 ・/usr/src/linux/
 ・/usr/src/linux/Documentation/
LinuCレベル2 201試験 出題範囲 | LPI-Japan
仮想環境を含むLinuxのシステム設計・ネットワーク構築において、アーキテクチャに基づいた設計、導入、問題解決ができるエンジニアであることを認定します。試験センターの他に自宅でも受験できます。受験費用は税込16,500円。

カーネルとは

カーネル(Kernel)は、Linuxの中核となるプログラムのことを指します。

Linux kernelという言葉はよく耳にすると思います。しかし、「じゃあkernelって何?」と聞かれると、意外と答えられないと思います。では、kernelとは何か?「kernel」とは「中核」という訳語が当てはまりますが、簡単に言えばその通り「Linuxの中核となるプログラムがLinux kernelです」となります。そして、これはよく言われることですが、厳密には「Linux」と言った場合、このLinux kernelのことを指します(最近では、後述する「Linuxディストリビューション」をLinuxと呼ぶケースも増えてきています)。

カーネル(kernel) - Linux技術者認定 LinuC | LPI-Japan
Linuxを学習する上で出てくる素朴な疑問や、便利なテクニックなどを紹介しています。LinuCは、クラウド・DX時代に活躍するエンジニアに求められるLinuxを中心とした技術や知識を身につけることができるLinux技術者認定試験。出題範囲に...

カーネルは具体的には「ハードウェアの動作の管理、メモリ管理、ファイルの管理、プロセスの管理」などを行っています。

さて、そのLinux kernel、「OSの中核となるプログラムです」と説明してもいまひとつピンと来ないかもしれません。具体的に何をやっているのか?というと、「ハードウェアを稼動させる指示を出す、もっと具体的には、メモリー管理、ファイルの管理、デバイスドライバとしての役割、プロセスの管理」などを担っています。例えて言えば、「ユーザからの指示に従ってハードウェアを稼動させる”頭脳”の役割を担っている」、という言い方ができるでしょうか。

カーネル(kernel) - Linux技術者認定 LinuC | LPI-Japan
Linuxを学習する上で出てくる素朴な疑問や、便利なテクニックなどを紹介しています。LinuCは、クラウド・DX時代に活躍するエンジニアに求められるLinuxを中心とした技術や知識を身につけることができるLinux技術者認定試験。出題範囲に...

企業向けのLinuxとして使われるRed Hat Enterprise Linuxの公式サイトではカーネルの動作について以下のように説明されています。

カーネルには 4 つの仕事があります。

  1. メモリー管理:どの程度のメモリーが、何をどこに保存するために使用されたか、追跡します。
  2. プロセス管理:どのプロセスがいつ、どれだけの期間、中央処理装置 (CPU) を使用できるかを決めます。
  3. デバイスドライバー:ハードウェアとプロセスの間の仲介者/通訳として機能します。
  4. システムコールとセキュリティ:プロセスからサービス要求を受け取ります。
Linux カーネルとは | Red Hat
Linux カーネルは Linux OS の中核部分。ハードウェアと実行プログラムのプロセス間のインターフェースとして両者の通信の管理、リソース管理やデバイス制御等を担います。

カーネルモジュールとは

準備中。

「/lib/modules/<カーネルバージョン>/modules.dep」ファイルの概要

modules.depファイルは、カーネルモジュールそれぞれが別のどのカーネルモジュールに依存しているかという依存関係情報が書かれているファイルです。.depは「dependency(依存関係を意味する英単語)」の頭文字だと思われます。

以下はRed Hat Enterprise Linux 9.6で確認したmodules.depファイルの中身です。

このファイルを利用して依存関係を解決しているコマンドの一つに modprobe があります。

unameコマンドとそのオプションの説明

unameコマンドはLinuxの現在の環境に関する様々な情報を取得・表示することができるコマンドです。unameコマンドに指定するオプションによって取得する情報を指定することができます。

オプション説明
-sカーネルの名前を表示
-rカーネルのバージョンを表示
-nホスト名を表示
-mハードウェア名を表示
-pCPUタイプを表示
-a以上すべての情報を表示

カーネルのバージョンを表示する(uname -r)

カーネルのバージョン情報を表示するにはuname -rを実行します。

以下はRed Hat Enterprise Linux 9.6でのuname -rコマンドの実行例です。

カーネルのバージョン情報を含めた複数の情報を表示する(uname -a)

カーネルのバージョン情報を含めた複数の情報を表示するにはuname -aを実行します。

以下はRed Hat Enterprise Linux 9.6でのuname -aコマンドの実行例です。

カーネルのバージョンのカテゴリ

リリースされるLinuxカーネルは主に以下の4つのカテゴリに分類されます。

・prepatch(プレパッチ)
リリース候補(RC:Release Candidate)です。テストが必要な新機能が含まれており、カーネルの開発者や最新機能を試したいユーザ向けの開発版リリースです。

・mainline(メインライン)
prepatchの後にリリースされる正式版です。prepatchで導入された新機能が含まれており、Linus Torvalds 氏が数か月毎にリリースします。mainlineはリリースされた時点で安定版の第0版とみなされます。

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

・longterm(ロングターム)
stableの中から選ばれ、新しいカーネルに行われたものと同様のバグフィックスが行われるリリースです。stableは新しいmainlineのリリースからあまり間をおかずにEOL(End Of Life: 「(製品の)寿命」から転じて、サポート期間終了を意味する)になりますが、longterm版は約2年という長い期間バグフィックスが行われます。longterm版のことを「LTS(Long Term Support)」と省略する場合もあります。

The Linux Kernel Archives - Releases

カーネルのバージョン番号はドットで区切られており、「X.Y.Z」あるいは「X.Y.Z.R」の形式になっています。

zImage と bzImageの概要

bzImageの概要

zImageの概要

参考資料

本記事の作成に使用した参考資料を掲載します。

https://linuc.org/docs/seminar/20201004_linuc2.pdf

The Linux Kernel Archives - Releases
タイトルとURLをコピーしました