Zum Inhalt springen

DOS-Extender

aus Wikipedia, der freien Enzyklopädie

Als DOS-Extender bezeichnet man Programme für MS-DOS bzw. dazu kompatibles DOS (wie PC DOS oder DR-DOS), die nicht im Real Mode, sondern im Protected Mode laufen. Dieser steht bei der x86-Architektur ab dem Intel 80286 (16-Bit-Protected-Mode) und 80386 (zusätzlich 32-Bit-Protected-Mode) neben dem bisherigen Real Mode zur Verfügung und erlaubt linearen Speicherzugriff auf den erweiterten Speicher, der unter DOS ursprünglich nicht zur Verfügung stand.[1]

Der bekannteste Standard, der sich für DOS-Extender Anfang der 1990er Jahre etabliert hatte, ist DPMI.

In 86-DOS, das ab 1981 als PC DOS mit dem IBM PC, Modell 5150, der die PC-Plattform begründet, und mit MS-DOS vermarktet wurde, steht nur 1 MiB Arbeitsspeicher zur Verfügung. Dieses Limit ist auf den im IBM PC verwendeten 8088-Prozessor zurückzuführen, einer 16-Bit-Architektur mit 8-Bit-Adressbus. Dieser Speicher wurde auf 640 KiB für Betriebssystem und Programme und 384 KiB für den Zugriff auf Geräte wie das BIOS oder den Grafikspeicher aufgeteilt. Dadurch steht unter DOS nur 640 KiB „Konventioneller Speicher“ zur Verfügung.[2]

Mit dem IBM PC/AT verwendete IBM Ende 1984 erstmals einen 80286-Prozessor, bei dem Intel mit dem Protected Mode einen zusätzlichen Betriebsmodus hinzugefügt hatte. Da DOS jedoch für den 8086/8088 geschrieben worden war, lief es auch auf dem PC/AT im retronym mit Real Mode bezeichneten Modus des 8086 und machte vom neuen Betriebsmodus keinen Gebrauch. Im Protected Mode ist der Speicher linear adressierbar, beim 80286 16 MiB. Bereits im darauffolgende Jahr, 1985, stellte Intel mit dem 80386 den ersten 32-Bit-x86-Prozessor vor, dessen Protected Mode im 32-Bit-Modus bis zu 4 GiB Arbeitsspeicher linear adressieren kann.

Da dieser „Erweiterte Speicher“ für Anwendungsprogramme unter DOS brach lag, wurden Ende der 1980er Jahre die ersten „MS-DOS-Extender“ angeboten, die einzelnen DOS-Programmen den Protected Mode exklusiv zugänglich machten.[3]

Da DOS ein 16-Bit-Betriebssystem ist, das im Real Mode läuft, muss ein Programm ebenfalls im Real Mode laufen, um die DOS-Funktionen ansprechen zu können. Um also ein Program verwenden zu können, das im Protected Mode läuft, müsste dieses entweder alle Funktionen, die eigentlich vom Betriebssystem zur Verfügung gestellt werden, selbst implementieren, oder für die DOS-Funktionen in den Real Mode zurück wechseln. Allerdings hatte Intel beim 80286 keine Möglichkeit dafür vorgesehen: wurde der Prozessor in den Protected Mode versetzt, war der Real Mode nicht mehr erreichbar – außer über einen Prozessor-Reset. Diese Aufgabe übernimmt der DOS-Extender zur Laufzeit des Programms: der Extender stellt die Mechanismen bereit, kontrolliert in den Protected Mode zu wechseln, wo das DOS-Programm von der Beschränkung auf den konventionelle Speicher befreit Programmcode und Daten verarbeiten kann, und bei DOS-Funktionsaufrufen ebenso kontrolliert wieder in den Real Mode zurück zu wechseln.[4]

Dadurch sind Programme möglich, die mehr Speicher nutzen können, als DOS eigentlich bereitstellen kann, ohne gleichzeitig ein von sich aus größeres Betriebssystem zu benötigen.[5]

Viele Compiler für DOS bieten die Option, Protected-Mode-Programme zu erzeugen. Damit die Programme unter DOS ausführbar sind, muss ein DOS-Extender mitgeliefert werden.[6]

Standardisierung

[Bearbeiten | Quelltext bearbeiten]

