Jump to content

Disk compression

Page semi-protected
From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Matthiaspaul (talk | contribs) at 00:26, 19 November 2016 ({{anchor|Squish ROM|Multimedia Stacker|THS|DMSDOS}}Other solutions: +ref). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

A disk compression software utility increases the amount of information that can be stored on a hard disk drive of given size. Unlike a file compression utility, which compresses only specified files—and which requires the user to designate the files to be compressed—an on-the-fly disk compression utility works automatically without the user needing to be aware of its existence.

When information needs to be stored to the hard disk, the utility will compress the information. When information needs to be read, the utility will decompress the information. A disk compression utility overrides the standard operating system routines. Since all software applications access the hard disk using these routines, they continue to work after disk compression has been installed.

Disk compression utilities were popular especially in the early 1990s, when microcomputer hard disks were still relatively small (20 to 80 megabytes). Hard drives were also rather expensive at the time, costing roughly 10 USD per megabyte. For the users who bought disk compression applications, the software proved to be in the short term a more economic means of acquiring more disk space as opposed to replacing their current drive with a larger one. A good disk compression utility could, on average, double the available space with negligible speed loss. Disk compression fell into disuse by the late 1990s, as advances in hard drive technology and manufacturing led to increased capacities and lower prices.

Common disk compression solutions

Standalone hardware solutions

Some of the initial disk compression solutions were hardware-assisted and utilized add-on compressor/decompressor coprocessor cards in addition to a software driver. Known solutions include:

Standalone software solutions

With increasing PC processor power software-only solutions began to reach or even outperform the performance of hardware-assisted solutions in most scenarios. These compression utilities were sold independently. A user had to specifically choose to install and configure the software.

Bundled software solutions

The idea of bundling disk compression into new machines appealed to resellers and users. Resellers liked that they could claim more storage space; users liked that they did not have to configure the software. Bundled utilities included (in chronological order):

Other solutions

While Windows XP, from Microsoft, included both a native support and a command line utility named 'compact' that compresses files on NTFS systems, that is not implemented as a separate "compressed drive" like those above.

How disk compression works

Disk compression usually creates a single large file, which becomes a virtual hard drive. This is similar to how a single physical hard drive can be partitioned into multiple virtual drives. The compressed drive is accessed via a device driver.

Compressing existing drives

All drives would initially be empty. The utility to create a drive would usually offer to "compress a current drive". This meant the utility would:

  1. Create an empty compressed drive, stored on the existing drive.
  2. Transfer existing files on the old drive to the new compressed drive.
  3. Increase the size of the new compressed drive as necessary to accommodate more files and allow empty space when done.
  4. When all files were transferred, the drive letters would be swapped.

Usually certain system files would not be transferred. For example, OS swap files would remain only on the host drive.

Compressing the boot drive

A device driver had to be loaded to access the compressed drive. A compressed drive C: required changes to the boot process as follows:

  1. BIOS loads sector 0 of the first physical hard drive (Master Boot Record)
  2. Partition sector loads sector 0 of the bootable partition (Volume Boot Record). In this case, it's the host drive.
  3. Host drive sector 0 loads (in the case of DOS) the DOS BIOS (IO.SYS, IBMBIO.COM etc.)
  4. The DOS BIOS loads the DOS kernel (MSDOS.SYS, IBMDOS.COM etc.)
  5. If the DOS supports the preload API, the DOS BIOS attempts to load a preloadable compression driver[9] (DBLSPACE.BIN, DRVSPACE.BIN or STACKER.BIN) from the root of the host drive and attempts to communicate with it through the DOS preload API.[13] If the driver responds as expected, the DOS BIOS will keep the driver, if not, it will get discarded.[8] If kept and configured accordingly, drive letters may get swapped, so that the compressed drive becomes C:.
  6. The DOS BIOS starts CONFIG.SYS processing; by looking for the file in the root of the boot drive. In the case of DR-DOS, DCONFIG.SYS etc. will take precedence over CONFIG.SYS, if present.[10][13]
  7. Compression drivers not loaded through the preload API may be loaded through DEVICE statements.
  8. Depending on configuration and if this hasn't happened already, drive letters may get swapped, so that the compressed drive becomes C:.
  9. Processing continues from compressed drive.

Performance impacts

On systems with slower hard drives, disk compression could actually increase system performance. This was accomplished two ways:

  • Once compressed, there was less data to be stored.
  • Disk accesses would often be batched together for efficiency.

If the system had to frequently wait for hard drive access to complete (I/O bound) converting the hard drive to compressed drives could speed up the system significantly. Compression and decompression of the data will increase the CPU utilization. If the system was already CPU bound, disk compression will decrease overall performance.

Drawbacks

