なぜかMINIX 1.5

秋の夜長に、暇でもないのに、昔熱中したというか感動した、MINIXを久々に引っ張り出してみた。
1987年に教材用のOSとして誕生し、いまのlinux誕生のきっかけとなったものです。
PC-9800無印から、プロサイドのPC-AT互換機に早々と乗り換えていたので、洋書を注文して、熱中した。ハードディスクにインストールして使っていたが、ハードディスクのクラッシュで立ち消えになり、今となっては、すべてがうろ覚えです。
○MINIX 1.5
当時はV1.1を使っており、patchを当てまくったが、V1.5まではたどり着けなかった。
V1.7以降は、ANSI-CにPOSIXとなり、現在はV3となっているが、シンプルさを追求して、とりあえず、憧れのV1.5に挑戦。データはhttp://www.minix3.org/のPrevious versionsからダウンロード。
pcは360K、psは720Kのディスク用なので、ps版を使用する。
○VMware
新しくマシンを準備するわけにも行かないので、エミュレータを使用する。
Bochsでは動くけれど低速、VirtualPCとVMwareはuniv_boot.01を使用すれば、ブートメニューは表示されるが、RAMディスクの読み込みで停止してしまう。原因はディスク周りのようで、V1.5は3.5FD2HD(1440K)を完全にサポートしていないためと思われる。いろいろ試した結果、VMware6.5.3はディスクイメージファイルを720Kに合わせてやれば、動かすことができた。
disk.02(720K)でブートし、ルートのdisk.04(720K)に交換したのち、”=”(日本語キーボードでは”^”)でスタート。/usrディスクが要求されたら、disk.05に交換。これで、無事に起動する。
このままでも動くが、RAMディスクをルートにしたままでは、/tmpの容量が不足し、コンパイラが走らない。
○ハードディスク
ハードディスクはのパーティショニングは本来fdisk /dev/hd0でOKのはずだが、エラーが出るので他のOSに仮想ディスクを繋げて、partition 1を切って、MINIXのIDに変更する。
/etc/mount /devhd1 /userでマウントできることを確認できれば、/etc/setup_usrを参考にハードディスクにファイルを展開。その後。/etc/setup_rootを参考に、ハードディスクをルートに変更する。
ハードディスクを使用した場合は、ディスクの入れ替えは不要なので、/etc/rcを修正しておく。
disk.02(720K)で再起動し、ブートメニューでルートをh1にしてスタートすれば、OK。
○カーネルの再構築
/usr/src/kernelでconfig atを実行し機種設定し、kernel, fs, mmの各ディレクトリでmakeを実行。
その後、/usr/src/toolsでもmake allを実行する。あとは、720Kの仮想ディスクをセットし、make imageで書き込みをすれば完成。再起動して問題なければ、/usr/include/minix/boot.hを変更し、ルートを/dev/hd1に変更しておく。
○test
/usr/src/testでmake allを実行し、runでテスト開始。sh1のテストに必要なchipがないので、とりあえずスクリプトで補完。
#!/bin/sh
if test $1 = INTEL ; then exit 0 ; else exit 1 ; fi
sh2はrootで実行するとchmod test 2でエラーとなるがそれはOK
昔から、ちょっとしたバグがあり、ついつい楽しんでしまうので、バグに計画性を感じてしまう。
○その他
エディタは、Vi互換の昔懐かしいelvisが使える。ただし、これも/usr/tmpを使用するので、ハードディスクでなければ困難。
DOSとのデータ交換はdos*が使える。本体はdosreadなので、ln dosread dosdir ; ln dosread doswriteでリンクを張っておく。デバイスも、ln /dev/fd0 /dev/dosAと必要なリンクを張る。
これも、2DDまでの対応なので、720KのDOS仮想ディスクをセットし、dosdir aなどで、ファイルを確認したら、dosread a readme.txt > readmeなどと標準出力を書き込んでおく。
機能は貧弱だし、カレントディレクトリにPATHが通って、セキュリティの観念もない時代のOSだが、シンプルで、ほぼ全てがCで記述され、ライブラリのソースまでついている。
ASタネンバウム教授は、linuxに批判的であったことについては、大学人であったためにUNIXを渇望していた一般人の気持ちがわからなかったのではないかと思いますが、このMINIXの存在はlinuxの隆盛にも決して劣りません。MINIXのシステムは体系的で完成度が高く、このシステムがあったからこそ、linux開発のきっかけとなったとつくづく思います。
記念的なOSと思うのですが、当時あれだけあったV1系の資料が、今はインターネット上にほとんどないのが残念です。

コメント