HIMEM.SYS

aus Wikipedia, der freien Enzyklopädie

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

Virtual Memory Manager

(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,

NT Virtual DOS Machine

) zur Verfügung.[8]

DOS-Startkonfiguration

In der CONFIG.SYS soll HIMEM.SYS noch vor einem

Expanded Memory Manager

, 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,

Upper Memory Block

) ü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

  1. 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.@1@2Vorlage:Webachiv/IABot/www.google.de
  2. a b Using MS-DOS 6.22, S. 757 Online
  3. MS-DOS-6.2+6.22-Kompendium, S. 606 Online
  4. MS-DOS 6.2 User’s Guide, S. 88
  5. PC Mag - 11. Sept. 1990, S. 422 Online
  6. 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.“
  7. Randy Kath: The Virtual-Memory Manager in Windows NT. Microsoft Developer Network Technology Group, 21. Dezember 1992, abgerufen am 29. September 2017 (englisch).
  8. Administering Windows Server 2008 Server Core - S. 627Online
  9. MS-DOS 6.22 Befehlsreferenz. DeviceHigh. In: i8086/88 Referenz. Michael Prandl, abgerufen am 29. September 2017.
  10. 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.@1@2Vorlage:Webachiv/IABot/www.drdos.net
  11. MS-DOS 6.22 Befehlsreferenz. Dos. In: i8086/88 Referenz. Michael Prandl, abgerufen am 29. September 2017.