Почему не будет работа exe's окон над Linux?

Я не спрашиваю о том, как сделать Windows exe работой в Linux.

Я спрашиваю, ПОЧЕМУ это не работает.

Что является особенным в способе, которым Windows выполняет исполняемый файл, и Linux выполняет исполняемый файл? Почему они должны были отличаться? Кроме того, почему исполняемые файлы Linux не имеют расширения файла?

29
задан 13.07.2014, 13:33

3 ответа

Linux и исполняемые файлы Windows используют различные форматы. Linux использует формат ELF на большей части архитектуры, в то время как Windows использует формат PE. ELF лучше подходит для способа, которым Linux управляет совместно использованными библиотеками, и PE лучше подходит для способа, которым Windows управляет совместно использованными библиотеками, но нет никакой фундаментальной причины, почему Linux не мог выполнить исполняемые файлы PE или исполняемые файлы Windows ELF. На самом деле Linux может выполнить исполняемые файлы PE через Вино.

Трудность состоит в том, что Windows и Linux имеют совершенно другие API: у них есть различные интерфейсы ядра и наборы библиотек. Таким образом для фактического выполнения Приложения Windows Linux должен был бы эмулировать все вызовы API, которые делает приложение. Это - большая работа. Вино делает это в некоторой степени, но это очень твердо, тем более, что производитель Windows не сотрудничает. Можно сравнить его с, скажем, изучением английского языка, когда родной язык является китайским: формат исполняемых файлов является алфавитом (не, что трудно ведущему устройству), API является словарем (занимает годы для получения до уровня, где можно начать читать литературу).

45
ответ дан 07.12.2019, 09:19

Двоичные файлы Windows имеют другой ABI и используют другой API, чем двоичные файлы Linux.

Для двоичных файлов Linux не нужно расширение, потому что *отклоняют биты полномочий использования для идентификации исполняемого файла вместо расширения.

14
ответ дан 07.12.2019, 09:19

Это - то, как я слышал сторону окон, объясненную в терминах laymans от программистов.

В Windows существуют рычаги в программах и ОС, что Exe выполняет вызовы к той просто привычке быть там в Linux. Из-за различий в обоих среды. Первоначально Linux ищет полномочия, Windows ищет связываемый формат сначала путем исследования расширения, рассмотрения свойств, затем смотрящих в EXE-файле и т.д.

Существуют приложения как Netbackup, который начался в Linux и был изменен для выполнения в среде окон с использованием вина, по моему скромному мнению, часто это - некоторые самые стабильные лучшие ведущие себя Приложения Windows.

Когда Приложения Windows. станьте непослушными обычно, это - потому что некоторые из тех рычагов, сохраненных приложением, не были полностью выпущены, и окна думает, что они были (Утечки памяти). Когда Windows раздает то невыпущенное пространство памяти к другому сбою приложения и записи.

0
ответ дан 07.12.2019, 09:19

Теги

Похожие вопросы