モジュール管理
何が問題か?
モノシリック構造(すべてのルーチンを1つのバイナリ)にすることはある程度までは可能だが、何らかの部分的拡張を行おうとするとすぐに破綻する。
組み合わせ爆発
安定したバイナリの配布が困難
再コンパイルの要求は難しい。逆にトラブルを引き起こす。
マイクロカーネルのように完全にバラバラにするのは逆に効率が悪い。
このため、モノシリック構造はカーネルの基本部分までとして、拡張部分をモジュール化するのが妥当。
カーネル空間(あるいはカーネルより少し外だが、ユーザー空間よりは内側)で動作する。
モジュールは主にOSからの要求を受けて応答を返す。
カーネルサービスと呼んだ方が適切か?
どういうインターフェースが必要となるのか?
モジュールの追加
モジュールの削除
イベント(状態変化)
ライフサイクル状態変化
ロード開始
ロード中
起動(実行要求受付)
初期化(起動中)
初期化完了
実行中
一時停止
一時停止中
再開
停止要求受付
終了処理(停止中)
停止
アンロード
アンロード中
アンロード完了