I-6-2. OSの基本構造とカーネルの役割

Linux OSの基本的な構造を説明する。また中心的な役割を担うカーネルの基本的な機能として、プロセス管理、メモリ管理、ファイル管理、ネットワーク、I/Oなどの概要を紹介する。

【学習の要点】

* LinuxOSの基本的な構造としては、中心にカーネルと呼ばれるプログラムが存在し、そのカーネルを取り囲むようにしてシェル・カーネルモジュール・アプリケーションプログラムが存在する。

* カーネルは、LinuxOSの中核となるプログラムで、プログラムをメモリに読み込んだり、プログラム実行に必要な領域を確保したりする。その他にも、ファイルや周辺機器の管理や、ネットワークとI/Oの管理などを行う。

* シェルとは、ユーザから与えられた指示をカーネルが解釈できる形式に変換するプログラムである。

* カーネルモジュールとは、必要に応じて追加されるプログラム部品である。

図I-6-2. OSの基本構造

【解説】

1) Linuxオペレーティングシステムの基本的な構造

LinuxOSには、その中心にカーネルと呼ばれる核となるプログラムが存在している。そのカーネルを中心に、シェルやカーネルモジュール、アプリケーションプログラムなどによって構成されている。

* シェルとは

ユーザからの指示・命令を受けて、それらをカーネルが解釈できる形式に変換して伝えるソフトウェアのことである。

* カーネルモジュールとは

必要に応じて追加されるプログラム部品。デバイスドライバなどはこれに該当する。

* アプリケーションプログラムとは

コンピュータのOSの上で実行され、ユーザの目的を果たすための機能を提供するプログラムのことを示す。ただし、ミドルウェアなどは含まれない。

2) カーネルの基本的な機能

カーネルとは、OSの核となるプログラムである。基本的な機能は、以下の通りである。

* プロセス管理

プロセス管理とは、アプリケーションプログラムの実行を許可し、ハードウェアへのアクセスのためのインタフェースをプログラムに提供することである。プログラムを実行するため、カーネルはプログラムのコードを含むファイルをメモリに読みこみ、プログラム実行に必要な専用領域(スタックと呼ぶ)を準備し、そのプログラムの所定の位置へ制御を渡すことで実行を開始する。

* メモリ管理

カーネルはアプリケーションプログラムからの要求のたびに、アクセス可能なメモリ空間を提供する。これは仮想アドレッシングと呼ばれる方式であり、この方式ではカーネルは物理アドレスを別のアドレス(仮想アドレス)に変換する。

* ファイル管理

ファイル管理(ファイルシステム)は、コンピュータの資源を管理するための、OSが持つ機能の1つである。ファイルとは、ハードディスクなどの補助記憶装置に格納されたデータを示している。

* デバイス管理

デバイス管理では、各種のデバイスにアプリケーションシステムからアクセスするための統一的なインタフェースや、 デバイスドライバの管理を行なう。オペレーティングシステムの起動時、カーネルはバス上の周辺機器を検索し、必要なドライバを探す。

* I/O管理

外部からのコンピュータへのデータ入力、コンピュータから外部へのデータ出力の管理も行っている。

OSS Course Naviのコンテンツは IPA OSS モデルカリキュラムを基としています。