Какой формат файла может быть выполнен для windows, linux и Mac - PullRequest
0 голосов
/ 27 апреля 2020

с некоторыми командами на чистом машинном языке, например, следующими байтами:

1011100010011010000000100000000000000000
11000011

(взято из: Как написать и выполнить машинный код PURE вручную без контейнеров, таких как EXE или ELF? )? Я понимаю, что в целом должна быть оболочка .EXE, ELF или .OUT, но, насколько мне известно, эти форматы зависят от платформы c, чтобы иметь возможность дважды щелкнуть и запустить их.

Существует ли формат файла, который можно дважды щелкнуть по windows, linux и ma c и выполнить тот же машинный код (при условии отсутствия внешних зависимостей)?

1 Ответ

2 голосов
/ 27 апреля 2020

Существует ли формат файла, который можно дважды щелкнуть по windows, linux и ma c и запустить тот же машинный код (при условии отсутствия внешних зависимостей)?

Краткий ответ - нет.

Более длинный ответ заключается в том, что вы смешиваете понятия и уровни абстракций: двойной щелчок не является понятием уровня ОС, и никакая ОС не запускается двоичный файл в ответ на двойной щелчок.

Все они запускают двоичный файл в ответ на execve или CreateProcess системный вызов , и не существует универсального формата файла, который будет приемлемо для ОС на всех Linux, Ma c OS и Windows.

как единичные "windows, ma c и linux автономные" сборка игры

Точно так же файл Python foo.py работает на всех платформах: существует нативный двоичный файл, который интерпретирует код содержится в игре. Собственный двоичный файл имеет разные форматы файлов на каждой платформе (ELF на Linux, Mach-O на Ma c, PE на Windows).

...