Mach-O
Tipus | Binari, executable, objecet, shared libraries, core dump |
---|---|
Extensió | o , dylib i bundle |
Magic number | CFFAEDFE, CEFAEDFE, FEEDFACE i FEEDFACF |
Desenvolupador | Carnegie Mellon University, Apple Inc. |
Més informació | |
Wiki del format de fitxer | Mach-O |
PRONOM | fmt/693 |
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]- ↑ «Overview of the Mach-O Executable Format» (en anglès). [Consulta: 8 desembre 2023].
- ↑ «Understanding the Mach-O File Format» (en anglès), 16-05-2020. [Consulta: 8 desembre 2023].
- ↑ «OS X ABI Mach-O File Format Reference» (en anglès). Apple Inc., 04-02-2009. Arxivat de l'original el September 4, 2014.
- ↑ «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.