EMM386.EXEEMM386.EXE (auch EMM386.SYS) ist eine Systemdatei, die ab 1987 in DOS-Versionen ab 3.0 und in DOS basierenden Windows-Versionen ab Version 2.0 zur Speicherverwaltung eingesetzt wurde. Sie dient der Verwaltung des erweiterten Speichers (englisch Expanded Memory Management) auf Rechnern mit Intel-i386-CPUs und deren Nachfolgern. In diesem Zusammenhang wird auch von LIM-EMS (Lotus-Intel-Microsoft) Speicher oder eingedeutscht von „Expansionsspeicher“ gesprochen. Die Vermutlich kam die erste Version ab 1987 als Compaq FunktionsweiseDer Treiber EMM386 erreicht so aus Softwaresicht den gleichen Effekt wie die ursprünglichen, für spezielle EMS-Steckkarten ausgelegten Expansionsspeicher-Treiber. Während diese allerdings eigene, für die CPU an sich gar nicht adressierbare Speicherbereiche mittels einer speziellen Bank-Switching-Hardware einblendeten, verwendet EMM386 ausschließlich „Bordmittel“ der 386er und höheren Prozessoren. Als Nebeneffekt wird der Prozessor dabei allerdings aus dem unter DOS üblichen Real-Modus in den Virtual-8086-Modus geschaltet, womit einige sehr hardwarenah arbeitende Programme und einige Programme, die spezielle Speicherverwaltungstricks verwenden, nicht kompatibel sind. Der Intel 80186 und seine Vorgänger bieten die Einblendung von Speicher an anderen Adressen noch nicht an, hier kann daher prinzipbedingt EMS-Speicher nur über die speziellen EMS-Steckkarten, auch Memory Expander Karten genannt, realisiert werden. Beim Intel 80286 ist es abhängig vom Chipsatz des Mainboards. So gibt es bspw. Chipsätze wie den NEAT-Chipsatz. Mit diesem Chipsatz war es auf dem i80286 möglich, ohne EMS-Karte bis zu 8 MB EMS-Speicher auf diesem Prozessor zu verwenden. Wie bei EMS-Karten auch, war hierfür ein extra für den Chipsatz geschriebener Treiber notwendig. Der EMM386.SYS Treiber eignete sich dafür nicht. Neuere Versionen vom EMM386 bieten zusätzlich oder anstelle der EMS-Verwaltung eine weitere, konzeptionell unabhängige Funktion an: Treiber und andere residente Programme können in Upper Memory Blocks (UMBs) geladen werden. Dazu werden die Befehle DEVICEHIGH und LOADHIGH (kurz LH) verwendet. Hierdurch konnte weiterer Speicher für DOS-Anwendungsprogramme (unter der 640-KiB-Grenze) freigehalten werden. Moderne Betriebssysteme schalten die CPU gleich nach dem Booten des Kernels in den Protected Mode, womit der gesamte physische Hauptspeicher zur Verfügung steht und derartige Umwege über EMS und Zusatztreiber, wie er bei DOS und dem Real Mode noch nötig war, nicht mehr notwendig sind. Eine ähnliche Technik wird bei Windows auf 32-Bit-Systemen angeboten: Man nennt sie AWE (Address Windowing Extension). Eine passende Hardware mit PAE Unterstützung vorausgesetzt, stellt diese Technik Speicher, der jenseits der durch die 32-Bit-Adressierung bedingten 4-GB-Grenze liegt, ebenfalls in Fenstertechnik, zur Verfügung. AWE wurde von einigen speicherintensiven Programmen, wie dem Microsoft SQL Server, verwendet. Durch die Verbreitung von 64-Bit-Betriebssystemen wird auch diese Fenstertechnik bald bedeutungslos werden. Siehe auch |