给定一些纯机器语言命令,例如以下字节:
1011100010011010000000100000000000000000
11000011
(取自:如何在没有 EXE 或 ELF 等容器的情况下手动编写和执行 PURE 机器代码?)?我知道通常需要一个 .EXE、ELF 或 .OUT 包装器,但据我所知,这些格式是特定于平台的,只是为了能够双击并运行它们。
是否存在可以在 windows、linux 和 mac 之间双击并运行相同机器代码的文件格式(假设没有外部依赖项)?
给定一些纯机器语言命令,例如以下字节:
1011100010011010000000100000000000000000
11000011
(取自:如何在没有 EXE 或 ELF 等容器的情况下手动编写和执行 PURE 机器代码?)?我知道通常需要一个 .EXE、ELF 或 .OUT 包装器,但据我所知,这些格式是特定于平台的,只是为了能够双击并运行它们。
是否存在可以在 windows、linux 和 mac 之间双击并运行相同机器代码的文件格式(假设没有外部依赖项)?
是否存在可以跨 windows、linux 和 mac 双击并运行相同机器代码的文件格式(假设没有外部依赖项)?
最简洁的答案是不。
更长的答案是您正在混合概念和抽象级别:双击不是操作系统级别的概念,并且没有操作系统运行二进制文件来响应双击。
它们都运行二进制文件以响应系统调用execve
或CreateProcess
系统调用,并且不存在所有 Linux、Mac OS 和 Windows 上的操作系统都可以接受的通用文件格式。
unity 的“windows、mac 和 linux 独立”游戏构建是如何工作的
与 Pythonfoo.py
文件在所有平台上的工作方式相同:有一个本地二进制文件可以解释游戏中包含的代码。本机二进制文件在每个平台上都有不同的文件格式(ELF
在 Linux、Mach-O
Mac、PE
Windows 上)。