ディスク圧縮(英: Disk compression)とは、ハードディスクドライブのサイズを変えずに格納できる情報の量を増やすユーティリティソフトウェア。指定されたファイル(群)のみを圧縮するデータ圧縮ユーティリティとは異なり、ディスク圧縮ユーティリティは自動的に機能し、ユーザーはその存在を気にする必要がない。
ハードディスクに情報を格納する際に、このユーティリティがデータ圧縮を行う。読み出す際にも、ユーティリティがデータを伸張する。ディスク圧縮ユーティリティは、標準のオペレーティングシステムのルーチン群をオーバーライドする。全てのアプリケーションソフトウェアは、標準のオペレーティングシステムのルーチンを使おうとすると、その(オーバーライドされた)ルーチン群を使ってハードディスクにアクセスすることになるため、ディスク圧縮ユーティリティをインストールしてもそのまま何事もなく動作することができる。
ディスク圧縮ユーティリティは特に1990年代前半に広く利用された。当時のパーソナルコンピュータのハードディスクは容量が小さかった(20メガバイトから80メガバイト)。また、ハードディスク自体の価格が高く、1メガバイトあたり約20ドルのコストがかかった。ディスク圧縮は、高価な大容量ディスクを買わずに実質的なディスク容量を増やす手段として人気を呼んだ。よいディスク圧縮ユーティリティは、平均で容量を2倍にでき、性能低下はほとんど発生しない。
1990年代末ごろには、ハードディスクが低価格化・大容量化してきたため、この技術は使われなくなった。
なお、多くのディスク圧縮ユーティリティはDOSシステム上で動作するよう設計されていたが、概念自体はDOS固有のものではない。例えば、DiskDoubler は Macintosh 向けのバージョンもあった。 初期のディスク圧縮ユーティリティは独立した製品だった。ユーザーはこれらをオペレーティングシステムとは別に入手し、インストールし、設定する必要があった。 オペレーティングシステムにディスク圧縮ユーティリティを同梱する販売方法が受け入れられていった。再販業者はそれによってディスク容量を本来よりも大きく宣伝でき、ユーザーはソフトウェアを設定する手間が省けるという利点があった。以下のような同梱形態があった。 Windows XP には "compact" というユーティリティを含めた NTFS のファイル圧縮機能がサポートされていたが、上述のような「圧縮ドライブ」という実装ではない。 ディスク圧縮は、一般に巨大な単一ファイルを作成し、それを仮想ハードドライブとする。これは、1つのハードドライブをパーティションによって複数の仮想ドライブに分けるのと似ている。圧縮されたドライブはデバイスドライバ経由でアクセスされる。 全ドライブは初期状態では空である。ドライブ作成ユーティリティは「現在のドライブを圧縮しますか」とユーザーに提案する。すると、以下のような処理がなされる。 一般に、一部のシステムファイル 圧縮されたドライブにアクセスするには、対応したデバイスドライバをロードしなければならない。Cドライブを圧縮する場合、ブート処理は以下のように変更される。 一般には、圧縮および伸張の処理を行う必要が生じるため、性能が低下すると言われている。しかし、低速なハードディスクを使っている場合、ディスク圧縮によって逆に性能が向上する。これは、以下の要因に起因する。 システムの通常の処理がハードディスクアクセスの完了を頻繁に待つ必要がある場合(I/Oバウンド)、圧縮によって性能は大幅に改善される。しかし、圧縮と伸張に使うCPU時間が影響する場合もあり、CPUを使い続けるような処理をしているシステム(CPUバウンド)では、全体として性能が低下する可能性がある。 この節には独自研究が含まれているおそれがあります。問題箇所を検証し出典を追加して、記事の改善にご協力ください。議論はノートを参照してください。(2018年9月) ディスク圧縮には以下のような欠点がある。
主なディスク圧縮ユーティリティ
独立ユーティリティ
Stacker (Stac Electronics)
XtraDrive (Integrated Information Technology, IIT)
SuperStor Pro (AddStor)
DoubleDisk Gold (Vertisoft Systems)
DiskDoubler (Salient Software)
バンドルされたユーティリティ
DR-DOS 6.0 (デジタルリサーチ)と SuperStor
Novell DOS 7 (ノベル、デジタルリサーチ買収後)と Stacker
PC-DOS 6.1 (IBM) と SuperStor
PC-DOS 6.3 (IBM) と SuperStor
PC-DOS 7.0 (IBM) と Stacker
PC-DOS 2000 (IBM) と Stacker
MS-DOS 6.0 および MS-DOS 6.2 (マイクロソフト)と DoubleSpace
MS-DOS 6.22 (マイクロソフト)と DriveSpace(DoubleSpace の圧縮アルゴリズムを変更したもの)
Windows 95 (マイクロソフト)と DriveSpace
Plus! (マイクロソフト)と DriveSpace 3
動作原理
既存ドライブの圧縮
空の圧縮ドライブを生成し、既存のドライブ上のファイルとして格納する。
既存ドライブ上の既存ファイルを圧縮した上で新たな圧縮ドライブに転送する。
すると、徐々に空き領域が大きくなっていき、圧縮ドライブが大きくなっていく。
全ファイルの転送が完了したら、ドライブレターを入れ替える。
ブートドライブの圧縮
BIOS が1番目の物理ハードドライブのセクタ0をロードする。
ブートパーティションのセクタ0をロードする。
(MS-DOSの場合)IO.SYS をロードし、CONFIG.SYSの処理を開始する。
圧縮デバイスドライバをロードする。圧縮ドライブをCドライブに変更し、元のドライブは通常Fドライブにする。
以降の処理は圧縮ドライブ上で行われる。
性能への影響
圧縮されると、ディスクに転送するデータ量が少なくなる。
ディスクアクセスは効率化のためにまとめて行われることが多い。
欠点.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%;font-size:90%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}html.client-js body.skin-minerva .mw-parser-output .mbox-text-span{margin-left:23px!important}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}
圧縮する前にファイルシステムにエラーがないか確認しないユーティリティもある。例えばクロスリンク
圧縮ドライブはデバイスドライバをロードしないと、内容を参照できない。従って、ブートディスクを圧縮するには、少なくともそのデバイスドライバが圧縮されていない状態でロードできるようにしなければならない。
ユーザーは元のドライブ上の巨大なファイルが圧縮ドライブだと気づかないことがある。デフォルトではその巨大ファイルは見えないようになっているが[2]、ユーザーがそのファイルに気づいた場合、間違って削除してしまうことがある。すると、圧縮ドライブが失われてしまう。
関連項目
DoubleSpace
DR-DOS
MS-DOS
NTFS - ファイルシステムによる圧縮のサポート
SquashFS - 読み込み専用のLinuxディストリビューションでよく用いられる圧縮ファイルシステム
脚注^ クロスリンクとは、2つのファイルの一部がディスク上の同じ位置にあるとされている状態である。この場合、間違っている方のファイルの内容は既に一部失われている。間違っている方を先に圧縮して圧縮前のイメージを削除すると、問題なかった方のファイルまで失われてしまう。マイクロソフトが CHKDSK の代わりにスキャンディスクを導入した背景には、圧縮前のチェックを改善する意味もあった。
^ MS-DOSでは、ファイルには 、System, Hidden, Read-Only, Archivable という属性があり、System あるいは Hidden 属性のファイルはデフォルトでは見えない。System あるいは Read-Only 属性のファイルは通常の手段では削除できない。多くのディスク圧縮ユーティリティはドライブファイルに System、Hidden、Read-Only という属性を付与していた。しかし、特殊な手段を用いればそのような属性のファイルでも参照して削除できる。また、ユーザーが属性を消去してしまうこともできる。
外部リンク
Size:13 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)』
担当:undef