In der zweiten Hälfte der 1980er Jahre entstanden unterschiedliche, zueinander nicht kompatible DOS-Extender. Ein erster erfolgreicher Versuch einer Standardisierung ist das Virtual Control Program Interface, kurz VCPI, das von Phar Lap und Quarterdeck ab 1987 entwickelt wurde. VCPI setzt jedoch einen i386 voraus und ist mit dem 80286 nicht kompatibel.

Beispiele für DOS-Extender vor VCPI:

  • 286|DOS-Extender und 386|DOS-Extender von Phar Lap Software[1][7]
  • DOS/16M von Rational Systems[1][7] (später Tenberry Software; weiterentwickelt zu DOS/4G und DOS/4GW)[8]
  • OS/286 und OS/386 von A. I. Architects[1]
  • X-AM von Intelligent Graphics Corp. (IGC)[7]

Die DOS-Extender zu dieser Zeit liefen exklusiv und waren mit (kooperativen) Multitasking-Erweiterungen wie DESQview und Windows 3.x nur eingeschränkt kompatibel.[9] Die Zusammenarbeit von Quarterdeck mit Phar Lap schuf zwar den VCPI-Standard, mit dem DESQview voll kompatibel war, aber in Windows 3.0 wurde für den 80386 ein neuer Betriebsmodus eingeführt: der „386 Erweiterte Modus“ bzw. „Enhanced Mode“. Anders als beim 80286 bietet der 80386 einen Virtual 86 Mode, in dem Windows DOS-Programme parallel und mit eigenem Adressraum zur Ausführung bringen kann. Das erlaubt transparentes Multitasking für DOS-Programme. Gleichzeitig gab es zu dieser Zeit bereits zahlreiche Protected-Mode-DOS-Programme, die in diesem Modus nicht funktionieren.

Obwohl Windows 3.0 im 8086-kompatiblen Real Mode und im 80286-kompatiblen Standard Mode, die beide auch weiterhin auf dem 80386 funktionieren, mit den bisherigen DOS-Extendern kompatibel bleibt, war Microsoft klar, dass ein neuer und auch mit dem Enhanced Mode kompatibler DOS-Extender entwickelt werden müsste, damit der Vorteil des 80386 – dessen Virtual 86 Mode – in der Realität nicht zu einem Nachteil werden würde. Das DOS Protected Mode Interface (DPMI) wurde daher nicht nur in Windows 3.0 und OS/2 2.0 integriert, sondern auch als freie Spezifikation veröffentlicht. Da die Hersteller der DOS-Extender DPMI übernahmen, konnten die Entwickler existierender Protected-Mode-DOS-Programme, die diese DOS-Extender nutzten, ihre Produkte von VCPI- in DPMI-kompatible Programme weiterentwickeln, die somit auch unter Windows und OS/2 die volle Stärke des 80386 und nachfolgender IA-32-Prozessoren wie dem 80486 nutzen konnten.

