0

给定一些纯机器语言命令,例如以下字节:

1011100010011010000000100000000000000000
11000011

(取自:如何在没有 EXE 或 ELF 等容器的情况下手动编写和执行 PURE 机器代码?)?我知道通常需要一个 .EXE、ELF 或 .OUT 包装器,但据我所知,这些格式是特定于平台的,只是为了能够双击并运行它们。

是否存在可以在 windows、linux 和 mac 之间双击并运行相同机器代码的文件格式(假设没有外部依赖项)?

4

1 回答 1

2

是否存在可以跨 windows、linux 和 mac 双击并运行相同机器代码的文件格式(假设没有外部依赖项)?

最简洁的答案是不。

更长的答案是您正在混合概念和抽象级别:双击不是操作系统级别的概念,并且没有操作系统运行二进制文件来响应双击。

它们都运行二进制文件以响应系统调用execveCreateProcess 系统调用,并且不存在所有 Linux、Mac OS 和 Windows 上的操作系统都可以接受的通用文件格式。

unity 的“windows、mac 和 linux 独立”游戏构建是如何工作的

与 Pythonfoo.py文件在所有平台上的工作方式相同:有一个本地二进制文件可以解释游戏中包含的代码。本机二进制文件在每个平台上都有不同的文件格式(ELF在 Linux、Mach-OMac、PEWindows 上)。

于 2020-04-27T19:34:47.870 回答