EMM386 - EMM386

EMM386
Desenvolvedor (s) Microsoft , IBM , DR , Datalight , The FreeDOS team
lançamento inicial 1988, 32-33 anos atrás
Sistema operacional MS-DOS , PC DOS , DR DOS , ROM-DOS , FreeDOS
Plataforma Intel 80386
Tipo Gerenciador de memória expandida , Comando

EMM386 é a memória expandida gerente da Microsoft 's MS-DOS , IBM ' s PC DOS , a Digital Research 's DR-DOS , e Datalight ' s ROM-DOS que é usado para criar memória expandida usando a memória estendida em Intel 80386 CPUs. Também existe um EMM386.exe disponível no FreeDOS .

Visão geral

O EMM386.EXE pode mapear a memória em blocos não utilizados na área de memória superior (UMA), permitindo que os drivers de dispositivo e TSRs sejam "carregados", preservando a memória convencional .

A técnica provavelmente apareceu pela primeira vez com o desenvolvimento do CEMM , incluído no Compaq MS-DOS 3.31 em 1987. A versão da Microsoft apareceu pela primeira vez, embutida, com Windows / 386 2.1 em 1988 e como EMM386.SYS autônomo com MS-DOS 4.01 em 1989 ; a versão mais flexível do EMM386.EXE apareceu no MS-DOS 5.0 em 1991.

Assim como os outros gerenciadores de memória expandida, o EMM386 usa o modo 8086 virtual do processador . Isso força os acessos à memória feitos por aplicativos DOS a passarem pelo MMU do processador (introduzido no 386), e as entradas da tabela de páginas usadas pelo MMU são configuradas pelo EMM386 para mapear certas regiões na memória superior para áreas de memória estendida (obtido por EMM386 através do gerenciador de memória estendida HIMEM.SYS ). Essa técnica habilitou EMS (memória expandida), bem como UMBs - ambos parecem aos aplicativos DOS ser memória na área superior, mas na verdade são mapeados para locais de memória física além de 1 MB.

Ele é encerrado temporariamente durante uma sessão do Windows no modo 386 avançado , com o kernel do modo protegido do Windows assumindo sua função.

O Windows usa a API GEMMIS para assumir o gerenciamento de memória do EMM386.EXE. A Global EMM Import Specification (GEMMIS) é suportada por meio de um documento disponível para um número selecionado de fornecedores de gerenciadores de memória ("Windows / 386 Paging Import Specification").

Apenas alguns gerenciadores de memória implementaram a API GEMMIS, alguns dos que a incluem são: EMM386.EXE, Quarterdeck QEMM , Qualitas 386MAX , Helix Netroom e DOSBox embutido no DOS . Notavelmente ausentes estão os gerenciadores de memória do FreeDOS.

Todos os gerenciadores de memória FreeDOS (HIMEMX.EXE, JEMM386.EXE, JEMMEX.EXE) não implementam a API GEMMIS e o Windows falha ao iniciar quando executado em conjunto com JEMMxxx, pois o Windows não consegue assumir a função de gerenciamento de memória. Windows ME , Windows 98 , Windows 95 , Windows for Workgroups 3.1x e Windows 3 .xx, ​​todos falharão com JEMMxxx exibindo:

 Cannot run Windows while the currently installed protected-mode software is 
 running.
 Quit the protected-mode software, and then try again.
 You may need to restart your computer.

Com JEMMxx, é possível executar o Windows 3.xe Windows for Workgroups 3.1x em recursos limitados, forçando o Windows a usar o Modo Padrão; ou seja, usando o modo protegido 80286, não o modo 80386 avançado. Três condições são necessárias:

  1. limitar o XMS total a 64 MB
  2. O EMS deve estar habilitado, não é possível usar a opção NOEMS. Por exemplo JEMMEX X2MAX = 65422
  3. O Windows opera apenas no modo padrão, WIN / S ou WIN / 2

Observe que o Windows no modo padrão é limitado em funcionalidade, falta memória virtual, ele ignora a seção [386Enh] no SYSTEM.INI e quaisquer drivers de dispositivo em [386Enh] não são carregados.

Veja também

Referências