NEC MS-WINDOWS 3.0B さあ始めようWindows:Windowsの動作モード

第1章 Windowsを使う前に

Windowsは、MS-DOSの機能と操作性を拡張するソフトウェアです。MS-DOSをビジュアル化して、もっと親しみやすく、使いやすくしたのがWindowsです。

この章では、Windowsを使うことによって何がどのように変化するか、という基本的なことから、Windowsの起動方法までを説明します。

1.1 Windowsでできること

(中略)

1.2 Windowsの動作モード

Windowsには、次の3つの動作モードがあり、常にいずれかのモードで動作しています。

「386エンハンスドモード」は「スタンダードモード」の上位モード、「スタンダードモード」は「リアルモード」の上位モードとなっています。Windowsは、ユーザーが起動を命じたときにコンピュータのシステムの状態を自分でチェックして、できる限り上位のモードで動作します。

起動時にユーザーがモードを選択することもできますが、コンピュータのシステムの状態(使っている機種の性能や環境)によっては動作不可能なモードがあるので、そうしたモードは選択できません。

それでは各モードを詳しく説明しましょう。

1.2.1 386エンハンスドモード

「386エンハンスドモード」は、386以上のCPUの持つ「仮想メモリ機能」や「仮想8086モード機能」を利用して、複数の大規模なアプリケーションを同時に実行することができるモードです。

「仮想メモリ機能」とは、ディスクの一部を仮想的なメモリとして使用する機能です。386CPUはメモリ全体を「ページ」という区切りで管理しています。アプリケーションなどを実行して空きメモリが必要になると、386CPUは実際に空いているメモリがあればそれを割り当てます。空いているメモリがないと、比較的使われていない(最後にアクセスされた時間がもっとも古い)ページを一時的にディスクに書き込み、空いたメモリをアプリケーションに割り当てます。これにより、実際に搭載されているメモリよりも大きなメモリ容量が、見かけ上使えるようになります。

「仮想8086モード」とは、386CPUの中に仮想的な8086CPUをいくつも実行させる機能のことです。仮想的な8086CPUの上で個別にMS-DOSのアプリケーションソフトウェアを実行することができます。これによって、複数のMS-DOSアプリケーションを同時に実行できるようになりました。

386エンハンスドモードでは、Windows3.0対応のアプリケーションはもちろん、Windowsに対応していないアプリケーション―非Windowsアプリケーションと呼びます―も同時に実行できます。また、非Windowsアプリケーションを、他のWindowsアプリケーションと同時に実行できます。複数のWindowsアプリケーションを同時に実行できるのは、この386エンハンスドモードだけです。

Windowsアプリケーションから、非Windowsアプリケーションへの切り替えもほぼ一瞬で可能です。例えば、Windowsアプリケーションで表計算をしながら、MS-DOS対応のワードプロセッサソフトウェアで文書を作成することができます。

必要な機器

CPUが386以上で、Windows起動前の使用可能メモリが3.6Mバイト以上搭載されているコンピュータです。

また、MS-DOSの起動時に"HIMEM.SYS"という名前のデバイスドライバ(XMSドライバ)を、CONFIG.SYSファイルで組み込まないと、このモードでWindowsを動作させることはできません(HIMEM.SYSを組み込む方法は「第11章 CONFIG.SYSファイルに指定できるデバイスドライバ」を参照してください)。

1.2.2 スタンダードモード

スタンダードモードは、Windows3.0の標準的な動作モードです。

XMSメモリの使用をサポートしているため、Windows対応の大規模なアプリケーションや、複数のWindowsアプリケーションを同時に実行するときにもっとも力を発揮します。

386エンハンスドモードとの違いは、仮想記憶機能を使わないため、実際に搭載しているメモリ容量そのままがすなわちWindowsで使用できるメモリ空間であることです。

このモードでも非Windowsアプリケーションは実行できますが、386エンハンスドモードのように、他のアプリケーションと同時に実行することはできません。1つの非Windowsアプリケーションが実行しているときは他の非Windowsアプリケーションは実行を中断しています。

必要な機器

CPUが80286以上で、Windows起動前の使用可能メモリが1.6Mバイト以上なければなりません。

