MINIX

MINIX（ミニックス）とは、1987年にオランダ・アムステルダム自由大学（蘭: Vrije Universiteit Amsterdam）の教授であるアンドリュー・タネンバウムが、オペレーティングシステム(OS) の教育用に執筆した著書、『Operating Systems: Design and Implementation』の中で例として開発した、Unix系のオペレーティングシステム (OS) である。Minixの名は"mini-Unix"から。 UNIXのソースコードがAT&Tのライセンス変更により非公開になったため、OSの教材用にUNIX version 7の互換システムを再設計したものである。UNIX互換だが AT&T のコードは1行も使用していないので、AT&Tのライセンスには縛られない。機能上の新しさはないが、マイクロカーネル構造を採用するなど、モダンな洗練が行われている。 タネンバウムによれば、このシステムは当初(UNIXの由来にならって)「MONICS」(MONoplexed Information and Computing Service)と名付けられた後、その綴りが変化して「MONIX」となった。その後のプレンティス・ホール社による商標調査の結果、「MONIX」は既に登録されている事が判明したため「MINIX」に変更した、という。 元々はIBM PCをターゲットとして開発されたが、その後Atari、Amiga、Macintosh、SPARCをはじめ、日本においてはNEC PC-9800シリーズにも移植された。 2014年9月の3.3.0を最後にリリースは途絶えており、作者のアンドリュー・タネンバウムも同年に大学を去っていることから、2023年には開発が事実上終了していると報じられている。 初期のバージョンは非常にコンパクトであり、フロッピーディスク単体での運用もできた。2005年にリリースされたMINIX 3では動作にハードディスクを要するものの、割り込みハンドラ、プロセススケジューラ、プロセス間通信機能などを含むマイクロカーネル本体のソースコードは4000行弱に抑えられている。 1987年のリリース当初からすべてのコードは公開されていたがオープンソースではなかった。これは出版社であるPrentice Hall の意向と、タネンバウム自身による「MINIXはあくまで教育用のホビーであり、実用が目的ではない」という考えによる。とりわけ特徴的なのは、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を彼の教科書『オペレーティングシステム: 設計と実装』（1987年）で示されている原理を例示するために作成した。 おおよそ12,000行で構成されたCによって書かれたMINIX 1.0のカーネル、メモリマネージャ、ファイルシステムのソースコードは教科書の中に印刷されていた。Prentice Hallはまた、MINIXのソースコードとバイナリをリファレンスマニュアル付きでフロッピーディスクに収めリリースした。MINIX 1はSeventh Edition UNIXとシステムコールの互換性がある。 タネンバウムは当初、MINIXをIBM PCとIBM PC/ATマイクロコンピュータに互換性を持つように開発していた。 MINIX 1.5は1991年にリリースされ、IBM PS/2マイクロチャンネルシステムへのサポートを含み、Motorola 68000とSPARCのアーキテクチャに移植された。MINIX 1.5は、Atari ST、Commodore Amiga、Apple Macintosh、Sun SPARCstationの各プラットフォームをサポートする。また、非公式のポートとして、Intel 386（32ビットプロテクトモード）とNational Semiconductor NS32532、ARM、Inmos transputerプロセッサーに対するものがあった。 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-vmdは、アムステルダム自由大学の研究者によって作成されたIA-32プロセッサ用のMINIX 2のバリアントで、仮想メモリとX Window Systemのサポートを追加した。 MINIX 3は、2005年10月24日、タネンバウムよってACMシンポジウムにおいてアナウンスされた。このOSは、依然としてタネンバウムとWoodhullのテキストで用いられていたが、これは「限られたリソースのシステムや組み込みコンピュータ、また高い信頼性を要求するアプリケーションで使える」ことを目指して包括的に再設計された。また、デスクトップ環境のEDEがオプションのパッケージとして利用可能となっている。 MINIX 3は、現在IA-32とARMアーキテクチャのシステムをサポートしている。OSはLive CDのフォーマットで提供され、これはコンピュータにインストールすることなしに試すことができる。また、様々なバージョンの仮想化システム（Bochs、QEMU、VMware、VirtualBox、Virtual PCを含む）にも対応している。 バージョン3.1.5は2009年11月5日にリリースされ、X11、emacs、vi、cc、gcc、perl、python、bash、zsh、ftp、ssh、telnet、pineなど400を超えるUNIXのユーティリティプログラムを利用することができる。X11の追加により、このバージョンはテキストのみのシステムからの移行を示す。多くの場合、実行中のプロセスに影響を与えることなく、クラッシュしたドライバを自動的に再起動することができる。このようにMINIXは自己修復機能を持ち、高い信頼性を必要とするアプリケーションでも使用することができる。MINIX3はまた、仮想メモリ管理をサポートしており、これはデスクトップ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などを含むプログラミング言語をサポートしている。また、MINIX 3の開発コミュニティは2016年のMINIXCon 2016に50人以上が出席するなど、いまでも活動中の状態である。 2015年以降のすべてのIntelチップセットは、Intel Management Engine (英語版) のソフトウェアコンポーネントとして内部的にMinix 3を実行している。 MINIXの最初の開発時には、そのライセンスは比較的自由であった。ライセンス料は他のオペレーティングシステムに比べて非常に少額(69ドル)であった。タネンバウムはMINIXを学生ができるだけアクセスしやすくすることを望んだが、彼の出版社は自由にコピーできる素材(ソースコードなど)を提供したくなかったため、わずかな料金を要する制限的ライセンス(タネンバウムの本の価格に含まれている)が妥協案として適用された。これにより、MINIXを自由に配布されるソフトウェアシステムの基礎として使用できなくなった。 1990年代初頭にLinuxや386BSDのようなフリーでオープンソースのUnixライクなオペレーティングシステムが利用できるようになると、多くのボランティアのソフトウェア開発者たちはMINIXを放棄してこれらのオペレーティングシステムを支持した。2000年4月、MINIX 2はパーミッシブ・ライセンス(BSDライセンス)のもとでフリーでオープンソースのソフトウェアとなったが、この時点までに他のオペレーティングシステムがその能力を超えており、主に学生やホビイストのためのオペレーティングシステムであり続けた。 ^ MINIXオペレーティング・システム　ANDREW S. TANENABAUM著　坂本 文監修　大西 輝代翻訳　株式会社アスキー発行　1989年4月21日発行 36頁 ISBN 4-7561-0000-7 ^ bit 編集部『bit 単語帳』共立出版、1990年8月15日、244頁。ISBN 4-320-02526-1。  ^ Andy Tanenbaum (22 June 1988). "I'm going to hate myself". Newsgroup: comp.os.minix. 2024年2月28日閲覧。 ^ Glyn Moody『ソースコードの反逆』アスキー、2002年、165頁。  ^ MINIXオペレーティング・システム　ANDREW S. TANENABAUM著　坂本 文監修　大西 輝代翻訳　株式会社アスキー発行　1989年4月21日発行 13頁 ISBN 4-7561-0000-7 ^ “MINIX is dead” (英語). OSnews (2023年5月28日). 2023年7月5日閲覧。 ^ "MINIX is now available under the BSD license", Apr 9 2000, minix1.woodhull.com ^ ディベート：リナックスは時代遅れだ ^ 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 August 2, 2011閲覧。  ^ “MacMinix”. 2020年8月1日閲覧。 ^ “Some Notes on the "Who wrote Linux" Kerfuffle, Release 1.5” (20 May 2004). 18 August 2010時点のオリジナルよりアーカイブ。20 August 2016閲覧。 ^ Tanenbaum, Andrew S. (March 11, 2015). “MINIX 3 FAQ”. April 26, 2019時点のオリジナルよりアーカイブ。August 20, 2016閲覧。 ^ 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.  ^ “Minix 3 Window Managers”. 14 April 2012時点のオリジナルよりアーカイブ。3 August 2012閲覧。 ^ Schmidt, Ulrich (November 10, 2010). “New to minix”. August 2, 2011閲覧。 ^ “MINIX Releases”. wiki.minix3.org. 31 May 2012時点のオリジナルよりアーカイブ。29 February 2012閲覧。 ^ MINIX 3.2: A microkernel with NetBSD applications [LWN.net] ^ “Index of /iso/snapshot/”. download.minix3.org. 2016年10月14日閲覧。 ^ “MINIXCon 2016”. www.minix3.org. 2016年10月14日閲覧。 ^ “Positive Technologies research”. blog.ptsecurity.com. 2017年9月6日閲覧。 ^ Minix: Intel's hidden in-chip operating system ^ “The Minix licence”. 2007年6月13日時点のオリジナルよりアーカイブ。2007年3月23日閲覧。 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リポジトリ