Примечания
Если вы действительно хотите узнать, какие другие платформы, кроме Windows, поддерживают .NET / управляемые исполняемые файлы, то ваш вопрос немного широк или немного вводит в заблуждение, когда вы спрашиваете оформат PE.
Формат файла PE - это в основном формат файла.В настоящее время он используется в двух основных целях:
- Формат файла, который (собственные) исполняемые файлы используют на 32-битной и 64-битной платформах Windows.
- Формат файла, которым управляет .NET) Исполняемые файлы используют.
В следующем списке приведены примеры для обоих применений.Более конкретно, только Mono использует его, как во втором случае выше (а не в первом).Все остальные используют его в смысле первого случая выше (а не во втором).
Почему Microsoft выбирает формат файла PE для .NET?Возможно, потому что у них уже была вся инфраструктура (загрузка и т. Д.), И нужно было только что-то использовать для .NET.Например, в .NET (в Windows) нет необходимости использовать какую-либо команду загрузчика для запуска приложения, например java.exe -jar ...
или python.exe ...
, но можно запускать и запускать ее как собственный исполняемый файл.
Иллюстрированный упрощенно, файл .NET PE содержит только одну ссылку на mscoree.dll
, которая затем будет загружать и выполнять содержащийся код MSIL как управляемое приложение.
Использует
ReactOS также должен использовать формат PE (а не только как контейнер для сборки .NET), поскольку предполагается, что он двоично совместим с Microsoft Windows (NT).
Обновление
На самом деле, когда вы Google "pe file format", первая ссылка, которая появляется, это эта статья в Википедии о формате PE ,В нем есть раздел об использовании формата файла, который в основном содержит следующее:
- ReactOS
- BeOS R3 и SkyOS (исторически; однако они перешли на ELF)
- MacOS X 10.5 (но не двоично совместимый с Windows)
Не настоящие операционные системы в истинном смысле, но тем не менее:
- Mono.Здесь следует отметить одно или два отличия от других вариантов использования
- Mono (по умолчанию , в Linux вы можете зарегистрировать его как нестандартный двоичный файл ) требует запуска приложения с использованием
mono
команда.Таким образом, вы могли бы утверждать, что в данном случае это не та ОС, которая поддерживает формат PE (так же, как она не поддерживает сценарии PHP или что-то еще).Но это спорный и, возможно, несущественный момент. - Он может обрабатывать только PE-файлы "для .NET".
- Эмуляторы: Wine, HX DOS Extender
Обратите внимание, что OS / 2 (2.x и выше) не использует PE, хотя исторически это, вероятно, могло бы быть (учитывая общую историю NT и NT).Он использует линейный исполняемый файл формата .