A extensão do nome do arquivo não tem nada a ver com o formato do arquivo de imagem do programa executável, e nem sequer o fez nos dias do MS-DOS.
Não fique confuso sobre extensões de nome de arquivo. Existe um ficheiro de imagem do programa "COM" format , que é um formato de imagem de programa bastante básico. Ele foi substituído pelo formato de arquivo de imagem do programa "MZ" nos anos 1980 (que por sua vez foi substituído pelo formato de arquivo de imagem do programa "PE" e vários outros). Mas não tem nada a ver com a extensão do nome do arquivo.
Um arquivo de imagem de programa para MS-DOS / PC-DOS / DR-DOS pode ter a extensão .COM
ou a extensão .EXE
, mas o arquivo de imagem real formato não é ditado por este. Isso é tão verdadeiro para o Windows NT 6.1 de 64 bits agora como era para o MS-DOS versão 3.3 nos anos 80. A extensão de nome de arquivo não dita agora, e ( efetivamente , dado o quão cedo no histórico do MS-DOS isso mudou) nunca ditou, o formato de arquivo de imagem do programa para executáveis.
Eu menciono o DR-DOS. No DR-DOS versão 6 (se a memória é executada corretamente), praticamente todos os arquivos de imagem do programa, mesmo os nomeados .COM
, eram na verdade executáveis no formato "MZ" e compactados nesse formato. (No momento em que essa versão do DR-DOS foi lançada, no MS-DOS alguns dos arquivos de imagem do programa ainda usavam o formato "COM" real.) Isso é exatamente o mesmo que você está vendo aqui. Os nomes MODE.COM
, FORMAT.COM
, MORE.COM
e assim por diante são os nomes que os programas sempre tiveram, mantidos para compatibilidade. Mas o formato da imagem do programa não é o formato "COM". É o formato "PE".
Isso realmente não deve ser uma surpresa ou um choque. Afinal, os programas cujos nomes de arquivo terminam em ".EXE" - como ATTRIB.EXE
e COMP.EXE
- não são executáveis em formato "MZ", como eram antes no MS-DOS, mas são ( também) executáveis no formato "PE"; e esta situação tem sido o caso no Windows NT para o que está se aproximando de duas décadas. Afinal, apenas o formato "PE" (dos mencionados) é nativamente executável no Windows NT. Os formatos "MZ" e "COM" são executáveis somente por meio de uma máquina Virtual DOS. Todos esses programas têm, no Windows NT, sido programas Win32, usando o formato "PE", por um longo tempo.