HIMEM.SYS
HIMEM.SYS ist ein Gerätetreiber, der es DOS-Programmen und -Treibern ermöglicht, Daten im erweiterten Speicherbereich (englisch Extended Memory) über die Extended Memory Specification (XMS) zu speichern.[1] Mit HIMEM.SYS
kann der Speicherbereich oberhalb von 1 MiB so verwaltet werden, dass verschiedene Programme und Gerätetreiber bei der Verwendung des Erweiterungsspeichers nicht in Konflikt geraten.
Er regelt außerdem den Zugriff auf den oberen Speicherbereich (den
, UMB) zwischen 640 KiB und 1 MiB, in welchen Teile des DOS-Kernels und von Gerätetreibern sowie TSR-Programme geladen werden können.[2]
Die Höhe des nutzbaren Speicherplatzes oberhalb der 1-MiB-Grenze hängt vom Prozessorentyp ab. Sie beträgt beim 80286 maximal 15 MiB und ab dem 80386, retronym auch als IA-32 bekannt, maximal 1023 MiB unter MS-DOS 6.x.[3] Bei solchen Systemen wird der Treiber bei der Installation von MS-DOS automatisch installiert.[4]
HIMEM.SYS
kann durch Einstellungen in der CONFIG.SYS
konfiguriert und angepasst werden.[2] Zum Ausführen von Windows 3.x im 286- oder 386-Modus ist HIMEM.SYS
unbedingt notwendig; ist der Treiber nicht vorhanden, startet Windows nicht.[5] Alle auf Windows 3.11 folgenden DOS-basierten Windows-Versionen, die als Windows 9x bezeichnete Reihe von Windows 95 bis Me, benötigen HIMEM.SYS
für die DOS-basierte Funktionalität, während die Speicherverwaltung für native Windows-Programme vom
(VMM, VMM32.vxd
) verwaltet wird,[6] wie dies auch unter Windows NT der Fall ist.[7] Damit DOS-Programme weiterhin laufen können stellen ihnen die NT-basierten Windows-Versionen aber ebenfalls ein HIMEM.SYS
innerhalb einer virtuellen DOS-Umgebung (NTVDM
,
) zur Verfügung.[8]
DOS-Startkonfiguration
In der CONFIG.SYS
soll HIMEM.SYS
noch vor einem
, wie EMM386.EXE
, geladen werden. Ab MS-DOS 5.0 können danach Gerätetreiber mit dem Befehl DEVICEHIGH
in den oberen Speicherbereich geladen werden.[9] DR DOS unterstützt zusätzlich den Befehl HIDEVICE
.[10] Es ist jedoch Voraussetzung, dass DOS die Verwaltung der Speicherblöcke im oberen Speicherbereich (UMB,
) übernimmt, wofür der Befehl DOS=UMB
benötigt wird. Mit DOS=HIGH
können Teile des DOS-Kernels selbst in den oberen Speicher geladen werden.[11]
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 direkt angegeben werden kann.
Die Startdatei AUTOEXEC.BAT
folgt dieser Logik mit dem Befehl LOADHIGH
oder kurz LH
, ebenfalls ab MS-DOS 5.0. DR DOS versteht zusätzlich den Befehl HILOAD
:
LH MOUSE.COM
Unter DR DOS können auch in der CONFIG.SYS
Programme geladen werden, wofür die Befehle INSTALLHIGH
und HIINSTALL
verwendet werden können. MS-DOS unterstützt dies nicht.
Einzelnachweise
- ↑ PC-Hardwarebuch, S. 153 Online (Memento des Originals 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.
- ↑ a b Using MS-DOS 6.22, S. 757 Online
- ↑ MS-DOS-6.2+6.22-Kompendium, S. 606 Online
- ↑ MS-DOS 6.2 User’s Guide, S. 88
- ↑ PC Mag - 11. Sept. 1990, S. 422 Online
- ↑ Memory Issues in Windows. Abgerufen am 29. September 2017 (englisch): „… the Windows 95 virtual memory manager (Vmm32.vxd) takes over memory management tasks from Himem.sys.“
- ↑ Randy Kath: The Virtual-Memory Manager in Windows NT. Microsoft Developer Network Technology Group, 21. Dezember 1992, abgerufen am 29. September 2017 (englisch).
- ↑ Administering Windows Server 2008 Server Core - S. 627Online
- ↑ MS-DOS 6.22 Befehlsreferenz. DeviceHigh. In: i8086/88 Referenz. Michael Prandl, abgerufen am 29. September 2017.
- ↑ Chapter 10 Managing Memory. (Nicht mehr online verfügbar.) In: Caldera DR-DOS 7.02 User Guide. Caldera, Inc., 1998, archiviert vom Original am 30. August 2017; abgerufen am 29. September 2017 (englisch, 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.
- ↑ MS-DOS 6.22 Befehlsreferenz. Dos. In: i8086/88 Referenz. Michael Prandl, abgerufen am 29. September 2017.