DPMI wurde der bekanntesten Standard für DOS-Extender und in den 1990er Jahren zum Industriestandard.

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. a b c d Douglas Barney: Extender appeal; Vendors add support in light of OS/2 letdown. In: Computerworld. Band 13, Nr. 19, 8. Mai 1989, ISSN 0010-4841, S. 43, 59 (englisch, eingeschränkte Vorschau in der Google-Buchsuche).
  2. Guido Weckwerth: Der Dornröschenschlaf des 80286/80386 – Grundlagen zum Protected Mode. In: DOS International. Nr. 5/1990. DMV-Verlag, Mai 1990, ISSN 0933-1557, S. 52 ff. „Bestimmt haben Sie schon einmal davon gehört, daß die 80286- und 80386-Prozessoren mehr als 1 MByte Speicher adressieren können. MS-DOS bietet dagegen höchstens 640 KByte Platz für Daten und Programme. … Als der IBM-PC vor ungefähr zehn Jahren auf den Markt kam, war Spei­cher noch sehr teuer. Gerätekonfigu­rationen mit 1 MByte RAM oder mehr waren aus preislichen Gründen nicht denkbar. Da der ursprünglich verfüg­bare Prozessor Intel 8088 oder 8086 ohnehin den für damalige Verhältnis­se riesigen Adreßraum von 1 MByte besaß, wurde das Betriebssystem MS-DOS nicht für größere Adreßräume ausgelegt. Heutige Versionen können diese Grenze aus Kompatibilitäts­gründen nicht oder, wie Sie später noch sehen werden, nur sehr schwer überwinden.“
  3. Guido Weckwerth: Der Dornröschenschlaf des 80286/80386 – Grundlagen zum Protected Mode. In: DOS International. Nr. 5/1990. DMV-Verlag, Mai 1990, ISSN 0933-1557, S. 56, Multitasking-Betriebssysteme entfalten die volle Leistung des Prozessors: „Seit einiger Zeit drängen Programme auf den Markt, die als ›MS-DOS-Extender‹ geläufig sind. Dabei wird un­ter MS-DOS der Protected Mode des Prozessors genutzt. Die auszuführen­ den Routinen müssen lediglich für den Protected Mode compiliert wer­den. Diese Aufgabe übernehmen eini­ge handelsübliche Compiler, die wahlweise den Code für den Real Mode oder den Protected Mode er­zeugen können.“
  4. Douglas Barney: Extender appeal; Vendors add support in light of OS/2 letdown. In: Computerworld. Band 13, Nr. 19, 8. Mai 1989, ISSN 0010-4841, S. 43, 59 (englisch, eingeschränkte Vorschau in der Google-Buchsuche): “DOS extenders essentially allow MS-DOS applications and data to reside in so-called high, or protected-mode, memory, of which 16M bytes are addressable by the Intel Corp. 80286 chip. The applications revert to low, or real-mode, memory to use such essential MS-DOS functions as I/O.”
  5. Douglas Barney: Extender appeal; Vendors add support in light of OS/2 letdown. In: Computerworld. Band 13, Nr. 19, 8. Mai 1989, ISSN 0010-4841, S. 43, 59 (englisch, eingeschränkte Vorschau in der Google-Buchsuche): “Also, DOS extenders require less memory than large operating systems such as OS/2 and Unix.”
  6. dm: Gesprengte Ketten – Metaware High C 386. In: DOS International. Nr. 10/1990. DMV-Verlag, Oktober 1990, ISSN 0933-1557, S. 66 ff. „Bisher kränkelte die Leistungsfähigkeit von MS-DOS-Programmen am mit 640 KByte knapp bemessenen Arbeitsspeicher. Auch wenn im System mehrere MByte installiert sind, läßt sich dieser Zusatz­speicher nur sehr unvollkommen nutzen. Eine Lösung dieses Problems sind leistungsfähige Compiler wie der speziell für 80386-Prozessoren entwickelte High-C-Compiler sowie DOS-Extender, die die Speichergrenzen aufheben.“
  7. a b c Ray Duncan: Power Programming, Part 1 of a series on programming the 80386. In: PC Magazine. Band 8, Nr. 16. Ziff Davis, 26. September 1989, S. 362 (englisch, eingeschränkte Vorschau in der Google-Buchsuche): “I'm currently aware of three sources for 80386 DOS extenders: IGC, A. I. Architects, and Phar Lap Software. … IGC’s DOS extender is called X-AM, and it appears to be an incidental offshoot of IGC’s VM/386 operating-system project. Its documentation and its debugger have been criticized (elsewhere) as being the weakest among the three available DOS extenders. … it has not been updated for compatibility with the Phar Lap/Quarterdeck Virtual Control Program Interface (VCPI), which allows 80386-aware programs to work together cooperatively.”
  8. Unofficial DOS/4G(W) documentation. In: rgmroman.narod.ru. 2005, abgerufen am 29. Dezember 2025 (englisch): „DOS/4G, DOS/4GW, DOS/4GW Professional and DOS/16M are dos extenders from Tenberry Software (old name Rational Systems). … DOS/16M is a 16-bit dos extender, DOS/4G(W) based on it.“
  9. Andrew Schulman: Lab Notes – Windows 3.0: All That Memory, All Those Modes; The VCPI Backlog. In: PC Magazine. Band 10, Nr. 11. Ziff Davis, 11. Juni 1991, S. 352 (englisch, eingeschränkte Vorschau in der Google-Buchsuche): “Until DPMI was incorporated into Windows 3.0, this something special was VCPI. … DPMI is in many ways a vast improvement over VCPI, but until (and if) the world moves to DPMI, there is an enormous backlog of applications that need VCPI to let you run them from Virtual 86 mode. VCPI is much easier for vendors to implement than DPMI, so there are many existing VCPI-compatible applications. In [Windows] Enhanced mode, DOS programs start off in Virtual 86 mode, yet VCPI is not provided. If you've ever tried to run AutoCAD/386 is Enhanced mode, you've encountered this problem.”