シェルスクリプトマガジン

特集1 Linuxカーネルの仕組み(Vol.76記載)

著者:平田 豊

LinuxというOSの中核となるのが「Linuxカーネル」というソフトウエアです。Linuxカーネルの動作を理解するには、ソースコードを追いかける必要があります。しかし、いきなりソースコードを読んでもよく分からないものです。本特集記事では、学習の「入り口」となるように、学習用の環境を構築する方法を紹介します。また、Linuxカーネルの一部の機能をピックアップして、その実装について解説します。本特集をきっかけにLinuxカーネルのソースコード読解を始めましょう。

シェルスクリプトマガジン Vol.76は以下のリンク先でご購入できます。

図1 OS レスプログラムのイメージ

図7 QEMU の起動用シェルスクリプト

図8 Linux カーネルに追加するコード

図11 init デーモンを起動する箇所のソースコード

図12 buildroot 環境のC ライブラリにおけるsyscall 関数の実装

図13 システムコールに対応する関数を呼び出すためのマクロ定義の例

図14 machine_halt() 関数のコード

図15 machine_power_off() 関数のコード

図17 schedule() 関数のコード

図18 FIFO からのデータを出力するプログラムのコード

図19 wait_event_interruptible_exclusive() 関数のマクロ定義

図20 msleep() 関数のコード

図21 process_timeout() 関数とschedule_timeout() 関数のコード

図22 mutex_lock() 関数のコード

図23 preempt_enable() 関数のマクロ定義

図24 ヘッダーファイルでのjiffies 変数の宣言

図25 jiffies_64 変数の実体の定義

図26 INITIAL_JIFFIES 定数の定義