MINIX

コンピュータ

MINIX

みにっくす

オランダのアンドリュー・S・タネンバウム教授によって、1980年代後半(1987年頃)に開発されたUNIXライクなOS

大学の講義(オペレーティングシステムの設計と実装)の教材として、フルスクラッチ(ゼロから)開発されたものである。(ユーティリティーコマンドの開発には、周囲の助力もあったようだ)


開発の背景には、それまで教材として利用できた正統UNIXソースコードが、AT&Tのライセンス戦略のため参照できなくなったという事情があった。

フルスクラッチから書き起こされたMINIXはこのライセンスに抵触しないため、Cコンパイラを除いた全てのソースコード安価に提供することができたが、これは当時としては画期的なことであった。


システムコールUNIX V7に準拠している。 これはV7がケン・トンプソンとデニス・リッチーが手掛けた最後の版であり、単純かつ首尾一貫していてエレガントだと開発者が考えたことによる。(ただし、acct(), nice(), phys(), pkon()といった使用頻度の低いシステムコールは実装されていない)


MINIXは、OSの内部構造を説明する教材であることと、当時の学生が所有できるPCのスペックとに配慮し、Intel8088(8086の外部バスを8bitにした廉価版CPU)を搭載したIBM PCでも動作するよう、コンパクトに作られていた。(ハードディスクレスマシンでも動作可能)

しかしながら、内部的にはマイクロカーネル構造を採用するなど、(当時としては)先進的な設計思想を取り入れている。

MINIXでは、OSとして不可欠な機能であるファイルシステム(FS)とメモリ管理機構(MM)ですら、マイクロカーネル上で動作するユーザープロセスとして実装されている。


上述の通り「コンパクトさ」と「マイクロカーネル構造」がMINIXの特徴であったが、一方で「教材」という性格上、その後急速に進行したCPUの高性能化(32bit化や、それに伴う高度なメモリ管理機構、特権モードの追加など)に即応しなかったため、これがMINIXの普及にとってマイナスとなった。

一部の有志により「MINIX386化パッチ」が作成されたが、それらがMINIXに正式に取り入れられることはなかった。


ほぼ同時期、MINIXに刺激を受けて386のタスク管理機構を調査するコードを書いていたリーナス・トーバルズは、これを発展させ、モノリシックカーネルタイプの実用性を重視したOSを開発するが、これがLinuxである。


MINIXLinuxの差は、「マイクロカーネルモノリシックカーネル」や「移植性」を対立軸として、後にタネンバウム教授とトーバルズ氏の間で有名なフレーム(論争)に発展するが、これは一時的なもので、現在では両者の関係は修復し、良好なものになっている。


過去日本では、NECPC-9801シリーズ用にポーティングしたV1.5がアスキーから発売されたほか、東芝J-3100用にポーティングしたV1.2が(株)カットシステム(CUTT System Development Laboratory)から発売されている。


MINIXはその後、BSDライセンスとなり、V2を経てV3へと発展した。 2006年3月現在の最新安定版は3.1.1である。


参考文献:

MINIXリファレンスマニュアル(ISBN4-535-60004-X-C3055)

MINIXを256倍使うための本

参考URL

http://en.wikipedia.org/wiki/Minix

http://ja.wikipedia.org/wiki/Minix