<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ko">
	<id>https://doswiki.oscc.kr/index.php?action=history&amp;feed=atom&amp;title=EMM386.EXE</id>
	<title>EMM386.EXE - 편집 역사</title>
	<link rel="self" type="application/atom+xml" href="https://doswiki.oscc.kr/index.php?action=history&amp;feed=atom&amp;title=EMM386.EXE"/>
	<link rel="alternate" type="text/html" href="https://doswiki.oscc.kr/index.php?title=EMM386.EXE&amp;action=history"/>
	<updated>2026-04-04T08:51:04Z</updated>
	<subtitle>이 문서의 편집 역사</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://doswiki.oscc.kr/index.php?title=EMM386.EXE&amp;diff=104&amp;oldid=prev</id>
		<title>2025년 11월 28일 (금) 12:08에 Pc1412님의 편집</title>
		<link rel="alternate" type="text/html" href="https://doswiki.oscc.kr/index.php?title=EMM386.EXE&amp;diff=104&amp;oldid=prev"/>
		<updated>2025-11-28T12:08:52Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://doswiki.oscc.kr/index.php?title=EMM386.EXE&amp;amp;diff=104&amp;amp;oldid=70&quot;&gt;차이 보기&lt;/a&gt;</summary>
		<author><name>Pc1412</name></author>
	</entry>
	<entry>
		<id>https://doswiki.oscc.kr/index.php?title=EMM386.EXE&amp;diff=70&amp;oldid=prev</id>
		<title>2025년 11월 25일 (화) 08:20에 Pc1412님의 편집</title>
		<link rel="alternate" type="text/html" href="https://doswiki.oscc.kr/index.php?title=EMM386.EXE&amp;diff=70&amp;oldid=prev"/>
		<updated>2025-11-25T08:20:24Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://doswiki.oscc.kr/index.php?title=EMM386.EXE&amp;amp;diff=70&amp;amp;oldid=69&quot;&gt;차이 보기&lt;/a&gt;</summary>
		<author><name>Pc1412</name></author>
	</entry>
	<entry>
		<id>https://doswiki.oscc.kr/index.php?title=EMM386.EXE&amp;diff=69&amp;oldid=prev</id>
		<title>Pc1412: Pc1412님이 Emm386.exe 문서를 넘겨주기를 만들지 않고 EMM386.EXE 문서로 이동했습니다</title>
		<link rel="alternate" type="text/html" href="https://doswiki.oscc.kr/index.php?title=EMM386.EXE&amp;diff=69&amp;oldid=prev"/>
		<updated>2025-11-25T08:16:07Z</updated>

		<summary type="html">&lt;p&gt;Pc1412님이 &lt;a href=&quot;/index.php?title=Emm386.exe&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Emm386.exe (없는 문서)&quot;&gt;Emm386.exe&lt;/a&gt; 문서를 넘겨주기를 만들지 않고 &lt;a href=&quot;/EMM386.EXE&quot; title=&quot;EMM386.EXE&quot;&gt;EMM386.EXE&lt;/a&gt; 문서로 이동했습니다&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ko&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 이전 판&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2025년 11월 25일 (화) 17:16 판&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-notice&quot; lang=&quot;ko&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(차이 없음)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key doswiki:diff:1.41:old-67:rev-69 --&gt;
&lt;/table&gt;</summary>
		<author><name>Pc1412</name></author>
	</entry>
	<entry>
		<id>https://doswiki.oscc.kr/index.php?title=EMM386.EXE&amp;diff=67&amp;oldid=prev</id>
		<title>Pc1412: 새 문서: = 개요 = &#039;&#039;&#039;EMM386.EXE&#039;&#039;&#039;는 80386 이상의 CPU에서 동작하는 MS-DOS용 확장 메모리 관리자이다.   확장 메모리(XMS)를 기반으로 &#039;&#039;&#039;EMS(Expanded Memory)&#039;&#039;&#039;를 에뮬레이트하고,   상위 메모리 영역(UMA)에 존재하는 빈 공간을 스캔하여 &#039;&#039;&#039;UMB(Upper Memory Block)&#039;&#039;&#039;로 제공함으로써   도스 프로그램의 &#039;&#039;&#039;기본 메모리(Conventional Memory, 640KB) 확보&#039;&#039;&#039;를 가능하게 한다.  EMM386은 CPU의 &#039;&#039;&#039;가상 8086 모드&#039;&#039;&#039;...</title>
		<link rel="alternate" type="text/html" href="https://doswiki.oscc.kr/index.php?title=EMM386.EXE&amp;diff=67&amp;oldid=prev"/>
		<updated>2025-11-25T08:04:09Z</updated>

		<summary type="html">&lt;p&gt;새 문서: = 개요 = &amp;#039;&amp;#039;&amp;#039;EMM386.EXE&amp;#039;&amp;#039;&amp;#039;는 80386 이상의 CPU에서 동작하는 MS-DOS용 확장 메모리 관리자이다.   확장 메모리(XMS)를 기반으로 &amp;#039;&amp;#039;&amp;#039;EMS(Expanded Memory)&amp;#039;&amp;#039;&amp;#039;를 에뮬레이트하고,   상위 메모리 영역(UMA)에 존재하는 빈 공간을 스캔하여 &amp;#039;&amp;#039;&amp;#039;UMB(Upper Memory Block)&amp;#039;&amp;#039;&amp;#039;로 제공함으로써   도스 프로그램의 &amp;#039;&amp;#039;&amp;#039;기본 메모리(Conventional Memory, 640KB) 확보&amp;#039;&amp;#039;&amp;#039;를 가능하게 한다.  EMM386은 CPU의 &amp;#039;&amp;#039;&amp;#039;가상 8086 모드&amp;#039;&amp;#039;&amp;#039;...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;새 문서&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= 개요 =&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;EMM386.EXE&amp;#039;&amp;#039;&amp;#039;는 80386 이상의 CPU에서 동작하는 MS-DOS용 확장 메모리 관리자이다.  &lt;br /&gt;
