Windows 3.x
Unter der BezeichnungWindows 3.xwerden die Vorgänger der späterenWindows-BetriebssystemedesSoftwareunternehmensMicrosoftfür die16-Bit-und32-Bit-x86-Architekturin den 3.x-Versionenzusammengefasst.[1]Windows war bis Version 3.x eingrafischer Aufsatzfür einPC-kompatibles DOSwieMS-DOS.
Windows 3.x | |
---|---|
Entwickler | Microsoft |
Lizenz(en) | MicrosoftEULA(Closed Source) |
Erstveröff. | 22. Mai 1990 |
Akt.Version | 3.0 bis 3.2 |
Kernel | PC-kompatibles DOS Windows-Kernel |
Abstammung | Windows 1.0–2.11 ↳ Windows3.x |
Chronik | Windows 3.0(1990) Windows 3.00a(1990) Windows 3.0 mit Multimedia Extensions 1.0(1991) Windows für Pen Computing 1.0(1992) Windows 3.1(1992) Windows für Workgroups 3.1(1992) Windows für Workgroups 3.11(1993) Windows 3.11(1994) Windows 3.2(1994) |
Sonstiges | Entwicklung eingestellt |
www.microsoft.com |
Versionen
BearbeitenDie bekanntesten Windows-3.x-Versionen sind:
- Windows 3.0(1990)
- Windows 3.1(1992) und3.11(1994)
- Windows für Workgroups 3.1(1992) und3.11(1993)
Es gab noch weitere Versionen, die jedoch keine ähnlich große Verbreitung fanden. Aufeingebetteten SystemenwieKassensystemenoder Ticketautomaten kam Windows 3.x noch fast 20 Jahre nach seiner Markteinführung zum Einsatz, Lizenzen dafür verkaufte Microsoft noch bis Ende Oktober 2008.[1]
Technik
BearbeitenWindows 3.x ermöglichte den Betrieb von mehreren Windows-Anwendungen perkooperativem Multitaskingin einer grafischen Oberfläche und setzte noch ein laufendes MS-DOS (oder kompatibel, also auchz. B.PC DOSoderDR DOS) voraus, auf dem es lief. In diesem Bezug war es nicht anders als die älteren Windows-Versionen bisWindows 2.x. Durch die Verwendung des Protected Mode für die BetriebsmodiStandard ModeundEnhanced Modewar Windows bereits mehr als ein grafischer Aufsatz für das Betriebssystem MS-DOS, wenn es auf einem Prozessor lief, der den Protected Mode ermöglichte. Ein großer Unterschied von DOS- zu Windows-Anwendungen ist, dass Windows-Anwendungen geräteunabhängig sind, da die Windows-API für diese als Abstraktionsschicht dient und alle Hardwarezugriffe über den Windowskernel und dessen Treiber laufen. Dies ermöglicht auch die Verwendung von virtuellem Speicher (nur Enhanced Mode), ohne dass die Windows-Anwendung extra umgeschrieben werden muss, da aus Sicht der Windows-Anwendung kein Unterschied zwischen diesem und dem normalen Speicher besteht. Alle Kernel von Windows 3.x sind nur in 16 Bit, das gilt auch für den 386er Kernel, der 32-Bit-Windows-Anwendungen im Enhanced Mode ausführen kann. 32-Bit-Kernel gab es in Windows erst ab Windows NT und Windows 95.
Windows 3.x verwendet selbst keinenExpanded Memory(EMS) mehr, es können aber DOS-Anwendungen perBank SwitchingExpanded Memory zur Verfügung gestellt werden. Im Standard Mode ist dies nur möglich, wenn der EMS Speicher von einerSpeichererweiterungskarte(memory expander) kommt. Als EMS-Speicher reservierter normaler Speicher oberhalb der 1-MiB-Grenze kann dafür nicht verwendet werden. Dies gilt für alle Betriebsmodi.[2]Mehr dazu, siehe weiter unten.
Mit der Windows-3.x-Reihe begann der Übergang von reinen 16-Bit-Real-Mode-Windows-Programmen zu 16-Bit- und 32-Bit-Protected-Mode-Windows-Programmen. Dazu gab es ab Windows 3.0 drei verschiedene Betriebsmodi, die abhängig von der CPU beim Start von Windows automatisch den entsprechenden Windows Kernel aufriefen[3].
Die Win16 Architektur von Windows 3.x verwendet sowohl im Real Mode als auch im Standard Mode, sowie der Standard Mode Instanz im Enhanced Mode,segmentierten Speicher,weshalb es Segmentgrößen von 64 KiB gibt. Lediglich für Win32s Anwendungen, die einen 386er erfordern, ist das Speichermodell flach. Um die Input/Output Lasten durch den Wechsel und das Laden von anderen Segmenten gering zu halten, wurde Segment Tuning betrieben, was bedeutet, dass Funktionen die miteinander zusammenhängen darauf optimiert wurden, in diesem einen Segment vorzukommen.[4]
Für die Reservierung von zusammenhängendendem Speicher größer als 64 KiB wurde unter 16 Bit Windows 3.x für 16 Bit Windows Programme im Real Mode auf die Segmentadresse der Wert 0x1000 hinzuaddiert und im Standard Mode der Wert 8 auf denSelector.Hierfür stand die Variable__AHINCR
zur Verfügung.[5]
Betriebsmodi
BearbeitenReal Mode
BearbeitenDieser Modus steht nur unterWindows 3.0zur Verfügung und ist für den8086-Prozessor gedacht. Alle Windows-Programme arbeiten in diesem Modus im Real Mode und sind daher auf 16-Bit-Code und den Adressbereich von 1 MiB begrenzt.
Auf späteren CPU-Generationen kann dieser Betriebsmodus durch das Starten von Windows 3.0 mit dem Aufrufwin /r
erzwungen werden. DOS-Anwendungen können imReal Modeausschließlich nur im Vollbildmodus ausgeführt werden.
Da der Real Mode nur in Windows 3.0 zur Verfügung stand und aufgrund des knappen Speichers imkonventionellen Speicherbereichnur wenige 16-Bit-Windows-Real-Mode-Programme entwickelt wurden, spielte er im weiteren Verlauf praktisch keine Rolle mehr.
Standard Mode
BearbeitenIm Standard Mode läuft Windows im Protected Mode, was es Windows-Programmen ermöglicht, mehr als 1 MiB RAM durch dieExtended Memory Specification(XMS) und den XMS-Treiber (z. B.HIMEM.SYS
) zu adressieren.[6]Für den Standard Mode ist ein80286-Prozessor oder besser erforderlich. Wie beim Real Mode können im Standard Mode nur 16-Bit-Windows-Programme ausgeführt werden.
ImStandard Modeist die Verwendung von EMS Memory aus Extended Memory (XMS) für DOS-Anwendungen nicht möglich, es können aber Memory-Expander-Karten verwendet werden, die EMS Memory für DOS-Anwendungen zur Verfügung stellen können.
DOS-Anwendungen können imStandard Modenur im Vollbildmodus ausgeführt werden.
AbWindows for Workgroupsist dieser Modus nicht mehr verfügbar.
Auf späteren CPU-Generationen kann dieser Betriebsmodus durch das Starten von Windows mit dem Aufrufwin /s
erzwungen werden.
Enhanced Mode (Erweiterter Modus)
BearbeitenDer Enhanced Mode ist eine Erweiterung des Standard Mode. Für den Enhanced Mode ist ein 386er Prozessor die Mindestvoraussetzung. In diesem Modus ist die Ausführung von sowohl 16-Bit- als auch erstmals 32-Bit-Windows-Programmen möglich. Für 32-Bit-Windows-Anwendungen muss dieWin32s-API nachinstalliert werden. Im Enhanced Mode kann zusätzlich zum Extended Memory (XMS) auch Speicherplatz auf der Festplatte als virtueller Speicher, einer sogenanntenSwap-Datei, verwendet werden. Dies ist nur im Enhanced Mode möglich.
ImEnhanced Modeläuft eine einzige Instanz des Standard Mode von Windows in einer virtualisierten Umgebung derVirtual-8086-Mode-Einheitder CPU, die ab dem 80386 verfügbar ist. Darin werden alle Win16 und Win32s Anwendungen ausgeführt.[7][8]
Für die DOS-Anwendungen fungiert der Kernel alsDPMI-Host, womit mehrere DOS-Anwendungen unter Verwendung desVirtual 8086 Modedes 80386 Prozessors in ihrer eigenen VM-Instanz parallel perpräemptivem Multitaskingablaufen können. Wenn die DOS-Anwendung mit DPMI-Support programmiert wurde, kann sie auch mehr als 640 KiBkonventionellen Speichernutzen. Im Enhanced Mode können DOS-Anwendungen auch im grafischen Modus in einem Fenster ausgeführt werden, der Wechsel zum Vollbildmodus ist nicht nötig.
Im Erweiterten Modus läuft als Übergeordnete Instanz der Hypervisor, der alle diese virtuellen Maschinen, also die eine Standard Mode VM-Instanz für die Win16/32s Anwendungen, als auch alle anderen VM-Instanzen für die DOS-Anwendungen, verwaltet.[9] Im Enhanced Mode sind 32-Bit-Windows-Gerätetreibermöglich, obwohl Windows 3.x auch weiterhin die 16-Bit-Treiber von DOS verwenden kann.
Funktionsmatrix
BearbeitenReal Mode | Standard mode | Enhanced Mode | ||
---|---|---|---|---|
Windows-Kernel | ||||
8086-KernelKERNEL.EXE
|
Ja | Nein | Nein | |
286-KernelKRNL286.EXE
|
Nein | Ja | Nein | |
386-KernelKRNL386.EXE
|
Nein | Ja1 | Ja | |
UnterstützteProzessoren | ||||
8086/8088und80186 | Ja | Nein | Nein | |
80286 | Ja | Ja | Nein | |
80386oder besser | Ja8 | Ja8 | Ja | |
Versionen | ||||
Windows 3.0 | Ja | Ja | Ja | |
Windows 3.1 | Nein | Ja | Ja | |
Windows 3.11 | Nein | Ja | Ja | |
Windows 3.2 | Nein | Ja | Ja | |
Windows für Workgroups 3.1 | Nein | Ja | Ja | |
Windows für Workgroups 3.11 | Nein | Nein | Ja | |
Funktionen | ||||
Windows läuft imProtected Mode | Nein | Ja | Ja | |
Virtueller Speichermit „Swap “-Auslagerungsdatei2 | Nein | Nein | Ja | |
Multitasking | präemptivzwischen DOS-Anwendungen | Nein | Nein | Ja |
kooperativzwischen Windows-Anwendungen3 | Ja | Ja | Ja | |
kompatibel mit | Windows-1.x- und2.x-Programmen | Ja | Nein | Nein |
VCPI-fähigen DOS-Programmen | ?4 | Nein | Nein | |
32-Bit-Windows-Anwendungen viaWin32s5 | Nein | Nein | Ja | |
DPMI-Unterstützung für DOS-Programme | Nein | Ja | Ja | |
DOS-Umgebungen | nur eine gleichzeitig | Ja | Ja | Nein |
mehrere gleichzeitig | Nein | Nein | Ja | |
DOS-Anwendungen imFenster | Nein | Nein | Ja | |
Speicher für DOS-Anwendungen | Expanded Memory(EMS) per EMS-Speicherkarte | Ja | Ja | Ja |
Expanded Memory(EMS) imExtended Memory(XMS) | Ja6 | Nein7 | Ja | |
Extended Memory(XMS) perDPMI | Nein | ? | Ja |
win /s
imStandard Modegestartet werden./R
im Real Mode und mit dem Parameter/S
im Standard Mode starten kann, wird auf einem 386er und später immer der 386 Kernel386KRNL.EXE
verwendet.[11]Bedeutung
BearbeitenMit Windows 3.0 und 3.1 gelang Microsoft der Durchbruch auf dem Markt fürgrafischePC-Betriebssysteme.[12][13]Die eigentliche Bedeutung steckte jedoch in der stabilenProgrammierschnittstelle(englischApplication Programming Interface,kurz API), die in ihrer 16-Bit-Ausprägung auchWin16genannt wurde. 16-Bit-Windows-Programme aus Windows 2.0 funktionierten dabei weiterhin, jedoch nur im Real Mode.
Windows 3.x bereitete den Weg hin zuWindows 9x,das als eigenständiges Betriebssystem den MS-DOS-Unterbau in das Betriebssystem integrierte und die 32-Bit-Funktionen sowohl im 32-Bit-APIWin32als auch bei Kernkomponenten wie dem Speichermanager und Multitasking erweiterte.
Beide Generationen, also Windows 3.x als auch Windows 9x (welches als Windows 4.x entwickelt wurde), waren in der Retrospektive Lückenfüller für das neu entwickelteWindows NT,das ein vollständiges 32-Bit-Betriebssystem war – auf der damaligen Hardware jedoch zu ressourcenhungrig und zu teuer. Erst mitWindows XPgelang Microsoft der vollständige Umstieg auf die mit Windows NT eingeführte neue Technik.
Windows 3.x/9x und Windows NT haben ein ähnliches und in großen Teilen identisches API. Unter Windows 3.x konnte eine abgespeckte Variante derWin32-API nachinstalliert werden,Win32s,währendWin16-Applikationen auch unter Windows-NT-Versionen weiterhin lauffähig waren. Erst in64-Bit-x86-Versionen von Windows, also abWindows XP x64 Edition(2005) bzw.Windows Vistax64(2007), steht dasWin16-API nicht mehr zur Verfügung.
Weblinks
Bearbeiten- The Windows 3.x Showcase.This is a collection of curated Windows 3.x software, meant to show the range of software products available for the 3.x Operating System in the early 1990s. In:Internet Archive. (englisch).
- On memory allocations larger than 64KB on 16-bit Windowsby Raymond Chen (englisch)
Literatur
Bearbeiten- Charles Petzold:Programming Windows 3.0Microsoft Press, 1990,ISBN 1-55615-264-7
- Charles Petzold:Programming Windows 3.1, 3rd EditionMicrosoft Press, 1992,ISBN 1-55615-395-3
- Matt Pietrek:Windows Internals: The Implementation of the Windows Operating EnvironmentAddison-Wesley Publishing Company, 1993,ISBN 0-201-62217-3
- Andrew Schulman, David Maxey, Matt Pietrek:Undocumented Windows: A Programmer's Guide to Reserved Microsoft Windows Api FunctionsAddison-Wesley Publishing Company, 1992,ISBN 0-201-60834-0
Einzelnachweise
Bearbeiten- ↑abManfred Bremmer:Windows 3.x – Microsoft stampft bestes Windows-Release ein.In:Computerwoche.IDG,6. November 2008,abgerufen am 22. Mai 2018.
- ↑Microsoft Product Support Services Application Note (Text File WW0335.txt) WW0335: Memory Management with Windows
- ↑Raymond Chen:For the Nitpickers: Enhanced-mode Windows 3.0 didn’t exactly run a copy of standard-mode Windows inside the virtual machine.In:The Old New Thing (Blog).8. Februar 2013,abgerufen am 23. November 2021(englisch).
- ↑https://devblogs.microsoft.com/oldnewthing/20131008-00/?p=3003I wrote FAT on an airplane, for heaven’s sake, Raymond Chen
- ↑https://devblogs.microsoft.com/oldnewthing/20171113-00/?p=97386On memory allocations larger than 64KB on 16-bit Windows von Raymond Chen (englisch)
- ↑Microsoft Product Support Services Application Note (Text File WW0335.txt) WW0335: Memory Management with Windows
- ↑https://devblogs.microsoft.com/oldnewthing/20100517-00/?p=14013If Windows 3.11 required a 32-bit processor, why was it called a 16-bit operating system?
- ↑https://devblogs.microsoft.com/oldnewthing/20130208-00/?p=5303For the Nitpickers: Enhanced-mode Windows 3.0 didn’t exactly run a copy of standard-mode Windows inside the virtual machineab dem 7. Absatz
- ↑https://devblogs.microsoft.com/oldnewthing/20100517-00/?p=14013If Windows 3.11 required a 32-bit processor, why was it called a 16-bit operating system?
- ↑Microsoft Dokument WW0335.TXT Abschnitt "Standard Mode and Expanded Memory"
- ↑https://devblogs.microsoft.com/oldnewthing/20130208-00/?p=5303For the Nitpickers: Enhanced-mode Windows 3.0 didn’t exactly run a copy of standard-mode Windows inside the virtual machine9. Absatz
- ↑Detlef Borchers:30 Jahre Windows: Der lange Weg zum Durchbruch.In:Heise online.20. November 2015.Abgerufen am 30. Juli 2022.
- ↑Peter Stelzel-Morawietz:35 Jahre Windows: von Version 1.0 zu 10.In:PC-Welt.24. November 2020,abgerufen am 30. Juli 2022.