Windows95/98とDOSの関係,とくにDOSを複数起動したときのCONFIG.SYSやAUTOEXEC.BATの働き方について教えてください。
CONFIG.SYSやAUTOEXEC.BATは,DOSの常駐ソフトやデバイスドライバを組み込むために存在します。
Windows 95/98はDOSをベースにしているOSです(とはいえ,Windows 95/98におけるDOSは,32ビット拡張を行う仮想マシンマネージャ(VMM)を起動するためのベースOSという位置づけで,DOSの上でWindowsが動いているという表現は,やや語弊があるように思います)。したがって,CONFIG.SYSで組み込まれるDOSドライバは依然として有効ですし,AUTOEXEC.BATで組み込まれる常駐ソフトウェアも有効です。
Windows 95/98におけるDOSはメモリマップの中で唯一無二の存在で,この点がWindows NTとの大きな違いです(Windows NTの仮想DOSは独立した仮想マシンの中で動き,それぞれシステムエリアを含めて異なるメモリにマッピングされています)。
Windowsを起動するとDOS窓(仮想DOS)を複数起動できますが,それぞれのDOSは起動時のDOSの忠実なコピーで,システムエリアはメモリマップ中の唯一のDOSと同一です。
したがって,DOS窓で利用するアプリケーションが使用するデバイスドライバや常駐ソフトは,CONFIG.SYSやAUTOEXEC.BATで起動時に組み込んでおく必要があります。起動時に組み込まれたデバイスドライバや常駐ソフトは,Windows下のすべての仮想DOS環境で有効です。
もっとも,常駐ソフトはDOS窓でコマンドを実行して組み込むこともできます。ただし,その場合は常駐させたDOS窓でしか有効ではありません。仮想DOSで,起動時のDOS環境以外の部分は,それぞれの仮想DOSで独立しているからです。
Windows 95以後,CONFIG.SYSのユーザーにとっての役割は急速に低下しました。Windows 3.1時代は,32ビット仮想ドライバVxDが16ビットDOSドライバを呼び出す形式のデバイスドライバが盛んに利用され,CONFIG.SYSで組み込んだドライバに大きく依存しているソフトが多くありました。ところが,Windows 95になって大部分のハードウェアアクセスが32ビットドライバで行われるようになり,16ビットDOSドライバに依存したソフトは少なくなりました。
さらに,Windows 98では旧式のVxD→DOSドライバの一部が「推奨されないドライバ」に分類された関係で,一部の旧式ドライバが使えなくなり,さらにCONFIG.SYSの役割は低下したようです。将来,Windows NTベースのOSになれば,AUTOEXEC.BATやCONFIG.SYSがなくなり(なくならないかもしれませんが役割は大きく変わるでしょう),DOS窓ごとに異なる環境が作れるようになるでしょう。
(米田 聡)
Windows 95/98の仮想DOSは,起動時のDOSがベースになっている