MINIX (ミニックス)
MINIXは、
[1987年]]にオランダのアムステルダム自由大学のアンドリュー・タネンバウム教授によって、
オペレーティングシステム]の教育を目的として開発された[[Unix系の
オペレーティングシステムです。タネンバウム教授の著書『Operating Systems: Design and Implementation』の中で例として使用されました。MINIXという名称は、「mini-
Unix」に由来しています。
歴史
UNIXの
ソースコードが
AT&Tのライセンス変更により非公開となったため、OS教材として
UNIX version 7の互換システムを再設計する必要がありました。MINIXは
UNIX互換でありながら、
AT&Tのコードを一切使用していないため、
AT&Tのライセンスに縛られることなく開発されました。機能的な新しさはありませんが、マイクロ
カーネル構造を採用するなど、モダンな設計が取り入れられています。
当初、このシステムは「MONICS」(MONoplexed Information and Computing Service)と名付けられましたが、綴りが変化して「MONIX」となりました。その後の商標調査で「MONIX」が既に登録されていたため、「MINIX」に変更されました。
開発当初は
IBM PCをターゲットとしていましたが、その後、Atari、
Amiga、Macintosh、
SPARC、NEC
PC-9800シリーズなど、様々なプラットフォームに移植されました。
2014年9月の3.3.0を最後にリリースは途絶え、開発者のタネンバウム教授も大学を去ったため、2023年には事実上開発が終了していると報じられています。
特徴
MINIXの初期バージョンは非常にコンパクトで、
フロッピーディスク単体での運用が可能でした。
2005年にリリースされたMINIX 3では、ハードディスクが必要となったものの、割り込みハンドラ、
プロセススケジューラ、
プロセス間通信機能などを含むマイクロ
カーネル本体の
ソースコードは、わずか4000行弱に抑えられています。
1987年のリリース当初からすべてのコードは公開されていましたが、当時はオープンソースではありませんでした。これは出版社の意向と、タネンバウム教授自身の「MINIXは教育用のホビーであり、実用が目的ではない」という考えによるものでした。特に、
仮想記憶が実装されていなかった点が特徴的です。
2000年にライセンスが変更され、過去の
ソースコードを含め
BSDライセンスが採用されました。バージョン3.2.0からは、
NetBSDとの親和性を深め、コンパイラ、
ブートローダー、ユーザーランドの置き換えを順次進めています。
MINIXの「実用を目的としない」というポリシーに対し、ニュースグループ comp.os.minix では、MINIXを実用的なOSにしようという試みが提案されました。しかし、タネンバウム教授が機能追加に否定的だったため、リーナス・トーバルズは新たにOSを開発することを決意し、
1991年10月に
Linux version 0.02をリリースしました。
その後、タネンバウム教授は
Linuxの設計を批判し、論争が起こりました(アンドリュー・タネンバウムとリーナス・トーバルズの議論)。結果として、
LinuxやFreeBSDの方が広く普及しましたが、MINIXの
ソースコードはコンパクトで初学者にも読みやすく、教材としての目的は十分に果たしています。
実装
MINIX 1.0
タネンバウム教授は、自身の教科書『
オペレーティングシステム: 設計と実装』(
1987年)で示されている原理を例示するためにMINIXを開発しました。約12,000行の
C言語で記述されたMINIX 1.0の
カーネル、メモリマネージャ、
ファイルシステムの
ソースコードは、教科書に掲載されていました。Prentice Hall社は、MINIXの
ソースコードと
バイナリをリファレンスマニュアル付きで
フロッピーディスクに収録し、販売しました。MINIX 1は、Seventh Edition
UNIXとシステムコールの互換性があります。
MINIX 1.5
1991年にリリースされたMINIX 1.5は、IBM PS/2マイクロチャンネルシステムのサポートを含み、Motorola 68000と
SPARCのアーキテクチャに移植されました。
Atari ST、Commodore
Amiga、
Apple Macintosh、Sun
SPARCstationなどのプラットフォームをサポートし、非公式の移植版として、Intel 386、National Semiconductor NS32532、ARM、Inmos transputerプロセッサ版が存在しました。
MINIX 2.0
1997年にリリースされたMINIX 2.0は、x86と
SPARCアーキテクチャのみに対応しました。MINIX 2.0は、タネンバウム教授の著書の第2版の主題であり、Albert Woodhull氏とともに開発され、テキストに付属の
CD-ROMに収録されました。MINIX 2.0はPOSIX.1に準拠し、
32ビットモードの386プロセッサをサポートし、MINIX 1.5に含まれていたAmoebaネットワークプロトコルをTCP/IPスタックで置き換えました。
Minix-vmd
Minix-vmdは、アムステルダム自由大学の研究者によって作成された、
IA-32プロセッサ向けのMINIX 2の派生版であり、仮想メモリと
X Window Systemのサポートが追加されました。
MINIX 3
2005年10月24日、タネンバウム教授はACMシンポジウムでMINIX 3を発表しました。MINIX 3は、「限られたリソースのシステムや組み込みコンピュータ、高い信頼性を要求するアプリケーション」での利用を目的として、包括的に再設計されました。また、
デスクトップ環境EDEがオプションのパッケージとして利用可能です。
MINIX 3は現在、
IA-32と
ARMアーキテクチャのシステムをサポートしています。OSはLive CD形式で提供され、インストールせずに試すことができます。また、
Bochs、
QEMU、
VMware、
VirtualBox、
Virtual PCなど、さまざまな仮想化システムにも対応しています。
バージョン3.1.5では、X11、emacs、vi、cc、gcc、perl、python、bash、zsh、ftp、ssh、telnet、pineなど、400を超える
UNIXユーティリティプログラムが利用可能になりました。X11の追加により、テキストのみのシステムからの移行が進みました。クラッシュしたドライバを自動的に再起動できる自己修復機能を持ち、高い信頼性を必要とするアプリケーションにも適しています。MINIX 3は仮想メモリ管理もサポートしており、デスクトップOSとしての利用も可能です。
バージョン3.2.0では、ユーザーランドの大部分が
NetBSDのものに置き換えられ、pkgsrcのサポートが追加され、MINIXで利用可能な
ソフトウェアが増加しました。
Clangコンパイラが以前のコンパイラに置き換わり、GNUデバッガであるGDBが移植されました。
MINIX 3.3.0は
2014年9月にリリースされ、ARMがサポートされました。2016年1月にはMINIX 3.4.0RC(リリース候補)が利用可能になりましたが、MINIX 3.4.0の安定版リリースはまだ発表されていません。MINIXは、C、
C++、FORTRAN、
Modula-2、
Pascal、
Perl、
Python、
Tclなどの
プログラミング言語をサポートしています。
2015年以降のすべてのIntelチップセットは、Intel Management Engine (英語版) の
ソフトウェアコンポーネントとして内部的にMinix 3を実行しています。
ライセンス
MINIXの最初の開発時のライセンスは比較的自由でしたが、他のOSに比べてライセンス料は安価でした(69ドル)。タネンバウム教授はMINIXを
学生が利用しやすくすることを望んでいましたが、出版社の意向により、少額の料金が必要な制限付きライセンス(タネンバウム教授の書籍の価格に含まれている)が採用されました。これにより、MINIXは自由に配布される
ソフトウェアの基礎として使用することができませんでした。
1990年代初頭に
Linuxや
386BSDなどのフリーでオープンソースの
UnixライクOSが利用可能になると、多くの
ボランティア開発者はMINIXを放棄し、これらのOSを支持しました。
2000年4月にMINIX 2は
BSDライセンスの下でフリーでオープンソースの
ソフトウェアとなりましたが、他のOSがより能力が高くなったため、MINIXは主に
学生や愛好家向けのOSであり続けています。
脚注
関連項目
MINIXファイルシステム
Minix-vmd
MINIX 3
EDE
マイクロカーネル
モノリシック
カーネル
Linux
xv6
参考文献
Andrew S. Tanenbaum; Albert S. Woodhull (2005). Operating Systems: Design and Implementation
(Third Edition ed.). Prentice Hall. ISBN 978-0-13-142938-3
A.S. タネンバウム、A.S. ウットハル『
オペレーティングシステム 設計と理論およびMINIXによる実装』千輝 順子、今泉 貴史(第2版)、ピアソンエデュケーション、1998年。
ISBN 978-4-89471-047-4。
A.S. タネンバウム『オペレーティングシステム』吉澤康文, 木村信二, 永見明久, 峯博史(第3版)、ピアソンエデュケーション、2007年。ISBN 978-4894717695。
GLYN MOODY 小山祐司監訳『
ソースコードの反逆』株式会社アスキー、2002年6月11日。
外部リンク
公式ウェブサイト
minix-up project
MINIX on VMware Player
GitHubのMinix
リポジトリ