Das Mach-O (Mach Object) Dateiformat ist ein von macOS, iOS, watchOS und tvOS verwendetes Dateiformat für ausführbare Dateien (Executables), Objektcode, gemeinsam genutzte Bibliotheken (Shared Libraries), dynamisch geladenen Code und Core Dumps. Es stellt einen modernen Ersatz für das ältere, von NeXT/SunOS abgeleitete 'a.out'-Format dar. Mach-O zeichnet sich durch seine Flexibilität und Erweiterbarkeit aus, indem es die Unterstützung mehrerer Architekturen und Objekttypen innerhalb einer einzigen Datei ermöglicht. Ein herausragendes Merkmal ist die Fähigkeit, sogenannte 'Fat Binaries' (universelle Binärdateien) zu erstellen, die auf verschiedenen Prozessorarchitekturen ohne jegliche Modifikation lauffähig sind. Die interne Struktur des Formats gliedert sich typischerweise in einen Header, eine Reihe von Ladebefehlen (Load Commands) und verschiedene Datenabschnitte (Data Sections). Der Header liefert grundlegende Informationen über den Dateityp, die Zielarchitektur und die Gesamtanzahl der nachfolgenden Ladebefehle. Die Ladebefehle sind entscheidend, da sie dem Betriebssystem detailliert vorgeben, wie die Datei geladen und verknüpft werden soll. Dazu gehören Angaben zu Segmenten, Abschnitten, Symbolen und den benötigten dynamischen Bibliotheken. Die Datenabschnitte beherbergen schließlich den eigentlichen Programmcode und die zugehörigen Daten. Insgesamt sind Mach-O-Dateien von zentraler Bedeutung für die korrekte Ausführung von Anwendungen und Systemsoftware auf allen Apple-Plattformen.