mini|rechts|Dialogfeld von DriveSpace unter Windows 95 (A-Version) vor der Komprimierung des Systemlaufwerks

DriveSpace (vormals DoubleSpace) ist ein Systemprogramm unter MS-DOS, Version 6.0/6.2 (unter dem Namen DoubleSpace) und ab Version 6.22, sowie unter höheren Versionen auch integraler Bestandteil von Windows 9x ab Version 95, mit dem ein FAT12- (für Disketten) oder FAT16-formatierter Datenträger (für Festplatten) komprimiert werden kann. Das Komprimieren/Dekomprimieren wird zur Laufzeit automatisch im Hintergrund (online) ausgeführt.Online (engl. Adjektiv, steht lt. Babylon Translator für: „direkt zum Computer angeschlossen, sofort nutzbar“) bezieht sich hier auf einen automatisch ablaufenden Hintergrundprozess, siehe auch Beschreibungstexte z. B. von oder Das Systemprogramm wurde in DOS-Version 6.0/6.2 als DoubleSpace integriert, aufgrund gerichtlicher Anordnung nach einem Patentstreit in Version 6.21 wieder entfernt und danach in Version 6.22 unter dem Namen DriveSpace neu implementiert. Für die Windowsversionen ab Windows 95 kam eine grafische Bedienoberfläche für die Verwaltung hinzu sowie ein 32-Bit-Treiber.

Hintergrund DriveSpace/DoubleSpace ist ein später Vertreter des kurzlebigen Marktes der Online-Komprimierungsprogramme. Anfang der 1990er-Jahre konnte die Entwicklung der Festplattengrößen nicht mit dem stetig wachsenden Bedarf nach Festplattenplatz mithalten, der durch neue Anwendungen wie Windows noch verstärkt wurde. Größere Festplatten waren nahezu unerschwinglich und so war freier Speicherplatz auf der Festplatte ein großes Problem. Die damals schon verbreiteten Archivierungsprogramme wie PKZIP hatten den großen Nachteil, dass die Dateien erst manuell entpackt werden mussten, bevor mit ihnen gearbeitet werden konnte, und umgekehrt die Dateien nach dem Speichern wieder gepackt werden mussten. Demgegenüber haben Online-Komprimierungsprogramme den Vorteil, dass der Komprimierungs- und Dekomprimierungsprozess transparent im Hintergrund stattfinden und der Benutzer wie gewohnt mit seinen Dateien arbeiten kann.

Bis zur Veröffentlichung des 80386 von Intel waren Mikroprozessoren noch zu langsam, um diese Form der Komprimierung im Hintergrund durchzuführen, es gab allerdings einen bescheidenen Markt für Hardware-Steckkarten, die eine solche Komprimierung der Daten auf der Festplatte durchführen konnten. Im Jahr 1990 veröffentlichte das Unternehmen Stac Electronics, das bereits zuvor mit Hardware-Steckkarten auf diesem Markt tätig war, sein Komprimierungsprogramm Stacker, das sofort zu einem großen Erfolg wurde. Schon bald erschienen zahlreiche Konkurrenzprodukte, die an den Erfolg von Stacker anzuknüpfen versuchten, zu den bekanntesten ihrer Zeit zählten SuperStor des Unternehmens AddStor und DoubleDisk des Unternehmens Vertisoft. Zwar mussten alle diese Anwendungen separat erworben werden, der Preis für diese Anwendungen lag allerdings weit unter dem Preis für eine Festplatte mit vergleichbarer Speicherkapazität.

Allerdings enthielt schon DR DOS 6.0 aus dem Jahr 1991 eine lizenzierte Version von SuperStor im Lieferumfang. Microsoft wollte nun nachziehen und ebenfalls eine Online-Komprimierung mit seinem Betriebssystem MS-DOS bündeln. Mit der Veröffentlichung von DoubleSpace als Bestandteil von MS-DOS im Jahr 1993 gelang dann der Durchbruch auf dem Massenmarkt.

Patentstreitigkeit mit Stac Electronics Die Veröffentlichung von DoubleSpace sollte allerdings in einem rechtlichen Desaster für Microsoft enden.

Im Jahr 1991 trat Microsoft in Verhandlungen mit Stac Electronics ein, um das Produkt Stacker zu lizenzieren und mit MS-DOS mitzuliefern. Die Verhandlungen scheiterten jedoch, weil Microsoft sich weigerte, einen finanziellen Ausgleich an Stac Electronics für die wegfallenden Einnahmen aus dem Verkauf von Stacker zu leisten.Stac Electronics v Microsoft Corporation Stattdessen lizenzierte Microsoft das Produkt DoubleDisk, änderte dabei jedoch den Kompressionsalgorithmus so ab, dass er dem von Stacker entsprach.