확장 메모리(XMS)를 기반으로 &amp;#039;&amp;#039;&amp;#039;EMS(Expanded Memory)&amp;#039;&amp;#039;&amp;#039;를 에뮬레이트하고,  &lt;br /&gt;
상위 메모리 영역(UMA)에 존재하는 빈 공간을 스캔하여 &amp;#039;&amp;#039;&amp;#039;UMB(Upper Memory Block)&amp;#039;&amp;#039;&amp;#039;로 제공함으로써  &lt;br /&gt;
도스 프로그램의 &amp;#039;&amp;#039;&amp;#039;기본 메모리(Conventional Memory, 640KB) 확보&amp;#039;&amp;#039;&amp;#039;를 가능하게 한다.&lt;br /&gt;
&lt;br /&gt;
EMM386은 CPU의 &amp;#039;&amp;#039;&amp;#039;가상 8086 모드&amp;#039;&amp;#039;&amp;#039;와 MMU(Page Table)를 활용하며,  &lt;br /&gt;
HIMEM.SYS가 제공하는 XMS 메모리를 기반으로 EMS와 UMB를 동시에 구성한다.&lt;br /&gt;
&lt;br /&gt;
MS-DOS 5.0에서부터 &amp;#039;&amp;#039;&amp;#039;EMM386.EXE&amp;#039;&amp;#039;&amp;#039;라는 독립 실행 파일 형태로 제공되었으며,  &lt;br /&gt;
Windows/386 · Windows 3.x의 386 향상 모드에서도 메모리 관리자 역할을 담당하였다.&lt;br /&gt;
&lt;br /&gt;
= 역사 =&lt;br /&gt;
== 초기 ==&lt;br /&gt;
* 1986년 Compaq Deskpro 386용 OEM DOS에 포함된 &amp;#039;&amp;#039;&amp;#039;CEMM&amp;#039;&amp;#039;&amp;#039;(Compaq Expanded Memory Manager)에서 기술 기반이 시작되었다.&lt;br /&gt;
* 1987년 Windows/386 2.0에서 Microsoft 버전의 EMS 에뮬레이터가 첫 등장하였다.&lt;br /&gt;
* 1988년 MS-DOS 4.0에서 &amp;#039;&amp;#039;&amp;#039;EMM386.SYS&amp;#039;&amp;#039;&amp;#039; 형태로 독립 제공.&lt;br /&gt;
&lt;br /&gt;
== MS-DOS 5.0 이후 ==&lt;br /&gt;
1991년 MS-DOS 5.0에서 &amp;#039;&amp;#039;&amp;#039;EMM386.EXE&amp;#039;&amp;#039;&amp;#039; 형태로 재정비되면서  &lt;br /&gt;
* UMB 제공  &lt;br /&gt;
* EMS 제공  &lt;br /&gt;
* v8086 모드 기반 메모리 가상화  &lt;br /&gt;
* CONFIG.SYS 라인에서 유연한 설정 제공  &lt;br /&gt;
&lt;br /&gt;
등이 가능해졌다.&lt;br /&gt;
&lt;br /&gt;
= 버전 기록 =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 함께 제공된 제품 !! 날짜 !! 파일명 !! 버전&lt;br /&gt;
|-&lt;br /&gt;
| MS-DOS 4.01 || 1988-11 || EMM386.SYS || 4.00&lt;br /&gt;
|-&lt;br /&gt;
| Windows 3.0 || 1990-05 || EMM386.SYS || 4.10.0419&lt;br /&gt;
|-&lt;br /&gt;
| MS-DOS 5.0 / PC DOS 5.0 || 1991-06 || EMM386.EXE || 4.20.06x&lt;br /&gt;
|-&lt;br /&gt;
| PC DOS 5.02 / MS-DOS 5.00a || 1992-09 || EMM386.EXE || 4.33&lt;br /&gt;
|-&lt;br /&gt;
| Windows 3.1 / WfW 3.1 || 1992 || EMM386.EXE || 4.44&lt;br /&gt;
|-&lt;br /&gt;
| MS-DOS 6.0 / PC DOS 6.1 || 1993 || EMM386.EXE || 4.45&lt;br /&gt;
|-&lt;br /&gt;
| MS-DOS 6.2 / 6.21 / PC DOS 6.3 / WfW 3.11 || 1993~1994 || EMM386.EXE || 4.48&lt;br /&gt;
|-&lt;br /&gt;
| MS-DOS 6.22 || 1994-06 || EMM386.EXE || 4.49&lt;br /&gt;
|-&lt;br /&gt;
| IBM PC DOS 7.0 / PC DOS 2000 || 1995~1998 || EMM386.EXE || 4.50&lt;br /&gt;
|-&lt;br /&gt;
| Windows 95 / 98 || 1995~1998 || EMM386.EXE || 4.95&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= 작동 원리 =&lt;br /&gt;
== 가상 8086 모드 ==&lt;br /&gt;
EMM386은 CPU의 가상 8086 모드를 이용하여 모든 도스 프로그램 실행을 제어하며,  &lt;br /&gt;
메모리 접근을 MMU(Page Table)로 우회시킨다.  &lt;br /&gt;
이를 통해 실제로는 1MB 이상의 물리 주소(XMS)를  &lt;br /&gt;
640KB~1MB 사이의 UMA처럼 “보이도록” 매핑할 수 있다.&lt;br /&gt;
&lt;br /&gt;
== HIMEM.SYS와의 관계 ==&lt;br /&gt;
* HIMEM.SYS: XMS 관리  &lt;br /&gt;
* EMM386.EXE: XMS를 기반으로 EMS·UMB 생성  &lt;br /&gt;
HIMEM.SYS가 없으면 EMM386은 동작할 수 없다.&lt;br /&gt;
&lt;br /&gt;
== EMS 및 UMB 제공 ==&lt;br /&gt;
* EMS는 16KB의 페이지 프레임 사용  &lt;br /&gt;
* UMB는 A000h~FFFFh 사이 장치 영역 중 실제 사용되지 않는 부분을 스캔하여 확보  &lt;br /&gt;
* MEM /C, MEM /F 등에서 보이는 UMB는 모두 EMM386이 제공한 것&lt;br /&gt;
&lt;br /&gt;
= Windows와의 관계 =&lt;br /&gt;
== 386 향상 모드 ==&lt;br /&gt;
Windows 3.x/9x의 386 향상 모드가 시작되면  &lt;br /&gt;
Windows의 보호 모드 VMM이 EMM386의 기능을 인계하며,  &lt;br /&gt;
EMM386.EXE는 일시 중단된다.&lt;br /&gt;
&lt;br /&gt;
== GEMMIS API ==&lt;br /&gt;
Windows는 EMM386과 메모리 관리자 정보를 교환하기 위해  &lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;GEMMIS(Global EMM Import Specification)&amp;#039;&amp;#039;&amp;#039;을 사용한다.&lt;br /&gt;
&lt;br /&gt;
이를 구현한 메모리 관리자는 다음과 같다:&lt;br /&gt;
* Microsoft EMM386.EXE  &lt;br /&gt;
* Quarterdeck QEMM  &lt;br /&gt;
* Qualitas 386MAX  &lt;br /&gt;
* Helix Netroom  &lt;br /&gt;
&lt;br /&gt;
FreeDOS의 JEMM386/JEMMEX는 GEMMIS를 지원하지 않기 때문에  &lt;br /&gt;
Windows 3.x 386 향상 모드에서는 실행되지 않는다.&lt;br /&gt;
&lt;br /&gt;
== FreeDOS 호환성 ==&lt;br /&gt;
JEMM 시리즈 사용 시 Windows 3.x는 다음 오류를 출력한다:&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 현재 설치된 보호 모드 소프트웨어가 실행 중인 동안에는 Windows를 실행할 수 없습니다.&lt;br /&gt;
&lt;br /&gt;
→ WIN /S 또는 WIN /2로 강제 표준 모드 실행만 가능하며  &lt;br /&gt;
가상 메모리·386Enh 드라이버 로딩 등이 모두 제한된다.&lt;br /&gt;
&lt;br /&gt;
= EMM386.EXE 옵션 =&lt;br /&gt;
(출처: Hangual MS-DOS 6.2 HELP 전문)&lt;br /&gt;
&lt;br /&gt;
== ON / OFF / AUTO ==&lt;br /&gt;
* ON: EMS·UMB 활성  &lt;br /&gt;
* OFF: 기능 중지  &lt;br /&gt;
* AUTO: 프로그램 요청 시에만 EMS/UMB 생성&lt;br /&gt;
&lt;br /&gt;
== memory ==&lt;br /&gt;
EMM386이 제공하는 EMS/VCPI 용량(KB).  &lt;br /&gt;
NOEMS 사용 시 기본값 0.&lt;br /&gt;
&lt;br /&gt;
== MIN=size ==&lt;br /&gt;
보장된 EMS 최소값. 기본 256KB.&lt;br /&gt;
&lt;br /&gt;
== NOEMS ==&lt;br /&gt;
EMS 비활성화.  &lt;br /&gt;
UMB는 계속 제공되며,  &lt;br /&gt;
상위 메모리를 최대 확보할 때 자주 사용된다.  &lt;br /&gt;
다만 EMS 기반 게임/프로그램은 정상 동작하지 않을 수 있다.&lt;br /&gt;
&lt;br /&gt;
== FRAME=address ==&lt;br /&gt;
EMS 페이지 프레임 주소 지정.&lt;br /&gt;
&lt;br /&gt;
== X=mmmm-nnnn / I=mmmm-nnnn ==&lt;br /&gt;
사용/제외할 UMA 블록 수동 지정.&lt;br /&gt;
&lt;br /&gt;
== HIGHSCAN ==&lt;br /&gt;
UMA를 더욱 자세히 스캔한다.  &lt;br /&gt;
추가 UMB 확보가 가능한 경우가 있지만  &lt;br /&gt;
일부 기종에서는 시스템 정지 위험도 있다.&lt;br /&gt;
&lt;br /&gt;
== NOHI ==&lt;br /&gt;
EMM386 일부를 UMB에 올리지 않음.  &lt;br /&gt;
→ 기본 메모리 감소  &lt;br /&gt;
→ UMB 증가&lt;br /&gt;
&lt;br /&gt;
== ROM=mmmm-nnnn ==&lt;br /&gt;
Shadow RAM 구성.&lt;br /&gt;
&lt;br /&gt;
== NOVCPI ==&lt;br /&gt;
VCPI 비활성화 (NOEMS와 함께 사용해야 함).&lt;br /&gt;
&lt;br /&gt;
== WIN=mmmm-nnnn ==&lt;br /&gt;
Windows에서 사용할 UMA 영역 예약.&lt;br /&gt;
&lt;br /&gt;
== ALTBOOT ==&lt;br /&gt;
Ctrl+Alt+Del 재부팅 처리 방식 대체.&lt;br /&gt;
&lt;br /&gt;
= 실제 CONFIG.SYS 예시 =&lt;br /&gt;
== EMS 미사용, UMB 최대 확보 ==&lt;br /&gt;
 DEVICE=C:\DOS\HIMEM.SYS&lt;br /&gt;
 DEVICE=C:\DOS\EMM386.EXE NOEMS&lt;br /&gt;
 DOS=HIGH,UMB&lt;br /&gt;
