{{위키데이터 속성 추적}}
'''EMM386'''이라는 이름은 [[마이크로소프트]]의 [[MS-DOS]]와 [[디지털 리서치]]의 [[DR-DOS]]의 [[중첩 확장 메모리]] 관리자들에 쓰였으며
[[인텔 80386]] CPU에 쓰이는 중첩 확장 메모리를 만들어 냈다.

이 기술은 처음 1987년 컴팩 도스 3.31에 포함되어 [[CEMM]]의 개발에 첫 선을 보였다. 마이크로소프트의 버전은 1988년에 처음 [[윈도우 2.0|윈도/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")이 이용할 수 있는 도큐먼트를 통해 지원된다.<ref name="Okazaki_1994_GEMMIS">{{저널 인용 |title=The Windows Global EMM Import Interface |author-first1=Taku |author-last1=Okazaki |author-first2=Andrew |author-last2=Schulman |series=Undocumented Corner |date=1994-09-01 |issue=9 |journal=[[Dr. Dobb's Journal]] |url=http://www.drdobbs.com/windows/undocumented-corner/184409317 |access-date=2015-10-21 |url-status=dead |archive-url=https://web.archive.org/web/20170823174701/http://www.drdobbs.com/windows/undocumented-corner/184409317 |archive-date=2017-08-23 }} [http://collaboration.cmc.ec.gc.ca/science/rpn/biblio/ddj/Website/articles/DDJ/1994/9409/9409m/9409m.htm] {{웹아카이브|url=https://archive.today/20140529185309/http://collaboration.cmc.ec.gc.ca/science/rpn/biblio/ddj/Website/articles/DDJ/1994/9409/9409m/9409m.htm |날짜=2014-05-29 }} [https://web.archive.org/web/20170823174853/http://www.drdobbs.com/windows/undocumented-corner/windows/sourcecode/undocumented-corner/30400554] [https://web.archive.org/web/20170823175353/http://www.drdobbs.com/windows/undocumented-corner/windows/sourcecode/undocumented-corner/30400553]</ref><ref name="Brown_1994">{{저널 인용|title=QPI: The QEMM-386 Programming Interface |author-first1=Ralf D. |author-last1=Brown |author-link1=Ralf D. Brown |author-first2=Andrew |author-last2=Schulman |series=Undocumented Corner |date=July 1994 |journal=[[Dr. Dobb's Journal]] |location=San Mateo, California |pages=123-131 |url=https://www.cs.cmu.edu/~ralf/papers/qpi.txt |access-date=2017-08-23 |url-status=live |archive-url=https://web.archive.org/web/20170823173501/https://www.cs.cmu.edu/~ralf/papers/qpi.txt |archive-date=2017-08-23}}</ref><ref name="Lespinasse">{{웹 인용|title=How to kick out a memory manager |author-first=Michel |author-last=Lespinasse |publisher=Walken / Impact Studios |location=Amiens, France |url=http://dgi_il.tripod.com/gemmis.txt |access-date=2015-10-21 |url-status=live |archive-url=https://web.archive.org/web/20170104093930/http://dgi_il.tripod.com/gemmis.txt |archive-date=2017-01-03}}</ref>

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

== EMM386.EXE의 스위치 ==
EMM386.EXE는 기본적으로 다음의 스위치들을 제공한다.<ref>{{웹 인용 |url=http://2dos.homepage.dk/batutil/help/EMM386S.HTM |제목=EMM386.EXE<!-- 봇이 붙인 제목 --> |확인날짜=2008년 2월 10일 |보존url=https://web.archive.org/web/20080218121416/http://2dos.homepage.dk/batutil/help/EMM386S.HTM |보존날짜=2008년 2월 18일 |url-status=dead }}</ref>
:<small>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]</small>

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

== 참조 ==
<references/>

[[분류:외부 도스 명령어]]
[[분류:메모리 관리]]