DriveSpace(当初はDoubleSpaceとして知られていた)は、 1993年のバージョン6.0から始まり、2000年のWindows Meのリリースで終了したMS-DOSに付属していたディスク圧縮ユーティリティです。DriveSpaceの目的は、データをリアルタイムで透過的に圧縮および解凍することで、ユーザーがディスクに保存できるデータ量を増やすことです。主にハードドライブでの使用を想定していますが、フロッピーディスクでの使用もサポートされています。この機能はWindows XPで削除されました。

最も一般的な使用シナリオでは、コンピュータにハードドライブが1台搭載されており、その全領域が1つのパーティション(通常はCドライブ)に割り当てられています。ソフトウェアは、このパーティションの内容全体をルートディレクトリ内の1つの大きなファイルに圧縮します。システムの起動時に、ドライバはこの大きなファイルをCドライブとして割り当て、ファイルへのアクセスを通常どおり可能にします。
マイクロソフトがMS-DOS 6.0にディスク圧縮機能を追加することを決定したのは、競合製品であるDR-DOSが1991年のバージョン6.0から既にディスク圧縮ソフトウェアを搭載し始めていたことが影響していた。
Microsoftは、自社製品をゼロから開発する代わりに、Vertisoftが開発したDoubleDisk製品の技術をライセンス供与し、それをDoubleSpaceに改良しました。例えば、圧縮/解凍を制御するドライバ(DBLSPACE.BIN )の読み込みは、オペレーティングシステムにさらに深く統合されました( CONFIG.SYSファイルよりも前に、非公開のプリロードAPI [ 1 ]を介して読み込まれるようになりました)。
マイクロソフトは当初、同様の製品「Stacker」を製造していたStac Electronics社から技術ライセンスを取得しようと試みたが、交渉は決裂した。その後、マイクロソフトはStac Electronics社から、同社の圧縮特許の一部を侵害したとして特許侵害訴訟を起こされ、勝訴した。裁判中、Stac Electronics社は、マイクロソフトがStackerのライセンス供与を試みた際に一切の金銭支払いを拒否し、Stac Electronics社が機能強化製品を開発する可能性のみを提示したと主張した。
リリース直後、データ損失の報告が相次いだ。Blossom Softwareという会社が、データ破損につながる可能性のあるバグを発見したと主張した。このバグは、断片化が激しいディスクにファイルを書き込む際に発生し、 BUST.EXEというプログラムで実証された。同社は、エラーの原因となる断片化状態をチェックできるDoubleCheckというプログラムを販売した。Microsoftの見解では、このエラーはまれな条件下でのみ発生するが、 MS-DOS 6.2で問題を修正した。[ 2 ]
断片化の問題は、DoubleSpaceが個々のクラスタ(例えば8KB)を圧縮し、ディスク上に収める方法に関係していました。DoubleSpaceを使用しない場合に必要な固定セクタ数(この例では16セクタ)よりも少ないセクタ数(512バイト)で済むため、内部的な断片化の問題が発生する可能性があります。つまり、十分な空き容量があっても、DoubleSpaceが圧縮されたクラスタを格納するのに十分な連続セクタを見つけられないという事態が生じるのです。
データ損失のその他の潜在的な原因としては、他のプログラムによる DoubleSpace のメモリ領域の破損が挙げられます。DoubleSpace のメモリ領域は、MS-DOS がリアルモードで動作していたため保護されていませんでした。Microsoft は、DoubleSpace の MS-DOS 6.2 バージョンで、このような破損をチェックするDoubleGuardと呼ばれる機能によって、この問題を解決しようと試みました。
圧縮ドライブの圧縮内容が単一のファイルに保存されるという事実は、ユーザーがそのファイルだけを削除することで、誤ってすべてのデータを削除してしまう可能性を示唆していた。これは、ユーザーがこのファイルを含むホストドライブに誤ってアクセスした場合に起こり得た。通常、圧縮ドライバによってホストドライブはH:ドライブにマッピングされていた。しかし、圧縮ドライバのロードに失敗した場合、ユーザーにはC:ドライブとして認識される可能性があった。
DoubleSpaceがデータ構造の更新を完了する前にコンピュータの電源を切ると、データ損失が発生する可能性もありました。この問題は、MicrosoftがMS-DOS 6.0に付属するSMARTDRVディスクキャッシュソフトウェアで書き込みキャッシュをデフォルトで有効にしたことでさらに悪化しました。この変更により、アプリケーションを終了した後、すべてのデータがディスクに書き込まれる前にMS-DOSプロンプトが表示されることがありました。しかし、(最新のオペレーティングシステムにあるような)制御されたシャットダウン手順がなかったため、多くのユーザーはMS-DOSプロンプトが表示されることをコンピュータの電源を切っても安全であるという兆候と捉えていました。これはMS-DOS 6.0以前の一般的な状況でした。MicrosoftはMS-DOS 6.2でこの問題に対処し、書き込みキャッシュはデフォルトで有効のままでしたが、コマンドプロンプトが再び表示される前にキャッシュがフラッシュされるようにしました。
AddStor, Inc. はDoubleSpace 用の Double Toolsというアドオン製品を提供していました。これには、MS-DOS 6.0 に付属していた DoubleSpace のバージョンの機能を強化するためのツールが多数含まれていました。これには、さまざまな診断機能、圧縮されたリムーバブル メディアが使用されると自動的にマウントされる機能、および DoubleSpace 圧縮ドライブのバックグラウンド デフラグのサポートが含まれていました。[3 ]バックグラウンドで ファイルをデフラグするには、DoubleTools が低レベルの DoubleSpace ドライバ (DBLSPACE.BIN) を DoubleTools が提供するドライバに置き換えることができました。ドライバを置き換えると、Intel 80386以上のCPU を検出したときに32 ビットコード パスを使用する、キャッシュ機能、および上位メモリ領域の使用をサポートすることに加えて、一部のバッファに拡張メモリを使用することも可能になるなど、製品の他の機能も強化されました (従来のメモリと上位メモリにおけるドライバの総フットプリントは削減されますが、速度がやや低下します)。[ 4 ]もう一つの機能は、圧縮ボリュームを複数のフロッピーディスクに分割し、最初のディスクを挿入するだけでボリューム全体を表示できる機能でした(必要に応じてディスクを交換するように促されます)。また、圧縮ボリュームをリモートコンピュータと共有することも可能でした。Double Toolsには、圧縮フロッピーディスクに特別なユーティリティを配置する機能もあり、DoubleSpace(またはDouble Tools)がインストールされていないコンピュータでも圧縮データにアクセスできるようにしました。
マイクロソフトがライセンス供与を受けてDoubleSpaceとして製品化したDoubleDiskプログラムを開発したVertisoft社は、DoubleSpaceのアドオンプログラムであるSpaceManagerを開発・販売した。SpaceManagerには、使いやすさを向上させるための様々な機能強化が施されており、圧縮率も向上していた。
Stac Electronics社のStackerの後のバージョンなど、他の製品は既存のDoubleSpace圧縮ドライブを独自のフォーマットに変換することができた。

