カーネルは起動されると,必要な初期化処理を実行してからイベント待ちになります.そこでは,大きく分けて以下のような事象が起きるのを待ちます.
・プロセス間通信(シグナル)
・システムコール
・割り込み
まず,プロセス間通信(シグナル)ですが,カーネルから見たシグナルはプロセスの状態を変化させるために使用されます.それはまたプロセスから見た場合,ソフトウェア割り込みの一つでもあります.
システムコールとは,ユーザーがカーネルの機能を実行させるための手続きのことです.主記憶に常駐している「タスク構造体」の中身を読み出す──簡単にいえば,画面に文字を表示したり,データファイルに書き込みを行うようなときに使用します.C言語のライブラリ関数などが実際にシステムコールを発行するので,一般のシステム開発ではブラックボックスですが,よりカーネル寄り,システム寄りのソフトウェアを開発する際には理解していなければならない機能です.
割り込みとは,ここではハードウェア割り込みのことをいいます.簡単にいえば,LANからパケットを受け取ったとき,キーボードからキーを打鍵したとき,タイマ割り込みなどで発生する割り込みのことです.それぞれの事象が起きたときに,どのタスクを起動するかを記述してあるのが割り込みハンドラです.
このようにカーネルはLinuxの基幹であり,これが安定していないと大きな問題となります.また,カーネルはLinuxの基本機能そのものなので,カーネルを変更することによって新しい機能を追加することができます.
表2に,最新版であるカーネル2.4で追加された機能を示します.
〔表2〕Linuxカーネル2.4の新機能
|
カーネルのコア部分の変更 |
プロセスとスレッドの管理の充実
同時に実行可能なプロセス数の上限が引き上げられた
2.2では上限が設定されていたが,2.4ではリソースが確保できる限り,動的に上限値が変更される
マルチプロセッサ対応の安定化
マルチプロセッサ環境において別々のCPUで実行されているプロセスを管理する機能が向上した
仮想ファイルシステム機能の変更
ext2ファイルシステムで2Gバイト超のデータファイルを扱えるようになった
ファイルキャッシュ機能の向上
ファイルキャッシュの方式が変更され,読み出しと書き込みを同一のキャッシュで処理できるようになった
システムリソース管理の向上
最大メモリは64Gバイト,IDEコントローラを10個,ネットワークカードは16枚まで使用できる
|
ハードウェアのサポートに関して |
PCカード
ノートブックなどでネットワークカード,無線LAN,IDE,SCSIなどのデバイスを利用できる
USB
カーネル2.3でキーボードやマウスはサポートされたが,USB HUBやオーディオデバイス,USB経由のハードディスク・CD-RW・MOなども含めてサポートされるデバイスが大幅に増加した
MP3プレーヤなどにも対応している
IEEE1394
試験的なサポートとしてFireWire,i.Linkのインターフェースが組み込まれている
ISAのプラグ&プレイ
ISAカードのプラグ&プレイにカーネルが対応した
UDMA100
UDMA100をサポートした
|
ファイルシステムに関して |
UDF
UDFは,DVDを対象に,異なるOS間でのデータ交換を可能にすることと,光ストレージ各種で共通にデータを扱えるように規格化された
対象メディアは,DVD-ROM,DVD-Video,DVD-Audio,DVD-R,DVD-RAMやDVD-RWなどのDVDファミリである
JFFS
組み込みシステム用のジャーナルファイルシステム「JFFS」
フラッシュメモリが扱える
参考(http://www.developer.axis.com/software/jffs/)
RAMFS
いわゆる「RAMDISK」が進化したものである.サイズを可変にできる
ネットワークファイルシステム
サポートしているネットワークファイルシステムがNFS V2から3にバージョンが上がった
|
新たに導入された新機能 |
NLS
Native Language Supportで日本語サポートが追加された
これによりFATファイルシステム上の日本語ファイルの扱いが楽になった
DEVFS
これによって煩雑な手続きが必要だったデバイスドライバの管理がカプセル化された
DRM
複数のプロセスからのグラフィックデバイスへのアクセスを制御し3Dレンダリングを高速処理できるようになった
LVM
複数のディスクデバイス上のパーティションを論理ボリュームとして扱うことが可能になった
kHTTPd
カーネルに統合されたWebサーバ機能である.単純なHTMLなら,かなりの高速化が図れる
ただし,CGIを扱うことができない
|
|
Copyright 2001 岸 哲夫
|