MSDN上のMS-DOSやWindows for WorkgroupsをVirtualBoxにインストールするメモ


結論: qemuを使うべき
MSDNサブスクリプションでは歴史的なバージョンのWindowsをまだ配布しているので、これを使ってWindows3.x環境を構築することができる。

raw diskイメージの作成

ImDiskのようなディスクイメージツールでディスクを操作するためには、rawイメージ(HDDをダンプしただけのイメージ)である必要があるが、rawイメージをVirtualBoxに接続するにはファイルを.vmdkでwrapする必要がある。

dd if=/dev/zero of=wfw2.img bs=1024 count=600000
/cygdrive/c/Program\ Files/Oracle/VirtualBox/VBoxManage.exe internalcommands createrawvmdk -filename wfw2.vmdk -rawdisk wfw2.img

MS-DOSのインストール

地味に難関。手元のMS-DOS6起動ディスクイメージを使用してインストールせざるを得なかった。というのは、MSDN上のMS-DOS配布は起動ディスクの形ではなくインストールファイルを自己展開形式のRARでアーカイブしただけという簡素なものなため。(また、マニュアル類も無い)
おおむね:

  1. Rawディスクを2つ作成する
  2. FreeDOSをRawディスクにインストールする
  3. FreeDOSでもう片方のRawディスクをFDISKしてFAT16でフォーマットする
  4. Rawディスクをマウントし、インストールファイルをコピー
  5. MS-DOSのディスクで起動する
  6. コピーしておいたdosのツリーでsetupを起動する

ちなみにWindows For Workgroupsのインストールも同様、ただし、VirtualBoxがサポートしているネットワークデバイスでドライバが存在するものが無い。

Win32s

MSDNは更にVC4.2を提供しているので、Win32sバイナリがギリギリ作成できる。ただ、現代的な目で見るとWin32sは色々と欠けていてnmoshを移植してくるには色々と厳しいものが有る。

  • スレッド
  • コンソール
  • COMポートのアクセス
  • 非同期I/O(これはWin9xでも良いサポートが無かった)
  • ...

Win32sは非常に面倒な16bit <=> 32bit thunkを比較的真面目に実装していて、ちゃんとupgrade pathとして機能するように努力をしているように見える。が、結局のところWin95が大成功したわけであまり省みられない存在になってしまったような気がする。