.EXE вариант №
Слово EXE является сокращением от исполняемый. Файл .exe — это программа, которую можно запустить в операционной системе Microsoft Windows. Разработчики приложений чаще всего публикуют свои программы для ОС Windows в исполняемом формате в виде исполняемых файлов. Это стандартный формат файла для запуска приложений в Windows. Setup.exe, Install.exe и cmd.exe — это некоторые распространенные и хорошо знакомые имена EXE-файлов.
Формат EXE-файла
Компиляторы MS-DOS были представлены с моделями памяти, имеющими ограничение памяти 64 КБ. Общая концепция состоит в том, чтобы установить разные сегментные регистры в ЦП x86 (CS, DS, ES, SS) так, чтобы они указывали на разные или одни и те же сегменты, тем самым обеспечивая различные степени доступа к памяти. Некоторые конкретные модели памяти были:
- Tiny: все обращения к памяти являются 16-битными (сегментные регистры не изменились). Создает файл .COM вместо файла .EXE.
- Small: все обращения к памяти являются 16-битными (сегментные регистры не изменились).
- Compact: адреса данных включают как сегмент, так и смещение, перезагружая регистры DS или ES при доступе и допуская до 1М данных. Доступ к коду не изменяет регистр CS, что позволяет использовать 64 КБ кода.
- Средний: кодовые адреса включают адрес сегмента, перезагружают CS при доступе и позволяют использовать до 1 М кода. При доступе к данным регистры DS и ES не изменяются, что позволяет хранить 64 КБ данных.
- Большой: адреса кода и данных являются парами (сегмент, смещение), всегда перезагружая адреса сегментов. Весь объем памяти объемом 1 Мбайт доступен как для кода, так и для данных.
- Огромный: То же, что и большая модель, но компилятор генерирует дополнительные арифметические операции, позволяющие получить доступ к массивам размером более 64 КБ.
Разработчики должны решить, какую модель следует выбрать при создании exe-файла.
Переносимый формат файла EXE
Формат переносимого исполняемого файла (PE) содержит ряд информационных заголовков, ниже приведен список заголовков:
- Заголовок DOS: заголовок MS-DOS обеспечивает либо обратную совместимость, либо корректное отклонение новых типов файлов.
- Заголовок PE: по смещению 60 (0x3C) от начала заголовка DOS находится указатель на заголовок PE-файла.
- Заголовок COFF: Заголовок COFF содержит некоторую информацию, полезную для исполняемого файла, и некоторую информацию, более полезную для объектного файла.
- Необязательный заголовок PE: Необязательный заголовок PE находится непосредственно после заголовка COFF, а в некоторых источниках даже показано, что два заголовка являются частью одной и той же структуры.
- Таблица разделов: Сразу после дополнительного заголовка PE мы находим таблицу разделов. Таблица разделов состоит из массива структур IMAGE_SECTION_HEADER.
- Mappable Sections: можно сэкономить место в памяти, сопоставив код библиотеки с несколькими процессами.
Можете ли вы запустить EXE-файл на Mac?
Exe-файлы не используются в качестве исполняемых файлов в Mac OS. Однако, если вы хотите запустить исполняемый файл в Mac OS, можно использовать следующие методы.
- Wine. Wine — идеальное решение для тех, кто хочет использовать свои приложения для ПК в системах Mac. Это аббревиатура, расшифровывающаяся как «Wine Is Not A Emulator». Wine создает ту же среду каталогов, что и Microsoft, поэтому вы можете запускать приложения Windows, используя его.
- Виртуальные машины. Создайте виртуальную машину Windows с помощью Parallel Desktop или VM Virtual Box и запустите свое приложение внутри виртуальной машины.
- Boot Camp. Установка и настройка Windows Boot Camp в Mac OS позволяет запускать ОС Windows на компьютере Mac.