可执行文件
可执行文件是一种特定格式的文件,可以由计算机的操作系统直接加载并执行。可执行文件通常包含了程序的机器语言(编译后的二进制代码), 还有一些用于系统加载和运行的元数据。
“可执行文件”的各地常用名称 | |
---|---|
中国大陆 | 可执行文件 |
台湾 | 执行档 |
兼容性限制
可执行文件的内容和结构包含机器指令和系统调用,与操作系统和硬件架构密切相关。例如: Windows上的 .exe 文件包含Windows系统特有的结构和指令,Linux不直接支持这些文件格式和指令集。
CPU架构与指令集同样会影响可执行文件的兼容性, 常见的CPU架构有x86、x86-64、ARM等,可能需要根据不同的CPU架构分别编译不同的可执行文件。
为了让Windows可执行文件在Linux上运行,可以使用 Wine: Wine是一个开源的兼容层,提供了Windows API的实现,允许部分Windows程序在Linux或MacOS系统上运行。[1]
常见的可执行文件后缀名
不同操作系统有不同的可执行文件后缀,如:
PE(Portable Executable)格式用于Windows系统:
ELF(Executable and Linkable Format)是Linux和Unix系统中的标准:[3][4]
- .run:用于安装程序或自解压安装包的文件。
- .bin:一般用于可执行的二进制文件或独立发行版中的可执行文件。
Mach-O(Mach Object)格式用于macOS系统:[5]
- .app:包含可执行文件、资源和元数据,以文件夹形式出现,但实际是一个打包格式。
脚本文件
脚本文件通常使用脚本语言编写, 不经过编译处理,文件中保存的仍然是原始代码,通常是可读的ASCII文本。而传统的可执行文件通常是编译后的二进制文件, 这些文件已经过编译器的处理,将源代码转化成机器代码,直接由计算机的CPU执行。脚本文件执行时由解释器逐行读取并"翻译"给计算机执行。
参看
- ^ WineHQ - Run Windows applications on Linux, BSD, Solaris and macOS. WineHQ. [2024-11-13]. (原始内容存档于2024-11-13) (英语).
- ^ Karl-Bridge-Microsoft. PE Format - Win32 apps. learn.microsoft.com. 2024-02-29 [2024-11-13] (美国英语).
- ^ Linux Foundation - Decentralized innovation, built with trust. www.linuxfoundation.org. [2024-11-13] (英语).
- ^ Linux Foundation Referenced Specifications. refspecs.linuxfoundation.org. [2024-11-14].
- ^ Overview of the Mach-O Executable Format. developer.apple.com. [2024-11-13]. (原始内容存档于2024-07-23) (英语).