また、スタンダードモードで動作するには、386エンハンスドモードと同様に、MS-DOSを起動するディスクのCONFIG.SYSファイルに、HIMEM.SYSドライバを組み込む必要があります。

1.2.3 リアルモード

リアルモードは、バージョン2.xx以前のWindowsアプリケーションとの互換性を最大限に保ちながらWindowsを実行する動作モードです。Windows2.xx用に開発されたアプリケーションは、Windows3.0ではリアルモードでの実行しか保証されていません。リアルモードがあるので、従来のソフトウェア資産を無駄にすることがありません。

リアルモードで動作しているWindowsは、XMSメモリを使用することができません。利用できるのは基本メモリと、EMSメモリだけです。

非Windowsアプリケーションを実行することもできますが、スタンダードモードと同様、他のWindowsアプリケーションと同時に実行することはできません。

必要な機器

CPUが80286以上で、Windows起動前の使用可能メモリが1.6Mバイト以下しかないときは、このモードでしか実行できません。

1.3 アプリケーションの種類と特徴

Windows上で実行できるアプリケーションは、次の3種類に分けられます。

では、これら3種類のアプリケーションの特徴を説明しましょう。

1.3.1 Windowsアプリケーション

(中略)

1.3.2 旧バージョンのWindowsアプリケーション

(中略)

1.3.3 非Windowsアプリケーション

(中略)

1.4 Windowsの起動

いよいよWindowsを起動してみたいところですが、まずその前に、Windowsを起動する土台となるMS-DOSの環境を整えておかなければなりません。MS-DOSの環境を最適にしておけば、Windowsがコンピュータのシステムをもっとも良い形で使用でき、次のようなメリットを得ることができます。

これらは、快適/正確にWindowsを動作させるためには不可欠です。そこで、MS-DOSの環境を整える2つのファイル―"CONFIG.SYS"と"AUTOEXEC.BAT"―をどのように設定したら良いか、ファイルごとに説明します。

1.4.1 MS-DOSのCONIFG.SYSとAUTOEXEC.BATファイル

(中略)

1.4.2 CONFIG.SYSファイルの設定

(中略)

1.4.3 AUTOEXEC.BATファイルの設定

(中略)

1.4.4 その他の設定

386エンハンスドモードでWindowsを実行する場合には、特別に次のことを注意する必要があります。

キャラクタ型のデバイスドライバ

386エンハンスドモードでWindowsをお使いになるのであれば、Windowsの起動前にはキャラクタ型のデバイスドライバ(FEPやプリンタドライバなど)を組み込まないでください。

MS-DOSを起動するドライブのCONFIG.SYSファイルで組み込んでいる場合は、その行を無効にしてコンピュータを再起動してください。詳しくは「1.4.2 CONFIG.SYSファイルの設定」を参照してください。

また、AUTOEXEC.BATなどのバッチファイルでADDDRVコマンドを使って組み込んでいる場合は、DELDRVコマンドで取り除きます。詳しくは、別冊の「もっとWindows」の第2章2.3.2を参照してください。

Windowsから使用したいキャラクタ型のデバイスドライバは、WINSTART.BATファイルを利用して組み込みます。WINSTART.BATファイルについては、本書の「1.4.6 起動時の指定」の「WINSTART.BATファイルの利用」を参照してください。

MS-DOSコマンド

Windowsでは使用できないMS-DOSコマンドがあります。

MS-DOSのAPPEND/JOIN/SUBSTコマンドは動作しません。AUTOEXEC.BATファイル内にこれらのコマンドが含まれている場合は、取り除いてMS-DOSを再起動してください。

また、Windowsの起動前にSHAREコマンドを実行しておくと、ファイルの排他処理を行うことができます。ファイルの排他処理とは、別々のプログラムや利用者が同時に同じファイルをアクセスしないように監視する機能で、1つのアプリケーションを同時に複数実行しようとするとメッセージが表示されます。386エンハンスドモードでWindowsを実行していて同時に複数の非Windowsアプリケーションを起動する場合、ネットワークに繋がったコンピュータでWindowsを利用する場合には、SHAREコマンドを実行しておけば安全でしょう。