Some common drawbacks to using disk compression:

  • Not all compression utilities would confirm the absence of errors in the FAT file system before compressing a disk in place. Some errors, such as crosslinked files, could result in additional data loss during the transfer process.[nb 1]
  • The compressed drive is only visible if the device driver is loaded and the compressed drive is mounted. A boot disk, for example, might not contain the driver. (This was not normally an issue for solutions that came bundled with the operation systems unless booting foreign operating systems, as system utilities like SYS were modified to copy the compression drivers to boot disks by default, and the corresponding operation systems would also fall back to look for them on drives other than the boot disk if they couldn't be found there.)
  • Uninstallation was problematic if the expanded size of data on the compressed disk was larger than the normal disk capacity.
  • Users did not always realize that the large file on the host drive contained the compressed drive. While it was usually "hidden" by default,[nb 2] users who did find the large file curious or suspicious were able to delete it. This would normally result in data loss.

See also

Notes

  1. ^ In crosslinked files, two files are storing at least part of their data in the same location. At least part of one file (the "bad" file) is always lost in this instance. However, if the "bad" file is copied and then deleted, part of the "good" file is deleted as well. Microsoft SCANDISK was created, in part, to perform a better check of the file system prior to compression than the MS-DOS CHKDSK utility.
  2. ^ For example, DOS associated up to four attributes with files: System, Hidden, Read-Only, and Archive. Files with the System or Hidden attributes are often not displayed by default. Files with the System or Read-Only attribute cannot be deleted with the ERASE or DEL DOS command. Most compression utilities would mark the drive file with at least one or more of the System, Hidden, and Read-Only attributes (many would use all three). However, files marked with such attributes can be viewed and deleted by other means. In addition, the user can also remove attributes.

References

  1. ^ a b c d Slovick, Linda (1992-02-17). "The big squeeze". InfoWorld. 14 (7): 57–63. Retrieved 2015-04-06.
  2. ^ a b c d e Pastrick, Greg (1992-01-28). "Double - no - triple your hard disk space with on-the-fly data compression utilities". PC Magazine. 11 (2): 261. Retrieved 2015-04-06.
  3. ^ Mendelson, Edward (1990-11-13). "Expanz! board quickly compresses files on all disk types but forfeits some DOS compatibilities". PC Magazine. 9 (19): 13. Retrieved 2015-04-06.
  4. ^ Walkenbach, John (1987-02-02). "Squish - File compressor crams data into smaller space, but slowly". InfoWorld. 9 (6): 55. Retrieved 2015-04-05.
  5. ^ Davis, Stephen Randy (1987-02-24). "Squish Puts a Squeeze on Files Before They Are Written to Disk". PC Magazine. 6 (4): 46. Retrieved 2015-04-06.
  6. ^ a b Goldstein, Hal (1989-07-08). "50% more file space for as little as $89.95" (PDF). The Portable Paper. 4 (4). Personalized Software, now Thaddeus Computing: 46. Retrieved 2015-04-05.
  7. ^ http://files.mpoli.fi/unpacked/software/dos/compress/jam125sw.zip/readme.doc
  8. ^ a b Slivka, Benjamin W.; Straub, Eric; Freedman, Richard (July 1993). "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. 18 (8): 197–202. Retrieved 2016-11-01. [1]
  9. ^ a b c Schulman, Andrew; Brown, Ralf; Maxey, David; Michels, Raymond J.; Kyle, Jim (1994). 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 ed.). Addison Wesley. ISBN 0-201-63287-X. ISBN 978-0-201-63287-3.
  10. ^ a b c Paul, Matthias (1997-07-30). NWDOS-TIPs — Tips & Tricks rund um Novell DOS 7, mit Blick auf undokumentierte Details, Bugs und Workarounds (e-book) (in German) (edition 3, release 157 ed.). Retrieved 2015-04-05. {{cite book}}: |work= ignored (help) 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.
  11. ^ "MS-DOS-Clone made in Russia". Computerwoche. 1994-05-06. Retrieved 2015-04-12.
  12. ^ DR-DOS 7.02 User Guide. Caldera, Inc. 1998. Retrieved 2015-04-06.
  13. ^ a b c Paul, Matthias (1997-10-02). "Caldera OpenDOS 7.01/7.02 Update Alpha 3 IBMBIO.COM README.TXT". Retrieved 2009-03-29.
  14. ^ Turner Hall Publishing (1986-10-14). "Squeeze 10 times as many spreadsheets on a disk - SQZ! - The data squeezer for Lotus". PC Magazine: 155. Retrieved 2016-11-18.
  15. ^ ftp://sunsite.unc.edu/pub/Linux/system/Filesystems/dosfs/thsfs.tgz
  16. ^ https://lists.debian.org/debian-user/1996/09/msg01042.html
  17. ^ http://ftp.nluug.nl/ftp/ibiblio/system/filesystems/thsfs.lsm
  18. ^ "DMSDOS - Linux kernel driver". 2005-03-18. Archived from the original on 2016-11-11. Retrieved 2016-05-25. {{cite web}}: Unknown parameter |dead-url= ignored (|url-status= suggested) (help)
  19. ^ "DMSDOS CVF module" (dmsdoc.doc). 0.9.2.0. 1998-11-19. Archived from the original on 2016-11-01. Retrieved 2016-11-01. {{cite web}}: |archive-date= / |archive-url= timestamp mismatch; 2016-11-02 suggested (help); Unknown parameter |dead-url= ignored (|url-status= suggested) (help)