MS-DOS 6.2では、DoubleSpaceの改良版が新たに搭載されました。DoubleSpaceを削除する機能が追加されました。このリリースで導入されたプログラムSCANDISKは、非圧縮ドライブと圧縮ドライブの両方をスキャンでき、内部のDoubleSpace構造のチェックも行いました。メモリ破損によるデータ損失を防ぐためのセキュリティ機能(DoubleGuard)が追加されました。DoubleSpaceドライバのメモリ使用量は、 MS-DOS 6.0に同梱されていたバージョンと比較して削減されました。前述の断片化の問題も修正されました。
Stac Electronics社による特許侵害訴訟が勝訴したことを受け、Microsoft社はDoubleSpaceを搭載しないMS-DOS 6.21をリリースした。また、裁判所の差し止め命令により、DoubleSpaceを搭載した以前のバージョンのMS-DOSの配布も禁止された。
MS-DOS 6.22には、ディスク圧縮ソフトウェアの再実装版が含まれていましたが、今回はDriveSpaceという名前でリリースされました。このソフトウェアは、ユーザーの観点から見ると、MS-DOS 6.2版のDoubleSpaceと基本的に同じであり、以前のバージョンとの互換性もありました。
Windows 95 は、圧縮ドライブにアクセスするためのネイティブ 32 ビットドライバとソフトウェアツールのグラフィカルバージョンを介して DoubleSpace/DriveSpace を完全にサポートしていました。MS-DOS 版 DriveSpace ユーザーは問題なく Windows 95 にアップグレードできました。さらに、Microsoft Plus! for Windows 95パックには DriveSpace のバージョン 3 が含まれていました。このバージョンでは、より高い圧縮率を実現するために異なるパフォーマンス特性を持つ新しい圧縮形式 (HiPack と UltraPack) が導入され、ファイルの使用頻度に応じて異なる形式でディスク上のファイルを再圧縮できるツールも含まれていました。DriveSpace 2 から DriveSpace 3 にアップグレードすることはできましたが、DriveSpace 2 へのダウングレードパスはありませんでした。ただし、DriveSpace 3 ドライブを解凍することはできました。これらの新機能により、DriveSpace 3 の DOS デバイスドライバのメモリ使用量は約 150 KB でした。そのため、使用可能な従来型メモリの量が減ったため、ゲームを実行するために Windows 95 の MS-DOS モードに再起動するユーザーにとって問題となりました。
DriveSpace 3 はWindows 95 OSR2にも同梱されていましたが、Plus! もインストールされていないと多くの機能が無効になっていました。また、DriveSpace はFAT32では使用できなかったため、大容量ハードドライブを搭載した PC ではほとんど役に立ちませんでした。[ 5 ]
Windows 98には、オペレーティングシステムの一部としてDriveSpace 3が同梱されていました。機能はWindows 95 Plus!と同じでした。
リアルモードのサポートが廃止され、FAT32が主流となり、DriveSpaceの人気が低下したため、Windows MeにおけるDriveSpaceのサポートは限定的なものとなりました。DriveSpaceはハードディスクの圧縮をサポートしなくなりましたが、圧縮されたリムーバブルメディアの読み書きは引き続きサポートしていました。ただし、それ以外にサポートされていたDriveSpaceの操作は、圧縮されたドライブの削除と再割り当てのみでした。
Windows Me 上で DriveSpace 3 の全機能を(非公式ながら)復元することが可能です。Windows 98 のインストール環境から実行ファイルをコピーし、Windows Me に付属の実行ファイルを置き換えることで、Windows Me に付属の実行ファイルを置き換えることができます。その後は、Windows 98 と同様に新しいドライブを圧縮できるようになります。
LinuxカーネルドライバであるDMSDOS [ 6 ] [ 7 ]は、 DoubleSpace/DriveSpaceディスクの読み書きをサポートするために1990年代後半に開発されました。しかし、圧縮ファイルシステムの読み書きは、カーネルの2.0、2.1、または2.2の特定のバージョンでのみ信頼できます。
DR-DOS は独自のディスク圧縮技術 (当初はSuperStorをベースとし、後にStackerをベースとしたもの) をサポートしていましたが、Novell DOS 7 (1993 年以降) では、 DoubleSpace もシームレスにサポートするために、文書化されていないプリロードAPIのエミュレーションが導入されました。 [ 1 ] DR-DOS ドライバはDPMS対応でしたが、MS-DOS ドライバは対応していなかったため、これは DR-DOS ユーザーにとって利点にはなりませんでしたが、マルチブート シナリオで既に存在する圧縮ボリュームを共有して使用できる可能性があるため、共存や移行が容易になりました。DR -DOS 7.02以降では、1998 年に DriveSpace のサポートも追加されました。 [ 8 ]