&lt;br /&gt;
== EMS 활성화 ==&lt;br /&gt;
 DEVICE=C:\DOS\HIMEM.SYS&lt;br /&gt;
 DEVICE=C:\DOS\EMM386.EXE RAM&lt;br /&gt;
 DOS=HIGH,UMB&lt;br /&gt;
&lt;br /&gt;
== HIGHSCAN 예시 ==&lt;br /&gt;
 DEVICE=C:\DOS\EMM386.EXE NOEMS HIGHSCAN&lt;br /&gt;
&lt;br /&gt;
= 관련 문서 =&lt;br /&gt;
* [[HIMEM.SYS]]&lt;br /&gt;
* [[MEM.EXE]]&lt;br /&gt;
* [[CONFIG.SYS]]&lt;br /&gt;
* [[DOS 메모리 구조]]&lt;br /&gt;
* [[QEMM]]&lt;br /&gt;
* [[386MAX]]&lt;br /&gt;
&lt;br /&gt;
= 분류 =&lt;br /&gt;
[[Category:MS-DOS 명령어]]&lt;br /&gt;
[[Category:메모리 관리자]]&lt;br /&gt;
[[Category:DOS 구성요소]]&lt;/div&gt;</summary>
		<author><name>Pc1412</name></author>
	</entry>
</feed>