MINIX 2.0.4をVMにインストールする方法について、調べたことや参考URLを残しておきます。
通常の手順では配布ファイルからフロッピーディスクのイメージを作ってインストールします。手間が掛かるため、今回はインストール済みディスクイメージを使います。
続きを読む【お知らせ】プログラミング記事の投稿はQiitaに移行しました。
MINIX 2.0.4をVMにインストールする方法について、調べたことや参考URLを残しておきます。
通常の手順では配布ファイルからフロッピーディスクのイメージを作ってインストールします。手間が掛かるため、今回はインストール済みディスクイメージを使います。
続きを読むVC++でビルドしたバイナリをMINIXで動かしていて、strchr()で落ちることに気付きました。strchr()は組み込み関数として特別扱いされているため、C言語で記述してもVC++が受け付けてくれません。オプションで組み込み関数を無効にしてもダメです(VC++2005まではできていたらしいです)。ACK(MINIXのコンパイラ)用のアセンブリを手動でMASMに変換して使用していました。
よく見ると32bitコードなのにpushf/popfを使用しています。ACKではサフィックスのルールがMASMとは異なっているようです。これらをpushfd/popfdにしたところ、問題なく動くようになりました。
VC++でMINIX用のバイナリを開発すると、動作確認が面倒です。ホスト(開発マシン)にInterixでFTPサーバを立てて(/etc/inetd.confでftpの行をコメントアウト)、ゲスト(MINIX)からアクセスして実行する手抜きスクリプトを書いてみました。
#!/bin/sh HOSTURL=ftp://xxx.xxx.xxx.xxx/pub/minix-tools/MINIX\ Release rm -f $1 wget --passive-ftp $HOSTURL/$1 chmod 755 $1 ./$1
getrun testのようにするとホストからtestをダウンロードして実行します。ホストのVC++と連動するわけではありませんが、シェルのヒストリ機能で[↑][Enter]とするだけなので割と簡単です。