Als Stac Electronics davon erfuhr, erhob das Unternehmen Klage gegen Microsoft, weil das Programm DoubleSpace zwei Patente von Stac Electronics verletze. Microsoft antwortete mit einer Widerklage, da das Programm Stacker in seiner neuesten Version von einer undokumentierten Schnittstelle in MS-DOS 6.0 Gebrauch mache und somit eine Verletzung von Geschäftsgeheimnissen (trade secret) vorliege. Am 23. Februar 1994 gaben die Richter Stac Electronics Recht und sprachen dem Unternehmen eine Entschädigung in Höhe von 120 Millionen US-Dollar (5,50 US-Dollar pro verkaufter Kopie von MS-DOS 6.0) zu. Das Gericht gab Microsoft ebenfalls Recht und sprach dem Unternehmen seinerseits eine Entschädigung in Höhe von 13,6 Millionen US-Dollar zu.Microsoft Loses Patent Suit - Associated Press, 23. Februar 1994 Noch bevor Microsoft gegen dieses Urteil in Berufung gehen konnte, erwirkte Stac Electronics eine einstweilige Verfügung, die den Verkauf von MS-DOS 6.2, das ebenfalls DoubleSpace enthielt, mit sofortiger Wirkung untersagte. Microsoft musste daraufhin MS-DOS 6.21 veröffentlichten, eine Version von MS-DOS 6.2 ohne DoubleSpace. Mit MS-DOS 6.22 lieferte Microsoft das neue Programm DriveSpace nach, das durch eine Neuimplementierung des Kompressionsalgorithmus die fraglichen Patente nicht mehr verletzt, aber ansonsten vom Funktionsumfang her identisch zu DoubleSpace ist.

Beide Unternehmen einigten sich schließlich außergerichtlich: Microsoft zahlte nachträglich Lizenzgebühren in Höhe von 43 Millionen US-Dollar für die vergangenen 43 Monate und kaufte Aktien im Wert von 39,9 Millionen US-Dollar. Im Gegenzug ließen beide Seiten ihre Forderungen fallen und verpflichteten sich, sämtliche Patente der Gegenseite für die nächsten fünf Jahre kostenfrei zu lizenzieren.Jay Folberg, Dwight Golann: Lawyer Negotiation: Theory, Practice, and Law. Wolters Kluwer, New York 2016, ISBN 1-4548-7601-8

Funktionsweise Der Programmcode von DriveSpace besteht aus zwei Teilen: dem eigentlichen Komprimierungsalgorithmus und dem Code zum Auslesen des besonderen Dateiformats der komprimierten Laufwerke. DriveSpace nutzt hierbei eine Variante des Lempel-Ziv-Algorithmus. Dabei wird in mehreren Stufen der benötigte Speicherplatz verringert, so dass die Kapazität des Datenträger effektiv steigt. Im günstigsten Fall soll die Platzeinsparung nach Angabe von Microsoft etwa 50 Prozent betragen, praktisch sind es aber meist 30 bis 40 Prozent auf einem Windows-Systemlaufwerk. Die unterschiedliche Komprimierungsrate hängt, wie auch bei ZIP-Dateien, von der Menge des ungenutzten Speichers oder ähnlicher Bytesequenzen innerhalb einer Datei ab. Bei Worddateien im alten Format (*.DOC) ist die Ersparnis besonders hoch, bei vielen Bilddateiformaten (z. B. *.JPG) fällt sie kaum ins Gewicht.

MS-DOS ab Version 6.0 sucht beim Systemstart, nachdem die Systemdateien IO.SYS und MSDOS.SYS geladen sind, aber noch bevor die Datei CONFIG.SYS ausgelesen wird, nach der Datei DRVSPACE.BIN bzw. DBLSPACE.BIN im Stammverzeichnis, die den Programmcode von DriveSpace enthält. Ist sie vorhanden, wird sie in den obersten Teil des konventionellen Speichers geladen und ausgeführt. DriveSpace lädt daraufhin die Konfigurationsdatei DRVSPACE.INI bzw. DBLSPACE.INI und mountet anschließend das in den Images DRVSPACE.000 bzw. DBLSPACE.000 abgelegte komprimierte Laufwerk. Danach wird Kontrolle über das System wieder an MS-DOS übergeben, welches sodann den Systemstart vom nunmehr gemounteten Laufwerk fortsetzt.

Der erst nach diesem Zeitpunkt über die CONFIG.SYS des gemounteten Laufwerks aufgerufene Treiber DRVSPACE.SYS bzw. DBLSPACE.SYS verschiebt den Programmcode in einen entsprechend großen Upper Memory Block, sofern vorhanden, sonst an den Anfang des konventionellen Speichers (das ist beim Systemstart noch nicht möglich, da HIMEM.SYS zu diesem Zeitpunkt noch nicht geladen ist). Ab MS-DOS 6.2 kann der Komprimierungsalgorithmus getrennt davon in die High Memory Area geladen werden, um den Bedarf an entsprechend großen UMBs zu senken.DoubleSpace Overview - Tech Help!