ただし、SHAREコマンドはWindowsからは実行できません。MS-DOSを起動するドライブのAUTOEXEC.BATファイルで実行するのが良いでしょう。

MS-DOSのコマンドについての詳細は、MS-DOSのマニュアルを参照してください。

1.4.5 Windowsの起動

いよいよWindowsの起動です。ここでは、基本的な起動の方法を説明します。様々な指定をしながらWindowsを起動する方法については、次の「1.4.6 起動時の指定」を参照して下さい。

参考

〈Windowsセットアップ〉でWindowsをセットアップした場合は、〈Windowsセットアップ〉がMS-DOSの起動ドライブのAUTOEXEC.BATファイルを変更し、Windowsをセットアップしたディレクトリがコマンド検索パスに含まれるように設定しているはずです。従って、どのディレクトリからでもWindowsを実行できます。

MS-DOSのプロンプトで

win

と入力して下さい。お使いのコンピュータのCPU、メモリ構成にあった動作モードをWindowsが判断し、そのモードで起動します。
初めてWindowsを起動した場合には、次のような画面になるでしょう。

Image: MS-Windows 3.0B プログラムマネージャ

参考

Windowsがどんなモードで起動しているかは、〈プログラムマネージャ〉の[ヘルプ]メニューにある[Windowsについて]コマンドで知ることができます。

1.4.6 起動時の指定

前項では、もっとも基本的なWindowsの起動方法を説明しました。つまり、動作モードその他の条件はWindows自身の判断に任せた方法です。

ここでは、様々な指定をしてWindowsを起動する方法について説明します。

Windowsの動作モードを指定するオプションスイッチ

Windowsで指定できる起動時のオプションスイッチはいくつかあります。その代表はWindowsの動作モードの指定です。

前述のように、特定の動作モードを指定しないでWindowsを起動すると、Windowsは最適な動作モードを自分で判断します。しかし、場合によっては、特定の動作モードでWindowsを起動したいときもあります。例えば旧バージョンのWindowsアプリケーションを実行するには、Windowsをリアルモードで起動させなければなりません。

動作モードを指定してWindowsを起動するには、Windowsコマンドラインで、次のようにオプションスイッチを指定します。

win 〈オプションスイッチ〉

リアルモードでWindowsを起動する場合

オプションスイッチとして、"/r"を指定します。

(例) win /r
スタンダードモードでWindowsを起動する場合

オプションスイッチとして、"/s"を指定します。

Windowsアプリケーションだけを実行するなら、386エンハンスドモードよりもスタンダードモードの方が、全体の実行速度が速くなります。

(例) win /s
386エンハンスドモードでWindowsを起動する場合

オプションスイッチとして、"/3"を指定します。

(例) win /3
参考

"/3"をつけてWindowsを起動すると、使用するシステムのメモリ量が386エンハンスドモードで動作するための条件(Windows起動前の使用可能メモリが、3.6Mバイト以上)を満たしていなくても、1.6Mバイト以上の使用可能メモリがあれば、386エンハンスドモードで起動します。

ただし、このようにして無理に386エンハンスドモードにしてもWindowsの実行はかなり遅くなってしまいます。

Windowsの起動モードと、コンピュータに搭載されている使用可能メモリ容量の関係は、次表のようになります。

Windowsの起動モード 最低必要なメモリ容量
リアルモード 1.6Mバイト
スタンダードモード 1.6Mバイト
386エンハンスドモード 3.6Mバイト

"最低必要なメモリ容量"に満たないと、例え希望するモードでWindowsを起動できても、正常に動作しない可能性があります。

また、386エンハンスドモードやスタンダードモードでWindowsを起動できない場合は、リアルモードで起動されます。

EMSメモリの使用方法を決めるオプションスイッチ

Windowsの起動時のオプションスイッチには、EMSメモリの使用方法を決めるスイッチもあります。

スタンダードモードや386エンハンスドモードでは、アプリケーションがEMSメモリを使用することがあっても、Windows自体がEMSメモリを使用することはありません。Windowsがリアルモードで起動され、しかもシステムにEMSメモリが装備されている場合のみ、WindowsはEMSメモリを使用します。

リアルモードで動作しているWindowsは、EMSメモリを2つの方法―「ラージフレームEMSモード」と「スモールフレームEMSモード」―のいずれかで使います。通常Windowsは、コンピュータにどれだけの基本メモリとEMSメモリがあるかを調べ、最適な方法でEMSメモリを使おうとします。

しかし、EMSメモリの利用を制御したい場合もあります。このようなとき、Windowsの起動時にオプションスイッチを指定することで、EMSメモリの使用方法を設定することができます。

参考

Windowsでは、LIM EMS4.0という仕様に準拠したEMSメモリを使うことができます。

2つのモードの違いは、EMSのページフレームの位置(ページフレームとして利用するメモリの開始位置=バンクライン)がどこに設定されているかという点です。

スモールフレームEMSモードでは、バンクラインのアドレスが、A0000H(640Kの点)以上となります。

ラージフレームEMSモードでは、バンクラインのアドレスはA0000H以下になっています。

スモールフレームEMSモードは、EMSのページフレームを比較的小さくするので、使用可能な基本メモリを比較的大きくできます。ということは、大きなサイズのWindowsアプリケーションを1つだけ実行するようなときにはこの方がメモリを広く使えるので便利です。

ラージフレームEMSモードは、EMSのページフレームを比較的大きく取り、その分基本メモリが少なくなります。Windowsアプリケーションを同時に2つ以上実行するような場合には、基本メモリよりもEMSメモリの方に多くの助けを求めなければなりませんから、ページフレームの大きいこちらの方が適しているのです。

スモールフレームEMSモードでWindowsを起動する場合

スモールフレームEMSモードを使うように指示するオプションスイッチは、Windowsにはありません。そこで、ラージフレームEMSモードのときに使う"/E"スイッチの数字を操作して、スモールフレームEMSモードで起動します。

/Eは、ラージフレームEMSモードでどれだけの基本メモリを使用可能であるかをキロバイト単位の数字でWindowsに知らせるスイッチです。これで指定した大きさの基本メモリが確保できないと、Windowsは自動的にラージフレームEMSモードを諦めてスモールフレームEMSモードで起動します。そこで、これに例えば999などのあり得ない数字を指定すれば、スモールフレームEMSモードでWindowsを実行できるわけです。

(例) win /r /e999

上の例は、Windowsをリアルモードで起動し、同時に使用可能な基本メモリが999KバイトであることをWindowsに知らせています。コンピュータに999Kバイトもの基本メモリがあることはありませんから、EMSモードは自動的にスモールフレームになります。

ラージフレームEMSモードでWindowsを起動する場合

ラージフレームEMSモードでは、/Eスイッチで使用可能な基本メモリの量を知らせることができることは前述しました。このスイッチは省略すると、使用可能なメモリを全て使用します。

注意

ラージフレームEMSモードで起動するためには、CONFIG.SYSファイル中のEMM386.EXE(またはEMM386.SYS)のコマンドラインに〈/L〉オプションスイッチを指定しておく必要があります。

また、EMM.SYSを使用する場合はこの指定は無効になります。詳しくは、別冊の「もっとWindows」の第3章を参照してください。

こうしてラージフレームEMSモードで起動したWindowsでは、この使用可能な基本メモリを2つの領域に分けて使います。一つがグローバルメモリ、一つがバンクメモリです。

Image: large frame EMS  on MS-Windows real mode

グローバルメモリは、すべてのアプリケーションが共通に使うメモリです。バンクメモリは、同時には1つのアプリケーションでしか使えませんが、タスク(アクティブなアプリケーション)を切り替えたときには別のアプリケーションがバンクメモリを使います。

ラージフレームEMSモードで複数のアプリケーションを実行するときには、どちらのメモリ領域も必要です。どちらかのメモリ領域がなくなると、それ以上多くのアプリケーションは実行できません。

そこでリアルモード+ラージフレームEMSモードで実行中のWindowsは、バンクラインを意図的に上下に動かして、余裕のない方の領域を広くすることができるようになっています。どちらのメモリが先になくなってしまうかを見極めながら、バンクラインを上下に動かし、試行錯誤すれば、最適な状態が見つかるでしょう。

