Исполняемая проблема, такая как exe, не работает на Linux (без вина). При компиляции компилятора исходного кода создается объектный код, специфичный для конкретной архитектуры процессора. Но одно приложение не работает с другой ОС с одним и тем же ЦП. Я знаю, что код может включать в себя инструкции, специфичные для ОС, которые предотвращают запуск исполняемого файла. Но как насчет простой программы 2 + 2? Запутанная часть - это черт, что машинный код мешает работе. Код машины, специфичный для процессора? Если мы удалим исполняемый формат файла, мы можем увидеть тот же машинный код (например, 2 + 2) для обеих операционных систем?
Еще один вопрос: а как насчет ассемблера? DO и Linux используют разные языки ассемблера для одного и того же процессора.