MINIX

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との親和性を深め、コンパイラ、ブートローダー、ユーザーランドの置き換えを順次進めています。

Linuxとの関係



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 AmigaApple 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-32ARMアーキテクチャのシステムをサポートしています。OSはLive CD形式で提供され、インストールせずに試すことができます。また、BochsQEMUVMwareVirtualBox、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-2PascalPerlPythonTclなどのプログラミング言語をサポートしています。

2015年以降のすべてのIntelチップセットは、Intel Management Engine (英語版) のソフトウェアコンポーネントとして内部的にMinix 3を実行しています。

ライセンス



MINIXの最初の開発時のライセンスは比較的自由でしたが、他のOSに比べてライセンス料は安価でした(69ドル)。タネンバウム教授はMINIXを学生が利用しやすくすることを望んでいましたが、出版社の意向により、少額の料金が必要な制限付きライセンス(タネンバウム教授の書籍の価格に含まれている)が採用されました。これにより、MINIXは自由に配布されるソフトウェアの基礎として使用することができませんでした。

1990年代初頭にLinux386BSDなどのフリーでオープンソースの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リポジトリ

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。