Die Daten des komprimierten Datenträgers werden in einer einzigen Datei DRVSPACE.000 bzw. DBLSPACE.000 gespeichert. Diese wird auch (CVF) genannt. Das Dateiformat dieser Datei ähnelt in vielerlei Hinsicht einem Abbild einer Datenträgerpartition, so enthält die Datei einen BIOS Parameter Block sowie freien Platz für einen Bootsektor.DoubleSpace Compressed Volume File Layout - Tech Help! Das eigentliche Datenträgerformat (auch MDFAT genannt)Microsoft Knowledge Base - Q98407: How DoubleSpace Uses Sector Allocation ist vom FAT16-Format abgeleitet, nutzt aber 8 KB große Cluster, woraus sich eine Beschränkung des komprimierten Laufwerks auf eine Größe von 512 MB ergibt. Ab DriveSpace 3 werden auch 32 KB große Cluster unterstützt, sodass das komprimierte Laufwerk bis zu 2 GB groß sein kann.Microsoft Knowledge Base - Q95533: Largest Possible DoubleSpace Drive Is 512 MB Jeder Cluster wird einzeln komprimiert; kann ein Cluster überhaupt nicht komprimiert werden, wird er in unkomprimiertem Format gespeichert.CVF Region: MDFAT - Tech Help!

Aufgrund der Funktionsweise gibt es verschiedene Programme, die mit komprimierten Laufwerken inkompatibel sind. Hierzu zählen Programme mit einem besonderen Kopierschutz, der nicht auf dem komprimierten Laufwerk abgebildet werden kann (z. B. Lotus 1-2-3), Programme, die eine Auslagerungsdatei auf der Festplatte einrichten (z. B. Windows 3.1) und schließlich Programme, die nicht die standardisierten DOS-Aufrufe zum Zugriff auf die Festplatte nutzen, sondern direkt mittels INT 13 auf die Festplatte zugreifen (z. B. einige Spiele).

Wenn ein komprimierter Datenträger eingerichtet wird, bekommt das Laufwerk, auf dem sich die Datei mit den komprimierten Daten befindet, einen neuen Laufwerksbuchstaben. Den ursprünglichen Laufwerksbuchstaben erhält der komprimierte „virtuelle“ Datenträger, dessen Inhalt in der Datei des unkomprimierten „Hostlaufwerks“ gespeichert ist. Diese Verschiebung von Laufwerksbuchstaben ist nötig, da in der Systemregistrierung und in den Initialisierungsdateien die Dateipfade erhalten bleiben. Dort verbleiben auch mindestens die wichtigsten für den Start des Computers erforderlichen DOS-Dateien, die benötigt werden, bevor der Gerätetreiber für komprimierte Laufwerke geladen wird, sofern es sich bei dem komprimierten Datenträger um das Systemlaufwerk handelt. In allen anderen Fällen lässt sich der Datenträger nahezu vollständig komprimieren. Ein Entkomprimieren des Laufwerks ist aber nur möglich, wenn auf dem ursprünglichen (Host-)Datenträger temporärer Speicherplatz verbleibt.

Standardmäßig reserviert DriveSpace fünf Laufwerksbuchstaben nach C: für sich selbst. H: bildet hierbei das Hostlaufwerk des Systemlaufwerks C:, die weiteren Buchstaben von D: bis G: sind für komprimierte Wechseldatenträger (z. B. Disketten) reserviert. Werden bei der Installation von DriveSpace weitere Laufwerke erkannt (z. B. zusätzliche Partitionen), verschieben sich die Laufwerksbuchstaben dementsprechend nach hinten; bei einer vorhandenen Partition D: wäre etwa I: das Hostlaufwerk für C:.Microsoft Knowledge Base - Q94336: How DoubleSpace Assigns the Host Drive Letter Da der Laufwerksbuchstabe des Hostlaufwerks bei der Installation in der DRVSPACE.INI bzw. DBLSPACE.INI gespeichert wird, ändern nachträglich installierte Laufwerke, die vor DRVSPACE.SYS geladen werden, den Laufwerksbuchstaben des Hostlaufwerks nicht, während DriveSpace weiterhin die für sich reservierten Laufwerksbuchstaben entsprechend nach hinten schiebt.Microsoft Knowledge Base - Q97885: DoubleSpace, Drive Letters, and Installable Devices

Konfiguration mini|DriveSpace 3 unter Windows 98: Der freie Speicher kann frei zwischen Host und komprimiertem Laufwerk verschoben werden