Top-Fragen
Zeitleiste
Chat
Kontext

Mach-O

Dateiformat Aus Wikipedia, der freien Enzyklopädie

Remove ads

Mach-O, für Mach Object, beschreibt das Standard-Binärformat ausführbarer Programme, Bibliotheken und von Speicherauszügen unter vielen MACH-basierten UNIX-Betriebssystemen wie beispielsweise OPENSTEP (ursprünglich NeXTStep), FreeBSD oder macOS (ursprünglich unter dem Namen Mac OS X).

Es wurde ab 1985 an der Carnegie Mellon University, kurz CMU, für das MACH-Betriebssystem entwickelt. Große Verbreitung hat es vor allem unter NeXTStep und dessen Weiterentwicklung macOS und darauf basierenden Apple-Systemen, wie iOS und iPadOS. Mit Universal Binaries, unter NeXTStep Multi-Architecture Binaries, wurde das Format zudem um Multi-Prozessorarchitektur-Fähigkeit erweitert.

Remove ads

Aufbau

Zusammenfassung
Kontext

Eine Mach-O-Datei besteht im Wesentlichen aus drei Teilen:[1]

  • Kopfinformationen, englisch header
    • Magic
    • diverse Flags
    • Anzahl und Größe der Load commands
  • Load commands
    • Metadaten
    • Offset-Addressen der Segmente
  • Segmente, segments
    • bis zu 255 Sektionen, sections

Der Mach-Header ist ein 32 Bytes großer Bereich am Anfang einer 64-Bit-Mach-O-Binärdatei bzw. 28 Bytes bei 32-Bit-Mach-O. Der folgende Quelltext stammt aus osfmk/mach-o/loader.h von XNU, dem Kernel von macOS.[2]

struct mach_header_64 {
	uint32_t	    magic;		    /* mach magic number identifier */
	cpu_type_t	    cputype;	    /* cpu specifier */
	cpu_subtype_t	cpusubtype;	    /* machine specifier */
	uint32_t	    filetype;	    /* type of file */
	uint32_t	    ncmds;  		/* number of load commands */
	uint32_t	    sizeofcmds; 	/* the size of all the load commands */
	uint32_t	    flags;	    	/* flags */
	uint32_t	    reserved;   	/* reserved (64-Bit only) */
};

Ein Beispiel für einen Mach-Header aus einer beliebigen Programmdatei:[3]

Weitere Informationen Offset (hex), Länge (dec) ...
Remove ads

Siehe auch

Einzelnachweise

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads