MINIX

出典: フリー百科事典『ウィキペディア(Wikipedia)』
ナビゲーションに移動 検索に移動
MINIX
MINIX screenshot.png
MINIX 3.1.2a
開発者 アンドリュー・タネンバウム
OSの系統 Unix系
開発状況 開発継続中
ソースモデル オープンソース
最新安定版 3.3.0 / 2014年9月16日(5年前) (2014-09-16
リポジトリ ウィキデータを編集
カーネル種別 マイクロカーネル
既定のUI ash
ライセンス BSDライセンス
ウェブサイト www.minix3.org
テンプレートを表示

MINIX(ミニックス)とは、1987年オランダアムステルダム自由大学: Vrije Universiteit Amsterdam)の教授であるアンドリュー・タネンバウムが、オペレーティングシステム(OS) の教育用に執筆した著書、『Operating Systems: Design and Implementation』の中で例として開発した、Unix系オペレーティングシステム (OS) である。

歴史[編集]

UNIXソースコードAT&Tのライセンス問題により非公開になった[1]ため、OSの教材用にUNIX version 7の互換システムを再設計したものである。機能上の新しさはないが、マイクロカーネル構造を採用するなど、モダンな洗練が行われている。 元々はIBM PCをターゲットとして開発されたが、その後AtariAmigaMacintoshSPARCをはじめ、日本においてはNEC PC-9800シリーズ[2]にも移植された。

特徴[編集]

初期のバージョンは非常にコンパクトであり、フロッピーディスク単体での運用もできた。2005年にリリースされたMINIX 3では動作にハードディスクを要するものの、割り込みハンドラプロセススケジューラプロセス間通信機能などを含むマイクロカーネル本体のソースコードは4000行弱に抑えられている。

1987年のリリース当初からすべてのコードは公開されていたがオープンソースではなかった。これは出版社であるPrentice Hall の意向と、タネンバウム自身による「MINIXはあくまで教育用のホビーであり、実用が目的ではない」という考えによる。 とりわけ特徴的なのは、MINIXには仮想記憶が実装されていなかったことである。

なお、ライセンスは2000年に変更されて、過去のソースコードも含めてBSDライセンスが採用されるようになった。 また、バージョン 3.2.0 からはNetBSDとの親和性を深め、コンパイラ、ブートローダー、ユーザーランドの置き換えを順次進めている。

Linuxとの関係[編集]

MINIXの「実用を目的としない」というポリシーに対し、ニュースグループ comp.os.minix において、MINIXを実用に耐えるOSにしようという試みが提示された。しかし、タネンバウムは機能を追加することに否定的だったため、リーナス・トーバルズは新たにOSを作ることを決断し、1991年10月にはついにLinux version 0.02がリリースされるに至った。

これに対し、タネンバウムはLinuxの設計に対する批判を展開し、論争が起こった(アンドリュー・タネンバウムとリーヌス・トーヴァルズの議論[3]

結果として、後発のLinuxFreeBSDの方が広く普及することとなったが、MINIXのソースコードはコンパクトで初学者にも読みやすく、教材としての目的は十分に達しているといえる。

実装[編集]

MINIX 1.0[編集]

タネンバウムは、アムステルダム自由大学で、MINIXを彼の教科書『オペレーティングシステム: 設計と実装』(1987年)で示されている原理を例示するために作成した。

おおよそ12,000行で構成されたCによって書かれたMINIX 1.0のカーネルメモリマネージャ、ファイルシステムのソースコードは教科書の中に印刷されていた。Prentice Hallはまた、MINIXのソースコードとバイナリをリファレンスマニュアル付きでフロッピーディスクに収めリリースした。MINIX 1はSeventh Edition UNIXとシステムコールの互換性がある[4]

タネンバウムは当初、MINIXをIBM PCとIBM PC/ATマイクロコンピュータに互換性を持つように開発していた。

MINIX 1.5[編集]

MINIX 1.5は1991年にリリースされ、IBM PS/2マイクロチャンネルシステムへのサポートを含み、Motorola 68000とSPARCのアーキテクチャに移植された。MINIX 1.5は、Atari ST、Commodore AmigaApple MacintoshSun SPATCstationの各プラットフォームをサポートする。また、非公式のポートとして、Intel 386(32ビットプロテクトモード)とNS 32532、ARM、Inmos transputerプロセッサーに対するものがあった。

MINIX 2.0[編集]

68-kベースのアーキテクチャへの需要の衰退により、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 3[編集]

MINIX 3.2 running the "top"コマンド実行中のMINIX
X11twm)実行中のMINIX

MINIX 3は、2005年10月24日、タネンバウムよってACMシンポジウムにおいてアナウンスされた。このOSは、依然としてタネンバウムとWoodhullのテキストで用いられていたが、これは「限られたリソースのシステムや組み込みコンピュータ、また高い信頼性を要求するアプリケーションで使える[5]」ことを目指して包括的に再設計された。

MINIX 3は、現在IA-32ARMアーキテクチャのシステムをサポートしている。OSはLive CDのフォーマットで提供され、これはコンピュータにインストールすることなしに試すことができる。また、様々なバージョンの仮想化システム(Bochs、QEMUVMwareVirtualBoxVirtual PCを含む)にも対応している。

バージョン3.2.5は2009年11月5日にリリースされ、X11emacsvi、cc、gccperlpythonbashsshなど400を超えるUNIXのユーティリティプログラムを利用することができる。MINIX3はまた、仮想メモリ管理をサポートしており、これはデスクトップOSとしての利用に適している[6]

バージョン3.20では、ユーザーランドの大部分がNetBSDのものに置換され、pkgsrcのサポートが追加された。これは、MINIXで利用できるソフトウェアの数を増加させた。また、ClangGDBがポートされた[7][8]。続くMINIX 3.3.0は2014年9月にリリースされている。

MINIXは、C、C++FORTRAN、Modula-2、PascalPerlPythonTclなどを含むプログラミング言語をサポートしている。また、MINIX 3の開発コミュニティは2016年のMINIXCon 2016に50人の人びとが出席するなど活動中の状態である[9]

脚注[編集]

  1. ^ UNIX#UNIXの普及と展開
  2. ^ MINIXオペレーティング・システム ANDREW S. TANENABAUM著 坂本 文監修 大西 輝代翻訳 株式会社アスキー発行 1989年4月21日発行 13頁 ISBN 4-7561-0000-7
  3. ^ ディベート:リナックスは時代遅れだ
  4. ^ Tanenbaum, Andrew S.; Woodhull, Albert S. (1997) [1986]. Operating Systems Design and Implementation (Second ed.). ISBN 0-13-638677-6. OCLC 35792209. https://archive.org/details/operatingsystems00tane 2011年8月2日閲覧。. 
  5. ^ Herder, J. N.; Bos, H.; Gras, B.; Homburg, P.; Tanenbaum, A. S. (2006). “Minix 3”. ACM SIGOPS Operating Systems Review 40 (3): 80. doi:10.1145/1151374.1151391. 
  6. ^ Schmidt, Ulrich (2010年11月10日). “New to minix”. 2011年8月2日閲覧。
  7. ^ MINIX Releases”. wiki.minix3.org. 2012年2月29日閲覧。
  8. ^ MINIX 3.2: A microkernel with NetBSD applications [LWN.net]
  9. ^ MINIXCon 2016”. www.minix3.org. 2016年10月14日閲覧。

関連項目[編集]

参考文献[編集]

  • 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による実装』千輝 順子、今泉 貴史、ピアソンエデュケーション、1998年、第2版。ISBN 978-4-89471-047-4
  • A.S. タネンバウム『オペレーティングシステム』吉澤康文, 木村信二, 永見明久, 峯博史、ピアソンエデュケーション、2007年、第3版。ISBN 978-4894717695

外部リンク[編集]