可执行文件

可执行文件是一种特定格式的文件,可以由计算机的操作系统直接加载并执行。可执行文件通常包含了程序的机器语言(编译后的二进制代码), 还有一些用于系统加载和运行的元数据。

“可执行文件”的各地常用名称
中国大陆可执行文件
台湾执行档

兼容性限制

可执行文件的内容和结构包含机器指令和系统调用,与操作系统和硬件架构密切相关。例如: 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系统:

  • .exe:目前最常见的 Windows 可执行文件格式。[2]
  • .com:早期DOS格式的可执行文件,体积通常小于.exe文件。

ELF(Executable and Linkable Format)是Linux和Unix系统中的标准:[3][4]

  • .run:用于安装程序或自解压安装包的文件。
  • .bin:一般用于可执行的二进制文件或独立发行版中的可执行文件。

Mach-O(Mach Object)格式用于macOS系统:[5]

  • .app:包含可执行文件、资源和元数据,以文件夹形式出现,但实际是一个打包格式。

脚本文件

脚本文件通常使用脚本语言编写, 不经过编译处理,文件中保存的仍然是原始代码,通常是可读的ASCII文本。而传统的可执行文件通常是编译后的二进制文件, 这些文件已经过编译器的处理,将源代码转化成机器代码,直接由计算机的CPU执行。脚本文件执行时由解释器逐行读取并"翻译"给计算机执行。

参看

  1. ^ WineHQ - Run Windows applications on Linux, BSD, Solaris and macOS. WineHQ. [2024-11-13]. (原始内容存档于2024-11-13) (英语). 
  2. ^ Karl-Bridge-Microsoft. PE Format - Win32 apps. learn.microsoft.com. 2024-02-29 [2024-11-13] (美国英语). 
  3. ^ Linux Foundation - Decentralized innovation, built with trust. www.linuxfoundation.org. [2024-11-13] (英语). 
  4. ^ Linux Foundation Referenced Specifications. refspecs.linuxfoundation.org. [2024-11-14]. 
  5. ^ Overview of the Mach-O Executable Format. developer.apple.com. [2024-11-13]. (原始内容存档于2024-07-23) (英语).