磁盘压缩

磁盘压缩（英語：disk compression）软件是一种可以增加硬盘存储信息量的技术。与需要用户指定要压缩文件的文件压缩工具不同，磁盘压缩工具自动完成压缩与解压，用户无需意识到其存在。 此类程序将在需要存储信息时压缩数据，而在读取信息时解压缩。磁盘压缩工具将覆盖操作系统的标准流程。因为几乎所有应用软件都使用这种流程访问磁盘，因此它们可以在安装磁盘压缩软件后继续正常工作。 磁盘压缩实用程序在1990年代受到欢迎，当时微型计算机的硬盘仍然较小（20至80百万字节），价格昂贵，每兆字节需要大约10美元）。对不少用户来说，相比购买更大容量的磁盘代替当前的驱动器，这种磁盘压缩软件是在短期内获取更多磁盘存储空间的有效且经济的手段。一个设计良好的磁盘压缩软件平均可将可用空间翻倍，而对速度的影响可以忽略不计[來源請求]。随着硬盘技术与制造业的进步和成本降低，磁盘压缩软件在1990年代后期被淘汰。 部分磁盘压缩解决方案需要硬件辅助，除软件驱动程序外还需使用额外的压缩/解压缩协处理器板卡。知名解决方案包括： Stacker XT/8（英语：Stacker XT/8）和Stacker AT/16（英语：Stacker AT/16），出自Stac Electronics（英语：Stac Electronics） Expanz!和Expanz! Plus，出自InfoChip Systems（英语：InfoChip Systems） MRCI（微软实时压缩接口），出自微软公司 随着PC处理器性能增长，软件解决方案在大多数情况下开始达到或甚至超过硬件辅助解决方案的性能。这些压缩实用程序为独立销售。用户必须具体选择来安装和配置软件。 Squish和Squish Plus，出自Sundog Software（英语：Sundog Software） Stacker，出自Stac Electronics（英语：Stac Electronics） XtraDrive，出自Integrated Information Technology（IIT） SuperStor和SuperStor Pro，出自AddStor（英语：Addstor, Inc.） DoubleDisk和DoubleDisk Gold，出自Vertisoft Systems（英语：Vertisoft） JAM（JAM.SYS），出自乌克兰基辅的JAM Software DiskDoubler（英语：DiskDoubler），出自Salient Software（英语：Salient Software） Double Density，出自Data Becker（英语：Data Becker） 将磁盘压缩软件綁售到新计算机上的想法吸引了经销商和用户。经销商喜欢得到更多的存储空间来销售，而用户喜欢无需自行配置软件。捆绑的软件包含（按时间排序）： DR DOS 6.0（英语：DR DOS 6.0）（1991年），出自數位研究公司，包含一个AddStor（英语：Addstor, Inc.）“SuperStor”的自定义版本。 PalmDOS 1.0（英语：PalmDOS 1.0）（1992年），出自Novell（在其收购数字研究公司后），包含一个启用DPMS（英语：DOS Protected Mode Services）的SuperStor。 MS-DOS 6.0（1993年），出自微软公司，包含DoubleSpace，其部分基于Vertisoft Systems（英语：Vertisoft）的“DoubleDisk”。MS-DOS 6.0引入了所谓DOS预加载API（英语：DOS preload API），它是一个无文档的挑战响应（英语：challenge-response）输入接口，允许磁盘组件软件（DBLSPACE.BIN）在处理CONFIG.SYS文件前自动加载。 PC DOS 6.1（英语：PC DOS 6.1）（1993年），出自IBM，原始版本未包含磁盘压缩器，而SuperStor/DS的定制版本（在收购AddStor后）包含在之后的发布版本中，并也在PC DOS产品线中包括预加载API。 MS-DOS 6.2（1993年），出自微软公司，包含一个“DoubleSpace”的改进版本。 Novell DOS 7（英语：Novell DOS 7）（1993年），出自Novell，包含一个出自Stac Electronics（英语：Stac Electronics）的启用DPMS的Stacker 3.12（英语：Stacker 3.12）（STACKER.BIN），其支持与也在运行Stacker的远程NetWare和PNW服务器进行已压缩数据的交换，从而避免复制文件时不必要的重新压缩。它也引入了DOS 6预加载API的支持，以保持与微软公司的DoubleSpace在多重引导下的兼容性。使用了一个类似的机制来加载可选的单用户或多用户安全（英语：SECURITY.BIN）组件。 PTS-DOS Extended 6.4（英语：PTS-DOS Extended 6.4）（1994年），出自PhysTechSoft（英语：PhysTechSoft），包含一个名为Folder（FOLDER.SYS）的磁盘压缩组件。 PC DOS 6.3（英语：PC DOS 6.3）（1994年），出自IBM，包含一个SuperStor/DS。 MS-DOS 6.22（1994年），出自微软公司，包含DriveSpace，它与DoubleSpace采用不同的压缩算法（DRVSPACE.BIN），MS-DOS 6.21因法律原因而未搭载任何磁盘压缩软件。 PC DOS 7.0（英语：PC DOS 7.0）（1995年），出自IBM，包含一个出自Stac Electronics的启用DPMS的Stacker 4.02（英语：Stacker 4.02）。 Windows 95（1995年），出自微软公司，包含一个DriveSpace 2（英语：DriveSpace 2）的更新版本。 Windows 95 OSR2（1996年），出自微软公司，包含一个DriveSpace 3（英语：DriveSpace 3）的简化版本。 Windows 95 Plus!（英语：Windows 95 Plus!）（1996年），出自微软公司，包含DriveSpace 3的完全版本。 OpenDOS 7.01（英语：OpenDOS 7.01）（1997年），出自Caldera（在收购Novell DOS后），包含一个启用DPMS的Stacker 3.12。 DR-DOS 7.02（英语：DR-DOS 7.02）（1998年），出自Caldera，包含一个启用DPMS的的Stacker 3.12。DR-DOS 7.02也添加了对微软公司DriveSpace的支持。 PC DOS 2000（1998年），出自IBM，包含一个启用DPMS的Stacker 4.02。 Windows 98（1998年），出自微软公司，包含DriveSpace 3的完全版本。 DR-DOS 7.03（英语：DR-DOS 7.03）（1999年），出自Caldera，包含一个启用DPMS的Stacker 3.12。 Windows 98 SE（1999年），出自微软公司，包含一个DriveSpace 3的完全版本。 PTS-DOS Pro 2000（英语：PTS-DOS Pro 2000）（1999年），出自Paragon Technology Software（英语：Paragon Technology Software），包含一个名为DATACOMP的磁盘压缩组件。 Squeeze，一个适用于Lotus 1-2-3和Lotus Symphony（英语：Lotus Symphony (DOS)）文件的驻留的DOS文件压缩器，出自Turner Hall Publishing Squish Plus ROM，出自Sundog Software（英语：Sundog Software）。它通过Personalized Software（英语：Personalized Software）（现为Thaddeus Computing（英语：Thaddeus Computing））专门分发，是一个特殊的唯讀記憶體板卡，其中包含只有36 KB的适用于HP Portable Plus（英语：HP Portable Plus）的一个Squish Plus的定制版本。 Double Tools for DoubleSpace（英语：Double Tools for DoubleSpace），是Addstor（英语：Addstor, Inc.）的一个附加产品，是为增强与MS-DOS 6.0捆绑的DoubleSpace的功能。 Multimedia Stacker，出自Helix Software（英语：Helix Software） was a bundle of Stac's DPMS（英语：DOS Protected Mode Services）-enabled Stacker 4.01 combined with Helix Cloaking（英语：Helix Cloaking）和utilities, 利用Cloaking内置的DPMS服务器来重新定位和运行于保護模式。 THS filesystem（1994年-1996年，由Thomas Scheuermann），一个面向Linux的压缩的文件系统，它可以读取某些压缩的卷文件（英语：Compressed Volume File）（CVF）。 DMSDOS（1996年），一个Linux内核驱动程序，是为支持DoubleSpace、DriveSpace 2和3以及Stacker 3和4的卷的读写。 从Windows XP开始，微软为NTFS文件系统上的文件提供原生的压缩支持，但不是以“压缩驱动器”为标准来实现。 磁盘压缩程序会创建一个大的文件，使其成为一个虚拟硬盘。这类似将单个物理驱动器划分为多个虚拟驱动器。压缩的驱动器通过一个设备驱动程序访问（存取）。 所有驱动器最初都是空的。创建驱动器的实用程序通常会提供“压缩当前驱动器”功能。它的流程通常是： 创建一个空的压缩驱动器，存储在现有驱动器上。 将旧驱动器上的现有文件传输到新的压缩驱动器。 根据需要增加新的压缩驱动器的大小，以容纳更多文件，以及在完成后留有空闲空间。 在所有文件传输后，切换驱动器号。 需要注意的是，访问已压缩驱动器时必须已加载相应的设备驱动程序。已压缩驱动器C:需要按下列方法改变啟動程式： BIOS加载物理驱动器的扇区0（主引导记录） 分区扇区加载可引导分区的扇区0（卷引导记录（英语：Volume Boot Record））。此种情况下，它是主机驱动器。 （若以DOS为例）主机驱动器的扇区0加载，DOS BIOS（IO.SYS, IBMBIO.COM等）。 DOS BIOS加载DOS内核（MSDOS.SYS, IBMDOS.COM等）。 如果该DOS支持预加载API（英语：DOS preload API），DOS BIOS尝试加载可预加载的压缩驱动程序（从主机驱动器的根目录寻找DBLSPACE.BIN、DRVSPACE.BIN或STACKER.BIN），并尝试通过DOS预加载API与其通信。如果该驱动程序按预期方式响应，DOS BIOS保留该驱动程序，否则丢弃它。如果保留并适当配置，驱动器号可能被交换，使压缩的驱动器成为C:。 DOS BIOS启动CONFIG.SYS处理；在引导驱动器的根目录查找文件。以DR-DOS为例，DCONFIG.SYS等。如果存在，将优先于CONFIG.SYS。 通过预加载API加载的压缩驱动程序可能会通过DEVICE（英语：DEVICE (CONFIG.SYS directive)）声明加载。 根据配置情况，如果还未发生，驱动器号可能被切换，以使压缩的驱动器变为C:。 从已压缩的驱动器继续。 在硬盘性能缓慢的系统上，磁盘压缩可能增加系统性能。这是因为两个原因： 在被压缩后，存储的数据量减少。 一批次磁盘访问可以获得更多内容。 如果系统不得不频繁等待硬盘访问完成（I/O瓶颈（英语：I/O bound）），将硬盘转换为压缩状态或能显著增加系统速度。但数据的压缩和解压将增加CPU使用率。如果系统已遇到CPU瓶颈（英语：CPU bound），磁盘压缩会降低整体性能。 使用磁盘压缩也有一些常见的缺点： 并非所有压缩工具都能在压缩磁盘前确认FAT文件系统中的错误。某些错误如交叉链接（英语：Crosslinked file）文件可能导致转换过程中额外的数据丢失。 已压缩驱动器仅在设备驱动程序已加载并且已压缩驱动器已挂载时可见。而启动盘可能不包含所需驱动程序。（这对与操作系统捆绑的解决方案来说通常不是问题，除非是启动一个外来的操作系统。因为SYS（英语：SYS (DOS command)）这样的程序默认已修改为将压缩驱动程序复制到引导磁盘，从而相应的操作系统也能在引导盘以外的驱动器上找到它们。） 如果已压缩磁盘的展开数据超过正常的磁盘容量，卸载（解除压缩）会遇到问题。 用户不一定能意识到一个主机驱动器上的大文件就是已压缩的磁盘。虽然它通常是默认“隐藏”的，用户仍可能好奇地发现一个大文件并可以删除它。这通常会导致数据丢失。 内存压缩（英语：RAM compression） 数据压缩 磁盘碎片 可执行文件压缩 自解壓縮檔 cramfs e2compr SquashFS MDFAT（DoubleSpace） BitFAT（英语：BitFAT）（DoubleSpace） MDBPB（英语：MDBPB）（DoubleSpace） 交叉链接文件（英语：Crosslinked file），是指两个文件在同一个位置存储它们的（哪怕部分）数据 举例来说，DOS会为文件分配最多四个属性（英语：FAT attributes）：系统、隐藏、只读和存档。默认情况下，带有系统或隐藏属性的文件不会被显示。带有系统或只读属性的文件不能使用 Slovick, Linda. The big squeeze. InfoWorld（英语：InfoWorld）. 1992-02-17, 14 (7): 57–63 [2015-04-06]. （原始内容存档于2017-04-02）.  Pastrick, Greg. Double - no - triple your hard disk space with on-the-fly data compression utilities. PC Magazine. 1992-01-28, 11 (2): 261 [2015-04-06]. （原始内容存档于2017-04-02）.  Mendelson, Edward. Expanz! board quickly compresses files on all disk types but forfeits some DOS compatibilities. PC Magazine. 1990-11-13, 9 (19): 13 [2015-04-06]. （原始内容存档于2017-04-01）.  Walkenbach, John. Squish - File compressor crams data into smaller space, but slowly. InfoWorld（英语：InfoWorld）. 1987-02-02, 9 (6): 55 [2015-04-05]. （原始内容存档于2017-04-02）.  Davis, Stephen Randy. Squish Puts a Squeeze on Files Before They Are Written to Disk. PC Magazine. 1987-02-24, 6 (4): 46 [2015-04-06]. （原始内容存档于2017-04-01）.  Goldstein, Hal. 50% more file space for as little as $89.95 (PDF). The Portable Paper（英语：The Portable Paper） (Personalized Software（英语：Personalized Software）, now Thaddeus Computing（英语：Thaddeus Computing）). 1989-07-08, 4 (4): 46 [2015-04-05]. （原始内容存档 (PDF)于2020-10-22）.  存档副本. [2017-04-01]. （原始内容存档于2019-02-11）.  MS-DOS-Clone made in Russia. Computerwoche. 1994-05-06 [2015-04-12]. （原始内容存档于2020-09-25）.  参数|journal=与模板{{cite web}}不匹配（建议改用{{cite journal}}或|website=） (帮助) DR-DOS 7.02 User Guide. Caldera, Inc.（英语：Caldera, Inc.）. 1998 [2015-04-06]. （原始内容存档于2016-11-05）.  Paul, Matthias. Caldera OpenDOS 7.01/7.02 Update Alpha 3 IBMBIO.COM README.TXT. 1997-10-02 [2009-03-29]. （原始内容存档于2003-10-04）.  Turner Hall Publishing. Squeeze 10 times as many spreadsheets on a disk - SQZ! - The data squeezer for Lotus. PC Magazine. 1986-10-14: 155 [2016-11-18]. （原始内容存档于2016-11-19）.  ftp://sunsite.unc.edu/pub/Linux/system/Filesystems/dosfs/thsfs.tgz[永久失效連結] 存档副本. [2017-04-01]. （原始内容存档于2017-01-03）.  存档副本. [2017-04-01]. （原始内容存档于2017-01-03）.  DMSDOS - Linux kernel driver. 2005-03-18 [2016-05-25]. （原始内容存档于2016-11-11）.  DMSDOS CVF module. 1998-11-19 [2016-11-01]. （原始内容存档于2016-11-02）.  Schulman, Andrew; Brown, Ralf; Maxey, David; Michels, Raymond J.; Kyle, Jim. Undocumented DOS - A programmer's guide to reserved MS-DOS functions and data structures - expanded to include MS-DOS 6, Novell DOS and Windows 3.1 2. Addison Wesley（英语：Addison Wesley）. 1994. ISBN 0-201-63287-X. ISBN 978-0-201-63287-3.  Hands on - Under the Hood: Inside MS-DOS 6 - The developers of MS-DOS describe the operating system's memory optimization and disk-compression technology. BYTE Magazine（英语：BYTE Magazine）. July 1993, 18: 197–202 [2016-11-01].  Paul, Matthias. NWDOS-TIPs — Tips & Tricks rund um Novell DOS 7, mit Blick auf undokumentierte Details, Bugs und Workarounds. MPDOSTIP (e-book) edition 3, release 157. 1997-07-30 [2015-04-05]. （原始内容存档于2016-11-03） （德语）.  NWDOSTIP.TXT is a comprehensive work on Novell DOS 7 and OpenDOS 7.01, including the description of many undocumented features and internals. It is part of the author's yet larger MPDOSTIP.ZIP collection maintained up to 2001 and distributed on many sites at the time. The provided link points to a HTML-converted older version of the NWDOSTIP.TXT file. MS-DOS 6 Technical Reference. [2017-04-01]. （原始内容存档于2008-04-20）.  DoubleSpace CVF file layout. [2017-04-01]. （原始内容存档于2017-01-03）.  ff. How Safe is Disk Compression?. BYTE Magazine（英语：BYTE Magazine）. February 1994. （原始内容存档于2008-06-19）.  How To... Compress Hard Drives. Smart Computing（英语：Smart Computing）. April 1999 [2020-09-15]. （原始内容存档于2012-02-25）.