EMM386

EMM386 (also EMM386.SYS ) is a system file that was used from 1987 in DOS versions 3.0 and DOS -based versions of Windows from version 2.0 for memory management. It is used for administration of extended memory (Expanded Memory) on computers with i386 CPUs and their successors. In this context of LIM EMS ( Lotus - Intel - Microsoft) memory or Germanized speak of " expanded memory ".

The EMM386 (also EMM386.SYS ) can be configured and customized by settings in CONFIG.SYS. In addition EMM386 can be accessed and thus display current settings or make configuration changes in very limited scope of the command line. Depending on the manufacturer put some EMM386 versions require a charged HIMEM.SYS driver.

Probably the first version came in 1987 as Compaq Compaq DOS 3.31 with CEMM.SYS, an OEM version of MS- DOS, for the first time in distribution. From about 1988 the name EMM386.SYS be established for the Expanded Memory Manager MS- DOS and DR -DOS versions which required a CPU from Intel i386 to provide the Expanded memory pages. From 1991, with the proliferation of MS- DOS 5.x, a significantly improved version of EMM386 has been introduced.

Operation

The driver EMM386 provides DOS programs that can only address memory from the lower portion (less than 1 MiB), page by page additional memory from the high memory area ( above 1 MiB ) is available. For this he needs a memory window (English pageFrame window or page ) in the lower storage area, preferably in the range between 640 KiB and 1 MiB (UMB ). In this typically 64 KiB large windows then any of 16 KiB will be shown large memory pages (English pages ) from the high memory. However, one can also use UMBs with less than 16 KiB (the size need only be an integer multiple of 16 bytes). To access that program first selects the desired page, the EMM386 displays this page, leaving the program to work with this page. By changing the page - the new page will be displayed at the same address - can all areas of upper memory are used. From the perspective of the program is operating in each case only with memory addresses from the lower memory.

EMM386 achieved so from software point of view the same effect as the original, designed for special EMS memory card expansion slot drivers. While these however own, in itself not addressable for the CPU memory areas einblendeten by means of a special bank - switching hardware, EMM386 uses only " standard tools " of 386 and higher processors. As a side effect of the processor, however it switched from the usual DOS real mode in the so-called V86 mode, making some very close to the hardware and programs that work in some programs that use special memory management tricks that are not compatible. The Intel 80286 and its predecessors provide the display of memory to other addresses are not on here can therefore inherently EMS memory can be realized only through the special EMS plug-in cards.

Newer versions of EMM386 offer in addition to or instead of the EMS administration to another, conceptually independent function: Drivers and other resident programs can be loaded into upper memory blocks ( UMBs ). For this purpose, the LOAD DEVICE commands HIGH and HIGH are (short LH ) were used. This could further memory for DOS applications are kept free ( under the 640 KiB limit).

In more modern operating systems account for such additional drivers, they have a kernel with integrated memory management for all of the physical main memory. Also developed for these operating systems programs can now deal with 4 GiB of RAM (or more).

A similar technique is today used in operating systems which are based on 32- bit technology. They are called PAE (Physical Address Extension ) or AWE ( Address Windowing Extension). Assuming appropriate hardware, this technique provides memory that lies beyond the due to the 32 -bit addressing 4 GiB limit, also in window technology available. Due to the proliferation of 64 -bit operating systems with 64 -bit processors and related hardware, this window technology will soon become meaningless.

307096
de