#navi_header|技術| * EMS, EMM386, XMS, DPMI, ... DOSの拡張機能の略称多すぎます! DOSはCPUやメモリ容量の増加と共に歴史を歩んできたので、DOSの拡張機能も段階的に増えていきました。2010年現在から見ると、一度に沢山の略称・拡張機能が出てくるので混乱します。 拡張機能は大きく2つに分類されます。 + "拡張メモリ"(Expanded Memory)を使う機能 + 80286以降のプロテクトモードを活用する機能 : Expanded Memory を使う機能 : 初期のPCは数十 - 数百KB程度のメモリしか搭載していませんでした。OSやアプリケーションの発展と共にメモリ不足の問題が表面化してくると、メモリーカードを専用の拡張バスに差し込むことでメモリ容量を増やす方式が登場してきます。このメモリは "Expanded Memory" と呼ばれ、物理RAMとは別の方式(UMAにマッピングされたバンク切り替え方式)でアクセスする為の専用のデバイスドライバが必要でした。これが "Expanded Memory Management"(EMM)と呼ばれるタイプのソフトウェアで、技術仕様を統一したのが "Expanded Memory Specification"(EMS)です。 : 80286以降のプロテクトモードを活用する機能 : 80286の登場で、プロテクトモードを使うことで16MB(386以降なら4GB)のメモリ空間にアクセス出来るようになりました。しかしDOS自体はリアルモードを使うOSでしたので、そのままではプロテクトモードの恩恵を受けることができません。そこで登場したのが "DOS extender" と呼ばれるソフトウェアで、アプリケーションに対してプロテクトモードの機能を提供し、16MB(4GB)のメモリ空間を使えるようにするソフトウェアです。 プロテクトモード登場後に出てきたのが、1MBを超えるメモリ空間にアクセスする為の "XMS", Windows 3.0 と共に登場したDOSアプリからプロテクトモードを使う為のクライアント・サーバーモデルを意識したDPMI の二つです。 : XMS (eXtended Memory Specification) : x86のリアルモードではアドレスバスが20bit、つまり最大1MBまでのメモリ空間しか使えませんでした。80286では24bit(16MB)、80386では32bit(4GB)に増えますが、増えたメモリ空間を使うにはプロテクトモードに切り替わる必要があります。プロテクトモードで使える、1MBを超えるメモリ空間を "eXtended Memory" と呼び、DOS上からそこにアクセスする為の技術仕様(インターフェイス)を定めたのが "eXtended Memory Specification"(XMS) です。XMS登場後、XMSを使ってEMSをエミュレートするタイプのEMMも開発されています。 : DPMI (DOS Protected Mode Interface) : プロテクトモード機能を活用する為のインターフェイスを定めた仕様で、ソフトウェア割り込みを境界としたクライアント・サーバーモデルを強く意識しています。Windows 3.0でDPMI 0.9が実装されました。 メモリ管理やプロテクトモードはCPUとメモリ容量の発展と共に、少しずつ少しずつ段階的に拡張されていきました。今から見ると一度に沢山の方式があるように見えますが、当時の歴史を追うことで、上述のように大別され、あらましを掴めると思います。 詳細: - [[632]] - [[634]] #navi_footer|技術|