Расширение имени файла не имеет ничего общего с форматом файла образа исполняемой программы, и даже не делало этого во времена MS-DOS.
Не запутайтесь в расширениях файлов. Существует формат файла изображения программы "COM", который является довольно простым форматом изображения программы. Он был заменен форматом файла образа программы "MZ" еще в 1980-х годах (который, в свою очередь, был заменен форматом файла образа программы "PE" и некоторыми другими). Но это не имеет ничего общего с расширением имени файла.
Файл образа программы для MS-DOS/PC-DOS/DR-DOS может иметь любое расширение .COM
или расширение .EXE
, но фактический формат файла изображения не продиктован этим. Сейчас это так же верно для 64-битной Windows NT 6.1, как и для MS-DOS версии 3.3 в 1980-х годах. Расширение имени файла теперь не диктуется, и (фактически , учитывая, как рано это изменилось в истории MS-DOS) никогда не диктовало формат файла образа программы для исполняемых файлов.
Я упоминаю DR-DOS. В DR-DOS версии 6 (если память работает правильно) практически все файлы образов программы, даже те, которые названы .COM
, на самом деле были исполняемыми файлами формата MZ, причем сжатыми. (В то время, когда была выпущена эта версия DR-DOS, в MS-DOS некоторые файлы образов программы все еще использовали фактический формат "COM".) Это точно так же, как то, что вы видите здесь. Имена MODE.COM
FORMAT.COM
MORE.COM
и так далее, имена , которые всегда были программы, сохранены для совместимости. Но формат изображения программы не является форматом "COM". Это формат "PE".
Это действительно не должно вызывать удивления или шока. В конце концов, программы, имена файлов которых заканчиваются на ".EXE "- такие как ATTRIB.EXE
и COMP.EXE
- не являются исполняемыми файлами формата " MZ ", как это было раньше в MS-DOS, но (также) являются исполняемыми файлами формата" PE "; такая ситуация была в Windows NT за то, что приближается к двум десятилетиям. В конце концов, только формат "PE" (из упомянутых) является исполняемым в Windows NT. Форматы "MZ" и "COM" могут выполняться только на виртуальной машине DOS. Все эти программы в Windows NT долгое время были программами Win32, использующими формат PE.