Mach-O (Mach Object) 파일 형식은 macOS, iOS, watchOS 및 tvOS와 같은 Apple 운영 체제에서 실행 파일(executables), 오브젝트 코드(object code), 공유 라이브러리(shared libraries), 동적 로드 코드(dynamically loaded code) 및 코어 덤프(core dumps)에 사용되는 핵심 파일 형식입니다. 이는 구형 NeXT/SunOS 기반의 "a.out" 형식을 대체하기 위해 개발되었습니다. Mach-O는 유연하고 확장 가능한 형식으로, 단일 파일 내에서 여러 프로세서 아키텍처와 다양한 오브젝트 유형을 지원합니다. 이 특성 덕분에 수정 없이 여러 아키텍처에서 실행 가능한 "팻 바이너리(fat binaries)" 생성이 가능합니다. Mach-O 파일 구조는 크게 헤더(header), 로드 커맨드(load commands), 그리고 데이터 섹션(data sections)으로 나뉩니다. 헤더는 파일 유형, 대상 아키텍처, 로드 커맨드의 총 개수와 같은 기본적인 정보를 제공합니다. 로드 커맨드는 운영 체제가 파일을 메모리에 로드하고 링크하는 방법을 지정하며, 세그먼트(segments), 섹션(sections), 심볼(symbols) 및 동적 라이브러리(dynamic libraries)에 대한 중요한 정보를 포함합니다. 데이터 섹션에는 프로그램의 실제 실행 코드와 데이터가 저장됩니다. Mach-O 파일은 Apple 플랫폼에서 애플리케이션 및 시스템 소프트웨어의 실행에 필수적인 역할을 수행합니다.