Mach-O

De la Viquipèdia, l'enciclopèdia lliure
Infotaula de format de fitxerMach-O
TipusBinari, executable, objecet, shared libraries, core dump
Extensióo, dylib i bundle Modifica el valor a Wikidata
Magic numberCFFAEDFE, CEFAEDFE, FEEDFACE i FEEDFACF Modifica el valor a Wikidata
DesenvolupadorCarnegie Mellon University, Apple Inc.
Més informació
Wiki del format de fitxerMach-O Modifica el valor a Wikidata
PRONOMfmt/693 Modifica el valor a Wikidata

Mach-O, abreviatura de Mach object file format, és un format de fitxer per a executables, codi objecte, biblioteques compartides, codi carregat dinàmicament i abocadors de nucli. Va ser desenvolupat per substituir el format a.out.[1]

Mach-O és utilitzat per alguns sistemes basats en el nucli Mach. NeXTSTEP, macOS i iOS són exemples de sistemes que utilitzen aquest format per a executables nadius, biblioteques i codi objecte.[2]

Disseny de fitxer Mach-O[modifica]

Cada fitxer Mach-O està format per una capçalera Mach-O, seguida d'una sèrie d'ordres de càrrega, seguida d'un o més segments, cadascun dels quals conté entre 0 i 255 seccions. Mach-O utilitza el format de reubicació REL per gestionar les referències a símbols. Quan cerca símbols, Mach-O utilitza un espai de noms de dos nivells que codifica cada símbol en un parell "nom objecte/símbol" que després es cerca linealment, primer per l'objecte i després pel nom del símbol.[3]

L'estructura bàsica, una llista de "ordres de càrrega" de longitud variable que fan referència a pàgines de dades en altres llocs del fitxer, també es va utilitzar en el format de fitxer executable per a Accent. El format de fitxer Accent es basava al seu torn en una idea de Spice Lisp.

Tots els valors de diversos bytes de totes les estructures de dades s'escriuen en l'ordre de bytes de l'amfitrió per al qual s'ha produït el codi.[4]

Capçalera de Mach-O[modifica]

Offset Bytes Descripció
0 4 Número màgic
4 4 tipus de CPU
8 4 subtipus de CPU
12 4 Tipus d'arxiu
16 4 Nombre d'ordres de càrrega
20 4 Mida de les ordres de càrrega
24 4 Banderes
28 4 Reservat (només 64 bits)

Referències[modifica]

  1. «Overview of the Mach-O Executable Format» (en anglès). [Consulta: 8 desembre 2023].
  2. «Understanding the Mach-O File Format» (en anglès), 16-05-2020. [Consulta: 8 desembre 2023].
  3. «OS X ABI Mach-O File Format Reference» (en anglès). Apple Inc., 04-02-2009. Arxivat de l'original el September 4, 2014.
  4. «Data Types» (en anglès). OS X ABI Mach-O File Format Reference. Apple Inc., 04-02-2009. Arxivat de l'original el 2014-09-04.