Любой юзер компьютерной системы, так или иначе, сталкивался с понятием исполняемого файла программы. И не всегда (хотя и очень часто) исполняемые файлы имеют расширение EXE, общепринятое для Windows-систем. Чтобы разобраться в вопросе расширений, рассмотрим общую информацию о таких объектах и некоторые их основные типы.
Отличия исполняемых файлов от других объектов
Прежде чем утверждать, что исполняемый файл программы имеет расширение только лишь одного определенного типа, следует разобраться с тем, как отличить такой объект от других.
На самом деле, среди основных отличий исполняемых файлов от других информационных данных выделяют несколько основных:
- само расширение, указывающее на содержание в файле либо машинного, либо байт-кода виртуальной машины;
- сигнатура (содержимое в виде уникальных байт-последовательностей);
- атрибуты в файловой системе (execute и др.).
К сожалению, даже если знаешь, что исполняемые файлы имеют расширение имени, например, EXE, просмотреть содержимое обычными средствами не получится, поскольку такие объекты обладают компилированным содержимым, которое при просмотре отображается в виде бессмысленного набора символов. В лучшем случае придется использовать средства Disassembler или что-то еще, позволяющее произвести декомпиляцию. Но сейчас не об этом.
Структура исполняемых файлов
Что касается построения файлов такого типа, как правило, они содержат заголовки (предполагаемое исполнение инструкций, параметры, форматы кода), сами инструкции (машинные, исходные или байт-коды).
Иногда в структуру могут включаться описания окружения, данные для отладки, требования к ОС, списки сопутствующих библиотек, изображения, звук, графика, иконки ярлыков и т. д. Кстати, многие, наверное, обращали внимание, что в большинстве своем в каждой операционной системе иконка у такого файла имеется изначально (при условии, что он со старта должен в ней работать).
Принцип работы
Собственно, несмотря на то, что исполняемые файлы имеют расширение разного типа, работают они похожим образом.
При запуске исполняемый файл загружается в память компьютера. При этом происходит инициализация и настройка окружения, «подтягивание» дополнительных библиотек, если применение таких предусмотрено программой, настройка некоторых дополнительных операций и само исполнение инструкций методами, прописанными в файле.
Какое расширение имеют исполняемые файлы программ?
Теперь подходим непосредственно к вопросу расширений. Само собой разумеется, что абсолютно все привести не получится (это займет уж слишком много времени). С другой стороны, можно отметить наиболее популярные и самые распространенные.
Итак, в зависимости от типа содержимого и задается расширение. Так, например, в Windows самые распространенные исполняемые файлы имеют расширение EXE. Это относится ко всем программам, рассчитанным на работу в среде этих операционных систем. Такие объекты содержат машинные коды. Очень похожими (тоже с содержанием таких кодов) являются файлы BIN.
Еще одним типом исполняемых файлов являются пакетные объекты типа CMD, BAT и COM, причем первый тип является пакетным файлом Windows, а второй и третий относятся к системам DOS.
Вероятно, многие встречали и файлы MSI и MSU. Это может быть либо «родной» инсталлятор Windows, либо установщик апдейтов системы.
Кроме всего прочего, отдельную категорию составляют скрипты и макросы (VB, VBS, VBE, SCR, JS, JSE). Еще часто встречаются файлы вроде JAR и JAD, предназначенные для установки приложений на мобильные гаджеты или использование в среде JAVA. Все такие объекты в содержании имеют уже не машинные коды, а коды виртуальных машин.
Какое расширение имеют исполняемые файлы в разных системах?
Если посмотреть внимательно, можно заметить, что в некоторых системах встречаются и достаточно специфичные компоненты. Например, в Windows имеется специальная категория исполняемых компонентов (PS1 – исполняемый файл PowerShell, PIF – информация о приложениях, WSF – файл сценария и т. д.).
Вообще, в любой системе можно найти и стандартные, и специальные компоненты. Однако есть и некоторые общие форматы (например, HTA – исполняемый документ HTML), которые работают везде и независимо от применяемой «операционки».
Что же касается других систем, например, в «маках» исполняемые файлы имеют расширение APP, если это программы, и PKG, если это дистрибутив.
А вот с Linux-системами дело обстоит несколько иначе. Дело в том, что в них понятие расширения отсутствует как таковое. Распознать исполняемый файл можно только по атрибутам (скрытый, только для чтения, системный и т. д.). Таким образом, отпадает даже проблема изменения расширений, чтобы запустить или прочитать искомый файл.
Впрочем, в любой системе или даже в мобильных гаджетах можно найти огромное количество объектов такого типа. Далеко ходить не нужно. В той же ОС Android исполняемый файл установщика имеет расширение APK, а в «яблочных» девайсах это файлы IPA.
Заключение
Вот вкратце и все, что касается расширений исполняемых файлов. Конечно, в данном случае упор делался в основном на объекты, присутствующие в Windows-системах, а остальные были затронуты вскользь и, так сказать, для общего развития. И, как уже понятно, разнообразие объектов исполняемого типа настолько велико, что привести какую-то сводную таблицу с указанием абсолютно всех расширений просто не представляется возможным, поэтому мы ограничились наиболее распространенными форматами.