| その他の名前 | ダブルスペース (DBLSPACE) |
|---|---|
| 開発者 | ヴェルティソフト、マイクロソフト |
| 初回リリース | 1993年 |
| オペレーティング·システム | MS-DOS、Windows 9x |
| タイプ | 指示 |
DriveSpace (当初DoubleSpaceと呼ばれていた)は、1993 年のバージョン 6.0から始まり、2000 年のWindows Meのリリースで終了した、MS-DOSに付属するディスク圧縮ユーティリティです。DriveSpace の目的は、データを透過的に圧縮および解凍することで、ユーザーがディスクに保存できるデータ量を増やすことです。主にハード ドライブで使用することを目的としていますが、フロッピー ディスクでの使用もサポートされています。この機能は、 Windows XP以降 では削除されました。
概要

最も一般的な使用シナリオでは、ユーザーのコンピューターには 1 つのハード ドライブがあり、すべてのスペースが 1 つのパーティション(通常はドライブC:) に割り当てられます。ソフトウェアは、パーティションの内容全体をルート ディレクトリの 1 つの大きなファイルに圧縮します。システムを起動すると、ドライバーはこの大きなファイルをドライブ C: として割り当て、ファイルに通常どおりアクセスできるようにします。
Microsoft が 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 に拡張製品を開発する可能性のみを提示したと主張した。[要出典]
消費と互換性
いくつかのコンピュータ プログラム、特にゲームは DoubleSpace ドライバを事実上バイパスするため、DoubleSpace と互換性がありませんでした。また、DoubleSpace は大量のコンベンショナル メモリを消費するため、メモリを大量に消費するプログラムの実行が困難でした。
バグとデータ損失
リリース後すぐに、データ損失の報告が出た。Blossom Software という会社は、データ破損につながるバグを発見したと主張した。このバグは、断片化が激しいディスクにファイルを書き込むときに発生し、 BUST.EXEというプログラムによって実証された。同社は、エラーにつながる断片化状態をチェックするために使用できる DoubleCheck というプログラムを販売していた。Microsoft は、このエラーは起こりそうもない状況でのみ発生するという立場だったが、MS-DOS 6.2で問題を修正した。[2]
断片化の状態は、DoubleSpace が個々のクラスター(たとえばサイズが 8 K) を圧縮し、それらをディスクに収める方法に関連しており、DoubleSpace がない場合に必要な固定数 (この例では 16 セクター) よりも少ないセクター(サイズが 512 バイト) を占めます。これにより、十分なスペースがあっても DoubleSpace が圧縮されたクラスターを格納するのに十分な連続セクターを見つけられないという、一種の内部断片化の問題が発生する可能性があります。
データ損失のその他の潜在的な原因としては、他のプログラムによる DoubleSpace のメモリ領域の破損、MS-DOS がリアル モードで実行されていたため DoubleSpace のメモリ領域が保護されていなかったことなどが挙げられます。Microsoft は、DoubleSpace の MS-DOS 6.2 バージョンでこれを修正しようとしました (このような破損をチェックする DoubleGuardと呼ばれる機能を使用)。
圧縮ドライブの圧縮された内容が 1 つのファイルに保存されているということは、ユーザーがそのファイルを削除するだけで、すべてのデータを誤って削除してしまう可能性があることを意味していました。これは、ユーザーがこのファイルを含むホスト ドライブに誤ってアクセスした場合に発生する可能性があります。ホスト ドライブは通常、圧縮ドライバーによって H: という文字にマップされます。ただし、圧縮ドライバーがロードに失敗した場合には、ユーザーにはドライブ C: として表示される可能性があります。
DoubleSpace がデータ構造の更新を完了する前にコンピュータの電源を切ると、データ損失が発生する可能性もあります。この問題は、Microsoft がMS-DOS 6.0 に付属していたSMARTDRVディスク キャッシュ ソフトウェアで書き込みキャッシュを既定で有効にしたことでさらに悪化しました。この変更により、アプリケーションを終了した後、すべてのデータがディスクに書き込まれる前に MS-DOS プロンプトが表示されることがあります。ただし、最近のオペレーティング システムにあるような制御されたシャットダウン手順がないため、多くのユーザーは MS-DOS プロンプトの表示をコンピュータの電源を切っても安全であることを示すものと見なしていました。これは MS-DOS 6.0 より前のバージョンでは一般的でした。Microsoft はこの問題を MS-DOS 6.2 で解決しました。書き込みキャッシュは既定で有効のままですが、コマンド プロンプトが再表示される前にキャッシュがフラッシュされるようになりました。
アドオン
AddStor, Inc. はDouble Tools for DoubleSpaceというアドオン製品を提供していました。この製品には、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 社は、SpaceManager と呼ばれる DoubleSpace アドオン プログラムを開発し、販売しました。このプログラムには、数多くの使いやすさの強化機能が含まれていました。また、圧縮率も向上しました。
Stac Electronics の Stacker の後のバージョンのような他の製品は、既存の DoubleSpace 圧縮ドライブを独自の形式に変換することができました。
後のバージョン

