Executable and Linkable Format
tiedostomuoto From Wikipedia, the free encyclopedia
Remove ads
Executable and Linkable Format lyhyesti ELF on yleinen tiedostomuoto suoritettaville ohjelmille, objektitiedostoille, jaetuille kirjastoille ja coredump-tiedostoille.[1] Rakenteeltaan ELF on joustava, laajennettavissa oleva ja alustariippumaton tiedostomuoto.
Tämä artikkeli tai sen osa on tuotu vieraskielisestä lähteestä ja käännös on keskeneräinen. Voit auttaa Wikipediaa tekemällä käännöksen loppuun. |

ELF on määritelty System V ABI -määrittelyssä[2] ja Tool Interface Standards (TIS) määrittelyssä: alkuperäisen ELF-muodon kehitti ja julkaisi Unix System Laboratories (USL).[3]
Remove ads
Tiedoston rakenne
ELF-tiedosto sisältää ELF-ylätunnisteen (engl. header), joka muun muassa määrittää onko ohjelma 32 vai 64-bittinen. ELF-ylätunnisteen jälkeen tiedostossa on ohjelman ylätunnistetaulukko (engl. Program header table), itse ohjelma ja viimeiseksi ohjelman osuuksien ylätunnistetaulukko (engl. Section header table).[1]
00000000 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 |.ELF............| 00000010 02 00 3e 00 01 00 00 00 c5 48 40 00 00 00 00 00 |..>......H@.....| Esimerkki ELF-ylätunnisteen hexdumpista[4] |
Remove ads
ELF-ylätunniste
ELF-ylätunniste määrittää onko ohjelma 32- vai 64-bittinen. Bittisyys vaikuttaa tietueiden offsettiin.
Ohjelman ylätunniste
Ohjelman ylätunnistetaulukko kertoo, kuinka ohjelma tulee ladata muistiin.
Remove ads
Osion ylätunniste
Käyttökohteet
Unixin kaltaiset alustat
ELF-muoto on korvannut vanhempia muotoja useilla alustoilla kuten a.out ja COFF-muodot Unixin kaltaisissa käyttöjärjestelmissä:
Ei-Unix -alustat
ELF on myös käytössä eräillä ei-Unix alustoilla kuten:
- OpenVMS, Itanium ja x86-64 versiot[9][10]
- BeOS Revision 4 ja myöhemmät x86-pohjaisille tietokoneille (joissa se korvasi Portable Executable -muodon; PowerPC-versio pysyi Preferred Executable Format -muodossa)
- Haiku, avoimen lähdekoodin uudelleentoteutus BeOSista
- RISC OS[11]
- Stratus VOS, PA-RISC ja x86 versioissa
- Windows 10 Anniversary Update using the Windows Subsystem for Linux.[12][13]
- SkyOS
- Fuchsia OS
- Z/TPF
- HPE NonStop OS[14]
Pelikonsolit
Eräät pelikonsolit käyttävät ELF-muotoa:
PowerPC
Muut alustat PowerPC-suorittimilla jotka käyttävät ELF-muotoa:
Mobiililaitteet
Eräät käyttöjärjestelmät matkapuhelimille ja muille mobiililaitteille käyttävät ELF-muotoa:
- Symbian OS v9 käyttää E32Image[16] -muotoa joka perustuu ELF-muodolle;
- Sony Ericsson, muun muassa W800i, W610, W300 ja niin edelleen
- Siemens, SGOLD ja SGOLD2 alustat: Siemens C65:stä S75:een ja BenQ-Siemens E71/EL71;
- Motorola, muun muassa E398, SLVR L7, v360, v3i (ja kaikki LTE2-puhelimet joissa on päivitys).
- Bada, esimerkiksi Samsung Wave S8500.
- Nokia puhelimet ja tabletit Maemo- tai Meego-käyttöjärjestelmällä kuten Nokia N900.
- Android käyttää ELF
.so
(shared object[17]) kirjastoja Java Native Interfacelle. Android Runtime (ART) (oletuksena Android 5.0 "Lollipop" versiosta alkaen) kaikki sovellukset käännetään natiivisti ELF-binääreiksi asennuksen yhteydessä.
Ohjelmia
readelf
ohjelma joka näyttää tietoa elf-tiedostoista.elfutils
vaihtoehtoinen ohjelmapaketti GNU Binutilsin tilalle, joka on tehty erityisesti Linuxia varten.[18]elfdump
ohjelma joka näyttää tietoa elf-tiedostosta.objdump
ohjelma jolla voidaan tarkastella monipuolisesti eri tietoja elf-tiedostoista ja muista binääriformaateista.file
ohjelma joka näyttää tietoa elf-tiedostoista.
Lähteet
Aiheesta muualla
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads