QEMM
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2016/07/13 09:14 UTC 版)
QEMM(Quarterdeck Expanded Memory Manager)は、クォーターデックが開発したMS-DOS用メモリマネージャであり、サードパーティ製のこの類のプログラムとしては(海外では)最も広く使われた。
製品
当初は QEMM-386 と呼ばれ、これを補完する製品として QRAM があった。QRAM は Intel 80286 を使いチップス・アンド・テクノロジーズの特定のチップセットを使ったマシンで同様の機能を提供した。Pentium が登場すると 386 は名称から消えた。QEMM-386 と DESQview は連携して動作し、同梱して販売される場合は DESQview 386 という製品名になっていた。
QEMM は、UMA、EMS、XMS へのアクセスを提供する。DOSプログラムは大量のコンベンショナルメモリを必要とすることが多く、QEMM はプログラムをUMBやHMAにロードすることでコンベンショナルメモリを空けることができる。Lotus 1-2-3、初期の Microsoft Windows、各種ゲームなど多数のプログラムが EMS や XMS メモリを使っていた。
競合製品
主な競合製品としては、海外では BlueMax/386MAX、HeadRoom/NetRoom などがあった。
1987年11月にリリースされたコンパックの DOS 3.31 は、DOS として初めて QEMM-386 のような技術を導入した。これをCEMMと呼んでいる。QEMM は世界初の仮想86モードを使ったメモリマネージャ製品であった。
DOSにおける同等機能
マイクロソフトは同等のやや単純化したメモリマネージャを1989年の MS-DOS 4.01 でリリースした。XMS 用の HIMEM.SYS と EMS 用の EMM386.EXE である。それ以前の Windows/386 2.1 にも EMS 機能は組み込まれていたが、Windows セッション内でのDOSウィンドウでのみ使えるようになっていた。これらのバージョンではUMBを生成できなかった。ベンダー固有でないDOSとして初めてUMB技術を提供したのは、デジタルリサーチの DR-DOS 5.0(1990年)であった。MS-DOS が UMB を提供したのは、1991年の 5.0 が最初である。MS-DOS の EMM386 は先に HIMEM をロードしておく必要があるが、DR-DOS の EMM386 は両方の機能を備えており、独立したXMSドライバを必要としなかった。ただし、80286ベースのマシンでは XMS ドライバ(HIDOS.SYS)が必要とされていた。
DR-DOSとMS-DOSのメモリマネージャはどちらもQEMMに比較すると貧弱だった。例えば、どちらもUMBは手作業で発見して含める必要があったが、QEMMは自力でこれを行っていた。QEMMはEMSとXMSへのメモリ割り当てを事前に設定する必要がなく、立ち上げ時の設定をいじる必要がなかった。しかし、マイクロソフトは MS-DOS 6 でUMBの最適化を自動化し、これによってQEMMの市場シェアは低下していった。
Windows への移行
DOSプログラムが主流の時代は QEMM はよく使われたが、Windows が主流になるにつれてあまり使われなくなっていった。最終版の QEMM 97 は Windows 95 や後の Windows 98/ME とも互換性を保っていたが、DOSアプリケーションそのものがほとんど使われなくなっていたため、DOS用のメモリマネージャもほとんど使われなくなった。
Windows 3.0 以降、386エンハンストモードで起動されるようになったため、メモリマネージャは Windows 起動時にシャットダウンされる。実際、複数のプロテクトモードのカーネルが同時に動作することはできない。従って、QEMM は Windows と同時に動作しているわけではない。Windows 立ち上げ時のシャットダウンシーケンスの中で、メモリマネージャは Windows に対して特定のVxD型デバイスドライバのロードを指示し、それがWindowsセッション内でのメモリマネージャ機能を提供する。例えば、QEMM には WINHIRAM.VXD と WINSTLTH.VXD が同梱されていた。これらは Windows に対して確立したメモリマッピング情報を通知し、Windows がそれをインポートするようになっていた(これを Global EMM import と呼ぶ)。
QEMM 97では、Magna RAMというメモリ圧縮ソフトのサブセットが搭載されており、物理メモリの圧縮に加え、データを圧縮した状態でスワップアウトさせCPU負荷はかかるがバス帯域消費量は減るというアーキテクチャを採用していた。
また、Live Updateと呼ばれる自動オンラインアップデート機能は、その後CleanSweepを介してノートン・インターネットセキュリティなどに搭載され、今なお活躍している。
関連項目
外部リンク
- QEMMのページへのリンク