OS は、一枚岩的 な構造をもつものが多数作られてきました。 一枚岩的な OS は、その名のとおり OS がひとつの巨大なプログラムとなって います。
すなわちコンピュータは、2つの動作モード --- カーネルモードとユーザモー ドをもち、カーネルモードで走るプログラムこそが OS という考えがその根底 にあります。
ユーザモードで走るプログラムは、あくまでもユーザが作成したプログラムで あり、OS 的な機能はありません。
一枚岩的な OS として UNIX がよく知られています。
UNIX の世界では、一枚岩的な OS --- カーネルと呼びます、とユーザプログ ラムという2種類のプログラムしかありません。
デーモンと呼ばれる特殊なプログラムもありますが、これもまたユーザプログラムの一つです。
一枚岩的な構造をもつカーネルの場合、カーネルを変更するには大変な努力が 必要となります。 それは、ある小さな変更をするだけでも他の(関係のなさそうな)部分に影響が及 ぶ可能性があるからです。
一枚岩的な構造をもつオペレーティングシステムは今でも主流です。しかし、 一枚岩的な構造には、保守性や拡張性に問題があることが徐々に分かってきま した。そのため新しく生まれた考えかたがマイクロカーネルという考えです。
マイクロカーネルという考えでは、ハードウェアに密着した部分などを小さな モジュール(マイクロカーネル)にまとめます。そして、一枚岩的なオペレーテ ィングではカーネルがやっていたほとんどの仕事をマイクロカーネルの外へ追い 出します。
マイクロカーネルの代表は Mach オペレーテイングシステム です。
正確にいうと、Mach オペレーティングシステムは、マイクロカーネルアーキ テクチャをとるシステムで使用するためのマイクロカーネルにすぎません。 OS としてユーザプログラムを動かすためには、Mach の上に載る複数のプログ ラムが必要となります。
現在のところ、Mach の上にのるプログラム(Machではサーバと呼んでいます) は、UNIXのインタフェースをもつ UNIXサーバなどがあり、最近何かと話題に なっている Apple 社の Rhapsody OS も Mach の上で動く予定ということです。
また、GNU プロジェクトでも Mach を基にした Hurd という OS の作成を行っています。
一枚岩的な OS とマイクロカーネルを比較してどちらが良いということは一言 では言えません。
さて、問題は B-Free OS でどちらのアーキテクチャを採用するかということで す。
B-Free OS を製作する目的(OS のソースを公開し、簡単に変更などをできるよ うにする)を考えると、見とおしがよい構造というのが重要になってきます。 そう考えると、一枚岩的な OS の利点はほとんど性能面においてであり、ソー スの変更や改良などを簡単に行うのは困難です。 逆にマイクロカーネル方式の OS では、よほどうまく作らないと、性能面では 一枚岩的な OS よりも劣ります。しかし、中の構造はひとつひとつの要素が分 かれており、それぞれの変更が他に与える影響が少ない分だけ見とおしがよい といえそうです。
これらのことから、B-Free OS の目的(ユーザが自由にソースを見て、OSを変 更できる)を考えると、マイクロカーネル方式を採用するのが適当だと思われ ます。
B-Free での OS の構造は、マイクロカーネル構造をとります。
OS の中心となる核として、ITRON を採用します。 この ITRON は、μITRON 3.0 を基にしたものです。
また、マネージャとは別に MMU を操作するような機能は中心核に含まれ ています。中心核の提供する仮想記憶管理は、ある程度統一化されていま す。
次のようなデバイスドライバは、最低必要となります。