ディスク圧縮

ディスク圧縮（英: Disk compression）とは、ハードディスクドライブのサイズを変えずに格納できる情報の量を増やすユーティリティソフトウェア。指定されたファイル（群）のみを圧縮するデータ圧縮ユーティリティとは異なり、ディスク圧縮ユーティリティは自動的に機能し、ユーザーはその存在を気にする必要がない。
ハードディスクに情報を格納する際に、このユーティリティがデータ圧縮を行う。読み出す際にも、ユーティリティがデータを伸張する。ディスク圧縮ユーティリティは、標準のオペレーティングシステムのルーチン群をオーバーライドする。全てのアプリケーションソフトウェアは、標準のオペレーティングシステムのルーチンを使おうとすると、その(オーバーライドされた)ルーチン群を使ってハードディスクにアクセスすることになるため、ディスク圧縮ユーティリティをインストールしてもそのまま何事もなく動作することができる。
ディスク圧縮ユーティリティは特に1990年代前半に広く利用された。当時のパーソナルコンピュータのハードディスクは容量が小さかった（20メガバイトから80メガバイト）。また、ハードディスク自体の価格が高く、1メガバイトあたり約20ドルのコストがかかった。ディスク圧縮は、高価な大容量ディスクを買わずに実質的なディスク容量を増やす手段として人気を呼んだ。よいディスク圧縮ユーティリティは、平均で容量を2倍にでき、性能低下はほとんど発生しない。
1990年代末ごろには、ハードディスクが低価格化・大容量化してきたため、この技術は使われなくなった。
なお、多くのディスク圧縮ユーティリティはDOSシステム上で動作するよう設計されていたが、概念自体はDOS固有のものではない。例えば、DiskDoubler は Macintosh 向けのバージョンもあった。
主なディスク圧縮ユーティリティ.
独立ユーティリティ.
初期のディスク圧縮ユーティリティは独立した製品だった。ユーザーはこれらをオペレーティングシステムとは別に入手し、インストールし、設定する必要があった。
バンドルされたユーティリティ.
オペレーティングシステムにディスク圧縮ユーティリティを同梱する販売方法が受け入れられていった。再販業者はそれによってディスク容量を本来よりも大きく宣伝でき、ユーザーはソフトウェアを設定する手間が省けるという利点があった。以下のような同梱形態があった。
Windows XP には "compact" というユーティリティを含めた NTFS のファイル圧縮機能がサポートされていたが、上述のような「圧縮ドライブ」という実装ではない。
動作原理.
ディスク圧縮は、一般に巨大な単一ファイルを作成し、それを仮想ハードドライブとする。これは、1つのハードドライブをパーティションによって複数の仮想ドライブに分けるのと似ている。圧縮されたドライブはデバイスドライバ経由でアクセスされる。
既存ドライブの圧縮.
全ドライブは初期状態では空である。ドライブ作成ユーティリティは「現在のドライブを圧縮しますか」とユーザーに提案する。すると、以下のような処理がなされる。
一般に、一部のシステムファイルは転送されない。例えば、OSのスワップファイルは元のドライブに残される。
ブートドライブの圧縮.
圧縮されたドライブにアクセスするには、対応したデバイスドライバをロードしなければならない。Cドライブを圧縮する場合、ブート処理は以下のように変更される。
性能への影響.
一般には、圧縮および伸張の処理を行う必要が生じるため、性能が低下すると言われている。しかし、低速なハードディスクを使っている場合、ディスク圧縮によって逆に性能が向上する。これは、以下の要因に起因する。
システムの通常の処理がハードディスクアクセスの完了を頻繁に待つ必要がある場合（I/Oバウンド）、圧縮によって性能は大幅に改善される。しかし、圧縮と伸張に使うCPU時間が影響する場合もあり、CPUを使い続けるような処理をしているシステム（CPUバウンド）では、全体として性能が低下する可能性がある。
欠点.
ディスク圧縮には以下のような欠点がある。