17

DriveSpace is the successor to DoubleSpace. Both are DOS systems that mount a Compressed Volume File as a drive, allowing ordinary programs to interface with a compressed drive without an intermediate compression stage. According to the MS-DOS 6.22 README.TXT:

DriveSpace appears similar to DoubleSpace, which was included with MS-DOS 6 and 6.2. The main difference is that DriveSpace stores compressed data in a different format from DoubleSpace.

What is the difference in format used? Are there differences other than the compressed format?

wizzwizz4
  • 18,543
  • 10
  • 78
  • 144
  • 16
    Operationally, no. The change was made, as I recall, because DoubleSpace was found to be an infringement of patents held by the developer of the third-party disk-compression program Stacker. – Jeff Zeitlin Jun 26 '17 at 18:41
  • 1
    @JeffZeitlin This is my recollection as well. – Leo B. Jun 26 '17 at 18:48
  • @JeffZeitlin No to the second question? You have to convert the drive by decompressing with DoubleSpace, uninstalling, then recompressing with DriveSpace so there's probably a difference in format. – wizzwizz4 Jun 26 '17 at 19:20
  • 1
    Correct - No operational differences other than the compressed format. If you had a system that was doublespaced side-by-side with a system that was drivespaced, you couldn't tell the difference if you didn't know about the difference in advance. – Jeff Zeitlin Jun 26 '17 at 19:42
  • 2
    Obviously, there were technical and internal differences - but they didn't affect the users except in the case where a user needed to convert. – Jeff Zeitlin Jun 26 '17 at 19:43
  • @JeffZeitlin Do you know what those technical and internal differences are? – wizzwizz4 Jun 26 '17 at 20:45
  • You may be interested in https://en.wikipedia.org/wiki/Stac_Electronics and https://en.wikipedia.org/wiki/Lempel%E2%80%93Ziv%E2%80%93Stac – Leo B. Jun 26 '17 at 20:49
  • @wizzwizz4 - I do not; I had no interest at that level at the time, and both were obsolete by the time I started to get interested in things at that level. – Jeff Zeitlin Jun 27 '17 at 11:21
  • 8
    There is a driver for Linux that provides access to compressed FAT filesystems (Doublespace, Drivespace, Stacker). I imagine someone with time and technical understanding could review the source code and determine exactly how DriveSpace differs from DoubleSpace: http://cmp.felk.cvut.cz/~pisa/dmsdos/ – misha256 Jul 06 '17 at 02:02
  • @misha256 Thanks for the link - I might have a go at working it out. – wizzwizz4 Jul 06 '17 at 06:36

2 Answers2

9

It appears that there are several versions of both DoubleSpace and DriveSpace. Information about each version as I find get it will be posted in this answer.

DoubleSpace

DoubleSpace uses MRCI, which uses "a variant of Lempel-Ziv encoding".[2] A non-technical explanation of the DoubleSpace compression algorithm:

DoubleSpace first identifies the repeated sequences, and then writes them as <offset, length>. Offset is the number of bytes to the left of where the match starts [...] For example:

The rain in Spain falls mainly on the plain.

This sentence would be compressed as follows:

The rain <3,3>Sp<9,4>falls m<11,3>ly on <34,37>pl<15,3>.

The key is to analyze the frequency of occurrence of the offset and length values, and then to choose very short encoding [sic] for the most common values. – Source

The DoubleSpace naming convention for CVFs (Compressed Volume Files) is DBLSPACE.nnn where nnn is a three-digit, right-aligned (0-padded) number. If the DoubleSpace CVF was created from uncompressed data the extension will be 000; if the CVF was created empty the extension will be another number.[2]

Windows 95 "DriveSpace"

This program, whilst producing files in the DoubleSpace format, seems to be having an identity crisis:

I still refer to it as 'win95 doublespace' though M$ call it 'drivespace'. – Source

It supports compressed drives of up to 512MB[4] with a cluster size of 8KB.[1/FAQ]

DriveSpace

DriveSpace 3

This program supports compressed drives of up to 2GB with a cluster size of 512KB.[1/FAQ] It uses the SQ-0-0 compression scheme.[1/FAQ]


Thanks to misha256 for the link to dmsdos. Thanks to Tommy for the link to PC Mag. Thanks to Tommy (here) and Jules (here) for identifying the DoubleSpace compression algorithm. Thanks to manassehkatz (here), Tommy (here) and redsPL (here) for pointing out various errors.

user
  • 5,286
  • 2
  • 26
  • 43
wizzwizz4
  • 18,543
  • 10
  • 78
  • 144
  • "It supports compressed drives of up to 512KB" - that's floppy disk size. Maybe 512MB? – manassehkatz-Moving 2 Codidact Jul 07 '17 at 21:58
  • 2
    So Doublespace sounds exactly like LZ77 plus probably something like Huffman on the output tokens of that? – Tommy Jul 07 '17 at 23:13
  • Also, I think the author of the FAQ you link to is in error. A 1996 edition of PC Magazine goes with the much more likely 512mb figure in response to a reader clearly running up against a 512mb limit: https://books.google.co.uk/books?id=9cpU5uYCzq4C&pg=PA248&lpg=PA248&dq=doublespace+512&source=bl&ots=u9AKnn7mEI&sig=9baGZsXb4yU0nbBkPukEgvU-GVw&hl=en&sa=X&ved=0ahUKEwjztKrepvjUAhUBCz4KHYyxCE8Q6AEIMjAD#v=onepage&q=doublespace%20512&f=false – Tommy Jul 07 '17 at 23:19
  • 1
    @Tommy - this Microsoft knowledge base article describes doublespace as using a variant of Lempel-Ziv compression, so yes, exactly that. – Jules Jul 08 '17 at 07:14
  • AFAIK, it's 512MB, not 512KB.. – redsPL Jul 08 '17 at 08:55
  • Quite frankly, even 512 MB sounds small, even for the time. But then again you do discuss DriveSpace 3... – user Jul 08 '17 at 12:48
  • @MichaelKjörling Thanks for the edit. You can always create multiple CVFs if you want more space - the reason for the smallness is limitations of the file system. – wizzwizz4 Jul 08 '17 at 12:50
  • @Tommy, Huffman is not likely due to its relatively expensive nature and the need to deal with the tree. LZS is well documented and it was effectively LZSS with a specific combination of variable length codes for the offset and match length. The use of variable length code chosen to reasonably well match the average distribution of match lengths could be the poor man's Huffman. I was unable to find any information on the compression algorithm in DriveSpace/DoubleSpace, but given how widely variants of LZS were mimicked, I'd guess that Microsoft's algorithm would be also very, very similar. – introspec Mar 20 '18 at 23:08
8

MS-DOS 6.0 and 6.20 shipped with DoubleSpace. MS-DOS 6.21 removed it due to the Stac lawsuit, and MS-DOS 6.22 replaced it with DriveSpace with an incompatible algorithm and format. Soon after MS-DOS 6.22 was released, MS signed a settlement with Stac and Windows 95 shipped with an unified driver that supported both. And yes, they decided to default to DoubleSpace format with Windows 95 for new volumes: https://jeffpar.github.io/kbarchive/kb/123/Q123751/

Yuhong Bao
  • 447
  • 4
  • 8
  • 2
    While this is pertinent information, it doesn't tell us what the differences actually were. – Chenmunka Mar 20 '18 at 09:14
  • 1
    It would be much more useful if you described the differences between the two, not just said "an incompatible format." At present this does not answer the question. – wizzwizz4 Mar 20 '18 at 16:31
  • The difference is only the file format. Nothing else was changed I believe. – Yuhong Bao Mar 20 '18 at 18:19