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")이 이용할 수 있는 도큐먼트를 통해 지원된다.[1][2][3]
프리도스(FreeDOS)의 메모리 관리자(HIMEMX.EXE, JEMM386.EXE, JEMMEX.EXE)는 GEMMIS API를 구현하지 않기 때문에 윈도우는 JEMMxxx와 결합해서 실행 시 시동을 실패한다.
EMM386.EXE의 스위치
EMM386.EXE는 기본적으로 다음의 스위치들을 제공한다.[4]
- 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)
참조
- ↑ Okazaki, Taku; Schulman, Andrew (1994년 9월 1일). “The Windows Global EMM Import Interface”. 《Dr. Dobb's Journal》. Undocumented Corner (9). 2017년 8월 23일에 원본 문서에서 보존된 문서. 2015년 10월 21일에 확인함. [1] 보관됨 2014-05-29 - archive.today [2] [3]
- ↑ Brown, Ralf D.; Schulman, Andrew (July 1994). “QPI: The QEMM-386 Programming Interface”. 《Dr. Dobb's Journal》. Undocumented Corner (San Mateo, California): 123–131. 2017년 8월 23일에 원본 문서에서 보존된 문서. 2017년 8월 23일에 확인함.
- ↑ Lespinasse, Michel. “How to kick out a memory manager”. Amiens, France: Walken / Impact Studios. 2017년 1월 3일에 원본 문서에서 보존된 문서. 2015년 10월 21일에 확인함.
- ↑ “EMM386.EXE”. 2008년 2월 18일에 원본 문서에서 보존된 문서. 2008년 2월 10일에 확인함.