EMM386

EMM386
EMM386
개발자Microsoft, IBM, DR, Datalight, FreeDOS 팀
초기 릴리즈1988년, 33~34년 전
운영 체제MS-DOS, PC DOS, DR DOS, ROM-DOS, FreeDOS
플랫폼인텔 80386
유형확장 메모리 매니저, 명령어

EMM386은 Microsoft의 MS-DOS, IBMPC DOS, Digital Research의 DR-DOS 및 DatalightROM-DOS[1] 확장 메모리 매니저로 인텔 80386 CPU에서 확장 메모리를 사용하여 확장 메모리를 만드는 데 사용됩니다.EMM386도 있습니다.FreeDOS에서 사용할 수 있는 EXE.[2]

개요

EMM386.EXE는 메모리를 UMA(Upper Memory Area)의 미사용 블록에 매핑할 수 있기 때문에 디바이스 드라이버와 TSR을 "높이 로드"하여 기존 메모리를 유지할 수 있습니다.

이 기술은 1987년 Compaq MS-DOS 3.31에 포함된 CEMM의 개발로 처음 등장했을 것입니다.마이크로소프트 버전은 1988년에 Windows/386 2.1과 함께 독립형 EMM386으로 처음 등장했습니다.1989년에 MS-DOS 4.01을 탑재한 SYS, 보다 유연한 EMM386.EXE 버전은 1991년에 MS-DOS 5.0에 등장했습니다.

EMM386은 다른 확장 메모리 매니저와 마찬가지로 프로세서의 가상 8086 모드를 사용합니다.이것에 의해, DOS 애플리케이션에 의해서 행해진 메모리 액세스는 프로세서의 MMU(386 로 도입)를 경유해 행해지게 되어, MMU 에 의해서 사용되는 페이지 테이블 엔트리는, EMM386 에 의해서, 메모리 상부의 특정의 영역을 확장 메모리 매니저인 EMMM 를 개입시켜 매핑 하도록 EM386 에 의해서 설정됩니다.SYS). 이 기술은 EMS(확장 메모리)와 UMB(Unb)를 모두 가능하게 했습니다.이들 둘 다 DOS 어플리케이션에서는 상위 영역의 메모리로 보이지만 실제로는 1MB 이상의 물리 메모리 위치에 매핑됩니다.

386 확장 모드의 Windows 세션 중에 일시적으로 셧다운되고 Windows의 보호 모드 커널이 역할을 이어받습니다.

Windows 에서는, GEMMIS API 를 사용해 EMM386 로부터 메모리 관리를 계승합니다.EXE. 글로벌 EMM Import Specification(GEMMIS)은 일부 메모리 매니저 벤더가 이용할 수 있는 문서("Windows/386 페이징 Import Specification")[3][4][5][6]를 통해 지원됩니다.

GEMMIS API를 실장하고 있는 메모리 매니저는 극히 일부에 불과하며, 그 중 일부에는 EMM386이 포함되어 있습니다.EXE, Quarterdeck QEMM, Qualitas 386MAX, Helix[3] Netroom 및 DOSBox 내장 DOS.특히 FreeDOS의 메모리 매니저가 누락되어 있습니다.

모든 FreeDOS 메모리 매니저(HIMEMX.EXE, JEMM386)EXE, JEMMEXEXE) GEMMIS API를 구현하지 마십시오.Windows가 메모리 관리 역할을 인계받지 못하기 때문에 JEMMxx와 함께 실행 시 Windows가 시작되지 않습니다.Windows ME, Windows 98, Windows 95, Windows for Workgroups 3.1x Windows 3.xx가 모두 실패하고 JEMMxxx가 다음과 같이 표시됩니다.

현재 설치된 보호 모드 소프트웨어가 실행 중일 때는 Windows를 실행할 수 없습니다. 
보호 모드 소프트웨어를 종료하고 다시 시도하십시오.컴퓨터를 재기동할 필요가 있는 경우가 있습니다. 

JEMMxx를 사용하면 Windows가 표준 모드를 사용하도록 강제함으로써 Windows 3.x 및 Windows for Workgroups 3.1x를 제한된 기능으로 실행할 수 있습니다.즉, 80386 확장 모드가 아닌 80286 보호 모드를 사용합니다.다음의 3가지 조건이 필요합니다.

  1. 총 XMS를 64MB로 제한
  2. EMS를 활성화해야 합니다.NOEMS 옵션을 사용할 수 없습니다.예를 들어 JEMMEX X2MAX=65422
  3. Windows는 표준 모드(WIN/S 또는 WIN/2)에서만 동작합니다.

표준 모드의 Windows 에서는, 기능이 한정되어 있어 가상 메모리가 부족하고, SYSTEM 의 [386 Enh]섹션을 생략합니다.INI 및 [386Enh]의 디바이스 드라이버는 로드되지 않습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ "Datalight ROM-DOS User's Guide" (PDF). www.datalight.com.
  2. ^ Platt, Robert; Spiegl, W. (2008) [2003]. "Command: EMM386". Archived from the original on 2017-08-23. Retrieved 2015-10-21.
  3. ^ a b Okazaki, Taku; Schulman, Andrew (1994-09-01). "The Windows Global EMM Import Interface". Dr. Dobb's Journal. Undocumented Corner (9). Archived from the original on 2017-08-23. Retrieved 2015-10-21. [1] 2014년 5월 29일 아카이브.오늘 [2][3]
  4. ^ Brown, Ralf D.; Schulman, Andrew (July 1994). "QPI: The QEMM-386 Programming Interface". Dr. Dobb's Journal. Undocumented Corner. San Mateo, California: 123–131. Archived from the original on 2017-08-23. Retrieved 2017-08-23.
  5. ^ Lespinasse, Michel. "How to kick out a memory manager". Amiens, France: Walken / Impact Studios. Archived from the original on 2017-01-04. Retrieved 2015-10-21.
  6. ^ Paul, Matthias R. (2002-08-13). "Suche freien Speicherbereich unterhalb von 1 MB, der nicht von OS überschrieben wird" (in German). Newsgroup: de.comp.lang.assembler.x86. Archived from the original on 2017-09-04. Retrieved 2017-09-03.