6.2 の
MS-DOS 6.2 では、DoubleSpace の新しい改良版が採用されました。DoubleSpace を削除する機能が追加されました。このリリースで導入されたプログラムSCANDISKは、圧縮されていないドライブと圧縮されたドライブをスキャンし、DoubleSpace の内部構造をチェックすることができました。メモリ破損によるデータ損失を防ぐセキュリティ機能 (DoubleGuard と呼ばれる) が追加されました。DoubleSpaceドライバのメモリ フットプリントは、MS-DOS 6.0 で出荷されたバージョンに比べて小さくなりました。前述の断片化の問題が修正されました。
6.21 の
特許侵害の証拠に関するStac Electronicsの訴訟に勝訴した後、Microsoft はDoubleSpace のないMS-DOS 6.21 をリリースしました。裁判所の差し止め命令により、DoubleSpace を含む以前のバージョンの MS-DOS の配布も禁止されました。
6.22 の
MS-DOS 6.22 にはディスク圧縮ソフトウェアの再実装バージョンが含まれていましたが、今回はDriveSpaceという名前でリリースされました。このソフトウェアは、ユーザーの観点から見ると MS-DOS 6.2 バージョンの DoubleSpace と本質的に同一であり、以前のバージョンと互換性がありました。
Windows 95 のドライブスペース
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 のドライブスペース
Windows 98 には、オペレーティング システムの一部として DriveSpace 3 が付属していました。機能は、Plus! を搭載した Windows 95 と同じでした。
Windows Me のドライブスペース
リアル モードサポートの削除、FAT32 の主流化、および DriveSpace の人気低下により、Windows Meの DriveSpace のサポートは限定的になりました。DriveSpace はハード ディスクの圧縮をサポートしなくなりましたが、圧縮されたリムーバブル メディアの読み取りと書き込みは引き続きサポートされています。ただし、それ以外にサポートされる DriveSpace 操作は、圧縮されたドライブの削除と再割り当てのみでした。
Windows Me で DriveSpace 3 の完全な機能を (非公式に) 復元することは可能です。Windows 98 インストールから実行ファイルをコピーし、それを使用して Windows Me に含まれている実行ファイルを置き換えます。その後、Windows 98 の場合と同様に、新しいドライブを圧縮できます。
Microsoft 以外のサポート
LinuxカーネルドライバであるDMSDOS [ 6] [7]は、DoubleSpace/DriveSpaceディスクの読み取りと書き込みの両方をサポートするために1990年代後半に開発されました。しかし、圧縮ファイルシステムの読み取り、特に書き込みは、カーネルのバージョン2.0、2.1、または2.2の特定のバージョンでのみ信頼できます。
DR-DOS は独自のディスク圧縮技術 (当初はSuperStor、後にStackerに基づく) をサポートしていましたが、 1993 年のNovell DOS 7以降では、文書化されていないプリロードAPIのエミュレーションが導入され、DoubleSpace もシームレスにサポートできるようになりました。[1] DR-DOS ドライバはDPMSに対応していましたが、MS-DOS ドライバは対応していなかったため、DR-DOS ユーザーにとってメリットはありませんでしたが、マルチブート シナリオで既存の圧縮ボリュームを共有できるため、共存や移行が容易になりました。DR -DOS 7.02以降では、1998 年に DriveSpace のサポートも追加されました。[8]
参考文献
- ^ ab シュルマン、アンドリュー;ブラウン、ラルフ D. ; マクシー、デビッド; ミシェルズ、レイモンド J.; カイル、ジム (1994) [1993 年 11 月]。Undocumented DOS: 予約済みの MS-DOS 関数とデータ構造のプログラマー向けガイド - MS-DOS 6、Novell DOS、Windows 3.1 まで拡張(第 2 版)。マサチューセッツ州レディング: Addison Wesley。ISBN 0-201-63287-X。-- Andrew Schulman (1991-03-18)。「UNDOCUMENTED DOS の Errata、Commentary、および Release Notes」。2019 年 8 月 4 日閲覧。--ラルフ・ブラウン (1994-01-08)。 「文書化されていない DOS、第 2 版正誤表」。2019年8月4日に取得。
- ^ Livingston, Brian (1993-09-20). 「ディスクの断片化を「ダブルチェック」することは良い考えです」。InfoWorld : 20。
- ^ Halfhill, Tom R. (1994 年 2 月)。「データ圧縮はどの程度安全か?」。2008 年 6 月 19 日時点のオリジナルよりアーカイブ。
- ^ Eglowstein, Howard (1994 年 2 月)。「データ損失: 警告の物語」。2005 年 2 月 19 日時点のオリジナルよりアーカイブ。
- ^ www.helpwithwindows.com; HelpWithWindows.com、Arie Slob (1998-07-14)。「Windows 98、FAT32」。HelpWithWindows.com 。2024年3月30日閲覧。
- ^ 「DMSDOS - Linuxカーネルドライバー」 2005年3月18日。2016年11月11日時点のオリジナルよりアーカイブ。2016年5月25日閲覧。
- ^ 「DMSDOS CVFモジュール」。0.9.2.0。1998年11月19日。2016年11月2日時点のオリジナルよりアーカイブ。 2016年11月1日閲覧。
- ^ Paul, Matthias R. (1997-10-02). 「Caldera OpenDOS 7.01/7.02 Update Alpha 3 IBMBIO.COM」。2003-10-04 時点のオリジナルよりアーカイブ。2009-03-29閲覧。[1]
さらに読む
- クーパー、ジム (2001)。 『MS-DOS 6.22使用特別版、第 3 版』Que Publishing。ISBN 978-0789725738。
- Tim O'Reilly、Troy Mott、Walter Glenn (1999)。Windows 98 in a Nutshell: デスクトップ クイック リファレンス。O'Reilly . ISBN 978-1565924864。
