HIMEM.SYS
Vorlage:Monospace ist ein Gerätetreiber, der es DOS-Programmen und -Treibern ermöglicht, Daten im erweiterten Speicherbereich ({{Modul:Vorlage:lang}} Modul:Vorlage:lang:103: attempt to index field 'wikibase' (a nil value)) über die Extended Memory Specification (XMS) zu speichern.<ref>PC-Hardwarebuch, S. 153 Die Seite Vorlage:Webarchiv/styles.css hat keinen Inhalt.Online ( des Vorlage:IconExternal vom 9. Juni 2018 im Internet Archive) Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.</ref> Mit Vorlage:Monospace, der auch als {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value) (XMM) bezeichnet wird,<ref></ref> lässt sich der Speicherbereich oberhalb von 1 MiB so verwalten, dass verschiedene Programme und Gerätetreiber bei der Verwendung des Erweiterungsspeichers nicht in Konflikt geraten. Der Treiber kann durch Einstellungen in der Vorlage:Monospace konfiguriert und angepasst werden.<ref name="using MS-Dos">Using MS-DOS 6.22, S. 757 Online</ref>
Die erste Veröffentlichung von Vorlage:Monospace war mit Windows 2.10, wo der Treiber unter „Windows/286“, das zwar auch auf PCs mit 8088/8086-Prozessor läuft, ab dem 80286-Prozessor die {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value) (HMA) verfügbar macht,<ref></ref> und zusätzlich den Zugriff auf den gesamten Erweiterten Speicher (XMS) regelt. Der Treiber ist auch in der Variante „Windows/386“ enthalten, sowie in allen nachfolgenden DOS-basierten Windows-Versionen (Windows 2.11, Windows 3.x und Windows 9x).
Vorlage:Monospace ist auch in MS-DOS ab Version 4.01 enthalten und erlaubt, gemeinsam mit einem danach zu ladenden Speichermanager wie Vorlage:Monospace, zusätzlich den Zugriff auf den Oberen Speicherbereich (UMA, die {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value)) zwischen 640 KiB und 1 MiB, wohin Teile des DOS-Kernels und von Gerätetreibern sowie TSR-Programme geladen werden können.<ref name="using MS-Dos" /> Einige zu MS-DOS kompatible DOS-Varianten haben vergleichbare {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value) hervorgebracht, beispielsweise DR DOS 5.0 mit Vorlage:Monospace, das sogar mit 8088-Prozessoren kompatibel ist (dann aber ohne Erweiterten Speicher)<ref></ref> und auf 80286-Systemen den NEAT-Chipsatz unterstützt.<ref></ref>
Die Höhe des nutzbaren Speicherplatzes oberhalb der 1-MiB-Grenze des {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value) hängt von der x86-Prozessorgeneration ab. Da der 16-Bit-80286 im {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value) maximal 16 MiB adressieren kann, beträgt der maximal von Vorlage:Monospace verwaltbare Speicherplatz 15 MiB bzw. ab dem 80386, der die 32-Bit-x86-Architektur (retronym „IA-32“) begründete, unter MS-DOS 6.x maximal 1023 MiB,<ref>MS-DOS-6.2+6.22-Kompendium, S. 606 Online</ref> obwohl 32-Bit-x86-Prozessoren bis zu vier Mal so viel Speicher direkt adressieren können (siehe 4-GB-Grenze). Bei solchen Systemen wird der Treiber bei der Installation von MS-DOS automatisch installiert.<ref>MS-DOS 6.2 User’s Guide, S. 88</ref>
Skriptfehler: Ein solches Modul „Vorlage:Anker“ ist nicht vorhanden.DOS-Startkonfiguration[Bearbeiten]
In der Vorlage:Monospace muss HIMEM.SYS noch vor einem {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value) (EMM) geladen werden, wenn dieser für seine Funktion Zugriff auf den Erweiterten Speicher (XMS) benötigt. Das beste Beispiel ist Vorlage:Monospace, der neben EMS, der in XMS emuliert wird, zusätzlich auch UMBs einblendet, die ebenfalls im XMS-Speicherbereich liegen. Auf x86-Prozessoren ab dem „386er“ können dadurch DOS-Programme, die „{{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value)“ voraussetzen, stattdessen den ohnehin im System verbauten „erweiterten“ ({{Modul:Vorlage:lang}} Modul:Vorlage:lang:103: attempt to index field 'wikibase' (a nil value)) RAM verwenden, ohne dass teure Speicherkarten (in Form von Steckkarten) notwendig sind. Auf Systemen mit einem „286er“, die eine EMS-Emulation im Chipsatz per Adressumschaltung ermöglichen, muss der jeweils Chipsatz-spezifische Treiber für den {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value) hingegen vor HIMEM.SYS geladen werden.
Mit UMB-Speichermanagern, nicht nur Vorlage:Monospace, ist es möglich, RAM in unbenutzten Bereichen des geschützten oberen Speicherbereichs (UMA) zwischen 640 KiB und 1 MiB einzublenden, der in Form von UMBs ({{Modul:Vorlage:lang}} Modul:Vorlage:lang:103: attempt to index field 'wikibase' (a nil value)) von DOS verwaltet wird. Teile des Betriebssystems, Treiber und TSR-Programme können dorthin verlagert werden. Dies wird ab MS-DOS 5.0 mit dem Befehl DEVICEHIGH unterstützt.<ref>MS-DOS 6.22 Befehlsreferenz. DeviceHigh. In: i8086/88 Referenz. Michael Prandl, abgerufen am 29. September 2017.</ref> DR DOS 5.0 führte den Befehl ursprünglich (bereits vor MS-DOS 5.0) als HIDEVICE ein,<ref name="Better_DR_DOS_5.0"></ref> ab DR-DOS 7.0 wird zusätzlich der MS-DOS-Befehl unterstützt.<ref>Chapter 10 Managing Memory. In: Caldera DR-DOS 7.02 User Guide. Caldera, Inc., 1998, archiviert vom Vorlage:IconExternal (nicht mehr online verfügbar) am 30. August 2017; abgerufen am 29. September 2017 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), Abschnitt „Making More Memory Available“). Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.</ref> DOS übernimmt die Verwaltung der UMBs (der als RAM nutzbaren Speicherblöcke im oberen Speicherbereich, der UMA), wenn dies in der Vorlage:Monospace per DOS=UMB eingeschaltet ist. Die Voraussetzung dafür ist lediglich, dass Vorlage:Monospace und Vorlage:Monospace ebenfalls per Vorlage:Monospace geladen werden. Zusätzlich versucht DOS mit DOS=HIGH, unter DR DOS 5.0 ursprünglich HIDOS=ON,<ref name="Better_DR_DOS_5.0" /> Teile des Kernels und ausgesuchter systemnaher Treiber in den Hohen Speicher (HMA, die ersten fast 64 KiB über der 1-MiB-Grenze) zu verlagern.<ref>MS-DOS 6.22 Befehlsreferenz. Dos. In: i8086/88 Referenz. Michael Prandl, abgerufen am 29. September 2017.</ref> Da DOS für den HIMEM-Trick die Kontrolle über die A20-Adressleitung benötigt, wird die HMA nur für ausgesuchte Software genutzt, während zahlreiche Treiber die Verlagerung in UMBs unterstützen.
All diese Maßnahmen dienen dazu, mehr freien Konventionellen Speicher zu schaffen, der von Anwendungsprogrammen dringend benötigt wird. Auch Programme, die von sich aus Speichererweiterungen wie EMS (per EMS-Speichererweiterung) oder XMS (z. B. per DOS-Extender) unterstützen bzw. nutzen, benötigen eine Mindestgröße an freiem DOS-Arbeitsspeicher, der nur im Konventionellen Speicher als solcher verfügbar ist.
Beispiel für CONFIG.SYS:
DEVICE=C:\DOS\HIMEM.SYS DEVICE=C:\DOS\EMM386.EXE DOS=HIGH,UMB
Danach können Gerätetreiber in den oberen Speicherbereich geladen werden:
DEVICEHIGH=CDROM.SYS
Ab MS-DOS 6.0 unterstützt der Befehl DEVICEHIGH auch den Parameter /L, mit dem der Block (die Adresse des UMB) direkt angegeben werden kann.
Die Startdatei Vorlage:Monospace folgt dieser Logik mit dem Befehl LOADHIGH oder kurz LH, ebenfalls ab MS-DOS 5.0. DR DOS versteht zusätzlich (bzw. ursprünglich nur) den Befehl HILOAD:
LH MOUSE.COM
Unter DR DOS können auch in der Vorlage:Monospace Programme geladen werden, wofür die Befehle INSTALLHIGH und HIINSTALL verwendet werden können. MS-DOS unterstützt dies nicht.
Windows[Bearbeiten]
Zum Ausführen von Windows 3.x im Standard- (auf 80286) oder Erweiterten Modus (auch „386-Modus“ genannt, da dieser mindestens einen 80386-Prozessor benötigt) ist Vorlage:Monospace unbedingt notwendig; ist der Treiber nicht vorhanden, startet Windows nicht.<ref>PC Mag - 11. Sept. 1990, S. 422 Online</ref> Alle auf Windows 3.11 folgenden DOS-basierten Windows-Versionen, die als Windows 9x bezeichnete Reihe von Windows 95 bis Me, benötigen Vorlage:Monospace für die DOS-basierte Funktionalität, während die Speicherverwaltung für native Windows-Programme vom {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value) (VMM, VMM32.vxd) verwaltet wird,<ref>Memory Issues in Windows. Abgerufen am 29. September 2017 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)): „… the Windows 95 virtual memory manager (Vmm32.vxd) takes over memory management tasks from Himem.sys.“</ref> wie dies auch unter Windows NT der Fall ist.<ref>Randy Kath: The Virtual-Memory Manager in Windows NT. Microsoft Developer Network Technology Group, 21. Dezember 1992, abgerufen am 29. September 2017 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> Damit DOS-Programme weiterhin laufen können stellen ihnen die NT-basierten Windows-Versionen aber ebenfalls ein Vorlage:Monospace innerhalb einer virtuellen DOS-Umgebung ({{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value), NTVDM) zur Verfügung.<ref>Administering Windows Server 2008 Server Core - S. 627Online</ref>
Die Vorlage:Monospace-Version in frühen OEM-Versionen von Windows 95b enthält einen Fehler, sodass der Treiber statt nur 1 KiB Konventionellen Speicher satte 40 KiB belegt, was wertvollen „DOS-Speicher“ wegnimmt, der auch in der DOS-Box (dem DOS-Fenster „MS-DOS-Eingabeaufforderung“) von Windows fehlt. In der US-Version von Windows 95b ist dieser Fehler in Vorlage:Monospace nicht enthalten.<ref>Peter Siering: Knapper DOS-Speicher bei Windows 95b. In: Heise online. 9. Februar 1997.Vorlage:Abrufdatum; Zitat: „In der Tat frißt der Treiber Vorlage:Monospace hier über 40 KByte des kostbaren unteren DOS-Hauptspeichers. In der US-Version hingegen … zeigt sich Vorlage:Monospace, wie gewohnt, 1 KByte schlank. Der Fehler, der Vorlage:Monospace so anschwellen läßt, scheint in allen europäschen Versionen von Windows 95b zu schlummern.“.</ref>
Einzelnachweise[Bearbeiten]
<references />