Mach-O(Mach 对象)文件格式是 macOS、iOS、watchOS 和 tvOS 等 Apple 操作系统使用的一种核心文件格式。它用于存储可执行文件、目标代码、共享库、动态加载代码以及核心转储(core dumps)。Mach-O 格式替代了早期源自 NeXT/SunOS 的 "a.out" 格式。Mach-O 是一种高度灵活且可扩展的格式,其关键特性是能够在单个文件中支持多种处理器架构和对象类型。这种能力使得“胖二进制文件”(fat binaries)成为可能,这些文件无需修改即可在不同的处理器架构上运行。Mach-O 文件的结构清晰,主要由三个部分组成:文件头(header)、加载命令(load commands)和数据段(data sections)。文件头包含关于文件类型、目标架构以及加载命令数量的基本信息。加载命令是操作系统加载和链接文件时的指令,它们详细说明了文件中的段(segments)、节(sections)、符号(symbols)和动态库(dynamic libraries)等信息。数据段则包含程序实际的代码和数据。Mach-O 文件对于 Apple 平台上的应用程序和系统软件的正常执行至关重要。