EMM386

EMM386이라는 이름은 마이크로소프트의 MS-DOS와 디지털 리서치의 DR-DOS의 중첩 확장 메모리 관리자들에 쓰였으며
인텔 80386 CPU에 쓰이는 중첩 확장 메모리를 만들어 냈다.

이 기술은 처음 1987년 컴팩 도스 3.31에 포함되어 CEMM의 개발에 첫 선을 보였다. 마이크로소프트의 버전은 1988년에 처음 윈도/386 2.1에 내장하였으며 1989년에 독립 EMM386.SYS를 MS-DOS 4.01에 포함하여 배포하였다. 가장 유동적인 EMM386.EXE 버전은 1991년에 발표한 MS-DOS 5.0에 포함된 것이다.

다른 확장 메모리 관리자로서 EMM386은 프로세서의 가상 8086 모드를 사용한다. 이것은 윈도 보호 모드 커널과 더불어 386 확장 모드의 윈도 세션 동안에 일시적으로 종료된다.

EMM386.EXE는 메모리를 상위 메모리 영역 안에서 쓰이지 않는 블록들에 매핑할 수 있으며, 장치 드라이버들과 TSR이 상위로 로드할 수 있게 해 주고, 이전의 기본 메모리를 보존한다. (자세한 정보를 보려면, 상위 메모리 영역에 들어가 볼 것.)

윈도우는 GEMMIS API를 사용하여 EMM386.EXE의 메모리 관리를 인계한다. GEMMIS(Global EMM Import Specification)는 선별된 메모리 관리자 벤더들("Windows/386 Paging Import Specification")이 이용할 수 있는 도큐먼트를 통해 지원된다.

프리도스(FreeDOS)의 메모리 관리자(HIMEMX.EXE, JEMM386.EXE, JEMMEX.EXE)는 GEMMIS API를 구현하지 않기 때문에 윈도우는 JEMMxxx와 결합해서 실행 시 시동을 실패한다.

EMM386.EXE의 스위치 
EMM386.EXE는 기본적으로 다음의 스위치들을 제공한다.
DEVICE=[드라이브:][경로]EMM386.EXE [ON|OFF|AUTO] [메모리] [MIN=크기] [W=ON|W=OFF] [Mx|FRAME=주소|/Pmmmm] [Pn=주소] [X=mmmm-nnnn] [I=mmmm-nnnn] [B=주소] [L=minXMS] [A=altregs] [H=핸들 수] [D=숫자] [RAM=mmmm-nnnn] [NOEMS] [NOVCPI] [HIGHSCAN] [VERBOSE] [WIN=mmmm-nnnn] [NOHI] [ROM=mmmm-nnnn] [NOMOVEXBDA] [ALTBOOT]

같이 보기 
 CEMM
 QEMM
 가상 도스 머신
 리얼 모드
 언리얼 모드
 보호 모드
 기본 메모리
 고위 메모리 영역 (HMA)
 상위 메모리 영역 (UMA)
 연속 확장 메모리 규격 (XMS)
 중첩 확장 메모리 규격 (EMS)

참조 

외부 도스 명령어
메모리 관리