O que são arquivos COM de 64 bits?

3

Eu vejo alguns arquivos COM na minha pasta Windows \ System32 de 64 bits:

chcp.com
diskcomp.com
diskcopy.com
format.com
mode.com
more.com
tree.com

Alguém por acaso sabe:

  • Por que eles têm a extensão COM? (ou seja, eles são realmente arquivos COM?)
  • O formato de arquivo deles está documentado? (Eles são o mesmo que arquivos EXE PE de 64 bits, por acaso?)
por Mehrdad 25.08.2011 / 10:38

3 respostas

5

Os arquivos COM são um remanescente dos dias do MS-DOS. Eles tinham que significa naquela época, mas agora estão obsoletos. Atualmente, os arquivos COM são, na verdade, EXEs, mas mantêm a extensão COM para compatibilidade retroativa com programas DOS e Windows mais antigos.

    
por 25.08.2011 / 10:45
1

Testar os executáveis usando a ferramenta Arquivo GNU revela que eles são na verdade apenas executáveis de 32 bits.

file.exe C:\Windows\System32\format.com
C:\Windows\System32\format.com; PE32 executable for MS Windows (console) Intel 80386 32-bit

    
por 25.08.2011 / 10:51
1

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.

    
por 25.08.2011 / 18:41