バンクラインを動かすには、Windowsの起動時のオプションスイッチ"/L"を使います。/Lスイッチに+/-記号とキロバイト単位の数字を指定して、どれだけ動かすかを指定します。16Kバイト単位で動かすことができるため、指定する数値は16の倍数にしてください。

(例) win /r /l-32

この例は、Windowsをリアルモードで起動し、ラージフレームEMSモードのバンクラインを下方向(アドレスの小さい方向)に32Kバイト移動します。

注意

バンクラインの移動は、ラージフレームEMSモードでしかできません。スモールフレームEMSモードでは、バンクラインは固定になっています。従って、/Lスイッチは無視されます。

Windowsの起動と同時に実行したいアプリケーションの指定

Windowsを起動するのと同時にアプリケーションを実行したり、文書をオープンしたりすることもできます。Windowsを起動するコマンドラインで、実行したいアプリケーションのプログラムファイルのパス名を指定してください。

例 Windows起動時に、ドライブAの\excelディレクトリにあるMS-Excelも起動するとき
win a:\excel\excel.exe

また、アプリケーションの起動と同時に、指定した文書をオープンすることもできます。起動したいアプリケーションのプログラムファイルとともに、オープンしたい文書ファイル名を指定してください。この時、文書ファイルのパスも指定しなければなりません。

例 Windows起動時に、ドライブAの\excelディレクトリにあるMS-Excelを起動し、test.xjsというファイルを編集したいとき
win a:\excel\excel.exe \excel\test.xjs

Windowsを起動するコマンドラインで、実行コマンドと同時にオプションスイッチも指定する場合には、オプションスイッチの位置に注意してください。

実行コマンドの後ろに指定したオプションスイッチは、Windowsのオプションスイッチとしてではなく、実行コマンドのスイッチとして理解されます。

例えばWindowsを起動するとき、次のような指定を行ったとします。

win notepad.exe /r

この指定では、Windowsが最適なモードで起動した後、notepad.exeが/rというスイッチ付きで起動することになります。〈メモ帳〉には/rというスイッチは無効なので、これは無視されます。

WINSTART.BATファイルの利用

386エンハンスドモードでWindowsを起動する場合に限り、WINSTART.BATファイルを実行することができます。WINSTART.BATファイルは386エンハンスドモードでWindowsを起動するときに自動的に読み込まれます。この点を除けば通常のバッチファイルと同様に考えることができます。

386エンハンスドモードのWindowsでキャラクタデバイスドライバを使用する場合には、このWINSTART.BATファイルで組み込みます。

例 イメージスキャナドライバを組み込んで〈イメージスキャナ〉を起動する。

例えばアクセサリグループにあるイメージスキャナでデータを読み取るには、イメージスキャナドライバ(IMSCAN.SYS)を組み込んでおく必要があります。次の内容にWINSTART.BATファイルを、Windowsをセットアップしたディレクトリに作成してください。IMSCAN.SYSは、MS-DOS用のものを使用してください。

1. まず、ADDDRVコマンドの定義ファイルを作成します。ディレクトリ"A:\SYS"にイメージスキャナドライバ(IMSCAN.SYS)があると仮定します。

DEVICE=A:\SYS\IMSCAN.SYS

この内容の定義ファイルを、ディレクトリ"A:\SYS"に"IMSCAN.DEV"というファイル名で保管したとします。

2. 次のような内容で、WINSTART.BATファイルを作成します。

ADDDRV A:\SYS\IMSCAN.DEV

このコマンドラインは、1で作成した定義ファイルをADDDRVコマンドで組み込むことを意味しています。

ADDDRVコマンド用の定義ファイルもWINSTART.BATもテキストファイルですから、お手持ちのエディタや日本語ワードプロセッサで作成できます。また、ADDDRVコマンド用の定義ファイルは、MS-DOSのCUSTOM、コマンドでも作成することができます。CUSTOMコマンドについては、MS-DOSのマニュアルを参照してください。


出典:MS-WINDOWS 3.0B さあ始めようWindows、日本電気株式会社、1993年発行


inserted by FC2 system