Executable and Linkage Format (ELF). Was ist ELF ● ELF ist das Standardformat für Binaries, Objektdateien und Shared Libraries unter den meisten *nixioden.

Slides:



Advertisements
Ähnliche Präsentationen
Strukturen in C Spelz, Sievers, Bethke.
Advertisements

4.5 Virtueller Speicher Problemsituation: Programme und Daten sind zu groß für den verfügbaren Arbeitsspeicher Frühere Lösung Aufspaltung der Programme.
Programmorganisation
SAP R/3 - Speichermanagement
Atmel AVR JTAG Einführung
Infrared Link Management Protocol IrLMP Das Link Management erfüllt folgende grundlegende Aufgaben 1.Aufgabe von Primary und Secondary können getauscht.
Praktikum Mobile Roboter
Strukturen. In einer Struktur kann eine beliebige Anzahl von Komponenten (Daten) mit unterschiedlichen Datentypen (im Gegensatz zu Feldern) zusammengefaßt.
METS / MODS. METS – Metadata Encoding and Transmission Standard – 2002 veröffentlicht – XML Schema – Reale Objekte digital abbilden – hierarchische Struktur.
Tag 2 Look-up-Tabellen, Zufallszahlen, Listen, Speichermanagement und Dateiverwaltung Quelle: 3D-Spiele mit C++ und DirectX in 21 Tagen, Alexander.
1 Named Pipes alias FIFO Haben einen Eintrag im Dateisystem und sind somit durch Zugriffsrechte identifizierbar Ermöglichen die Kommunikation zwischen.
Aufbau und Funktionsweise von Prozessoren
1 Linux Paging, Caching und Swapping. 1 Vortragsstruktur Paging – Das Virtuelle Speichermodell –Die Page Table im Detail –Page Allocation und Page Deallocation.
PC I Kursdauer:3 x 3 Stunden Dozentin:Johanna Vohwinkel.
Vorlesung 2 Rechnerarchitektur Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Vorlesung 3: Verschiedenes Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Rechnerarchitektur Vorlesung 2 Peter B. Ladkin
EDV1 - Komplexe Datentypen
Einführung in Visual C++
14StrukturKlasse1 Von der Struktur zur Klasse von C zu C++ Von Jens Hoffmann
Medien- Technik Grafikkarten Makroaufnahme Monitor mit Ordner-Icon Löcher, die meistens leuchten Hier einmal nicht...
Manfred Thaller, Universität zu Köln Köln 27. Januar 2009
Referat zum Thema „DLL“
METS (Metadata Encoding Transmission Standard). Wer und Was Digital Library Federation Vorgänger: MoA II (1997) Standard zur Beschreibung einer Teilmenge.
Semantic Media Showcase – Universität Potsdam
Ein kleiner Überblick Über die traditionellen Audiodatenformate
Umrechnung Bit und Bytes und Bibytes
1 Welche Maßnahmen muss man treffen, um sowohl unter BORLAND als auch unter KEIL kompilieren zu können? Eliminieren der zusätzlichen Schlüsselwörter Programmieren.
Systeme 1 Kapitel 4 Prozesse WS 2009/10.
Dateisysteme Marcel Waldvogel. Marcel Waldvogel, IBM Zurich Research Laboratory, Universität Konstanz, , 2 Dateisysteme Was ist eine Datei?
7th German CDISC User Group Basel, 11. März 2010 Willkommen zum Define.xml Workshop.
Intelligente Dateisysteme
Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung WS 12/13 Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung.
Metadata Encoding & Transmission Standard
Wird ganz am Anfang der HTML-Datei geschrieben Doctype html public bedeutet, dass man sich auf die Öffentlichkeit der html-dtd bezieht Html ist die meist.
Einführung in die Programmiersprache C 4
Wohlgeformtheit und Gültigkeit Grundlagen der Datenmodellierung Anke Jackschina.
Wer macht was beim Einschalten des Rechners?
Betriebssysteme Übung Tutorium „System Calls & Multipgrogramming“
Betriebssysteme Übung Tutorium „TLB & Virtual Memory“
Programmieren in C Module und Bibliotheken Hochschule Fulda – FB AI Sommersemester Peter Klingebiel, HS Fulda, DVZ.
Anna Steinke‌ WG13 ‌‌‌ Köln, Wie sichere ich meine Daten? Wie mache ich meinen PC sicher?
EUI-64 Format. Die Interface-ID in einer IPv6 Adresse identifiziert ein einzelnes Endgerät an einem Link.
Autor: Timo Pagel Nutzung: Diese Lernkarten sind für die Nutzung mit OpenCards gedacht Siehe dazu
Internet-Grundtechnologien. Client / Server Client („Kunde“): fordert Information / Datei an im Internet: fordert Internetseite an, z.B.
TCP/IP.
Text Encoding Initiative Universität zu Köln Daten- und Metadatenstandards Seminarleitung: Patrick Sahle Seminarleitung: Patrick Sahle Referentin: Anna.
Bs Dateien als Segmente Idee:Datei = persistentes Segment Konsequenzen:  Datei kann in virtuellen Adressraum eingeblendet werden (memory-mapped.
NE2000: Hardware und Design eines Treibers 1 AKBPII: Abschlusspräsentation NE2000: Hardware und Design eines prototypischen Treibers bearbeitet.
Bs Segmentierung Adressraum besteht aus mehreren Segmenten (segments), die unabhängig voneinander manipulierbar sind. Segmentierungsstruktur ist.
C Tutorium – Shared Memory – Knut Stolze. 2 Shared Memory Ein Speicherbereich, auf den mehrere Prozesse Zugriff haben – Also kein privater Speicher –
Synthetisierung von Audio und MIDI Referent Sebastian Frielitz.
Maya Kindler 5c. Man kann fertige Templates downloaden! Eine sehr gute Plattform ist joomlaos. Man.
Dateisystem Eine Präsentation von Kay Rubner, Maximilian Magendanz und Toni Materne.
Installationsanleitung Kumpan-electric_Controller Software und Treiber
Von Bits, Bytes und Raid Eine Schnuppervorlesung Inhalt
Geomapping. Themen Heute GeoJSON Paths Projections Features Daten beschaffen Projekte weiter bringen.
NTM-Praktikum 7, Teil 2: CRC-Verfahren NTM, 2006, CRC, Rur, 1 Cyclic Redundancy Check (zyklische Redundanzprüfung) Prüfwertbestimmung zur Fehlerdetektion.
Pointer. Precompiled Header  Vorübersetzung eingebundener Dateien häufig genutzt, selten geändert  Projekttyp „Win32 Console Application“
Rechen- und Kommunikationszentrum (RZ) Strukturierte Datensammlung in verteilten Systemen für den DHCP-Service Tim Becker Seminararbeit / /
Und seine Bestandteile Software und Hardware
Serienbrief erstellen mit LibreOffice Writer
Ein kleiner (Ein|Über)blick
Vorgehensweise bei der Portierung von Linux Software auf MS Windows
Programmieren in C Module und Bibliotheken
Natur und Technik Schwerpunkt Informatik
7th German CDISC User Group Basel, 11. März 2010
Hallo. Mein Name ist Tom. Herzlich Willkommen auf meiner Baustelle
Die Arbeit mit dem Editor in ILIAS
 Präsentation transkript:

Executable and Linkage Format (ELF)

Was ist ELF ● ELF ist das Standardformat für Binaries, Objektdateien und Shared Libraries unter den meisten *nixioden Systemen ● ELF ist sowohl das Executable als auch das Linkerformat ● ELF ist ein offener Standard, der architektur- und plattformunabhängig ist.

Wieso brauchen wir ELF? ● Das Betriebssystem muss wissen, wie es das Programmabbild von der Festplatte in den Speicher transferiert. ● Der Linker muss aus mehreren Objektdateien eine Executable oder eine Shared Library fertigen. ● Es wird ein einheitlicher Mechanismus für das dynamische Laden von Modulen gebraucht

Wie schaut das ELF Format aus? ● ELF-Header ● Section-Header (bei Objektdateien und.so Pflicht) ● Programm-Header (Exec Pflicht) ● Sections (bei Objektdateien und.so Pflicht) ● Segments (bei und Exec Pflicht) ● Memoryimage bzw. Symbole

ELF-Header #define EI_NIDENT 16 typedef struct { e_ident[EI_NIDENT]; unsigned char e_type; Elf32_Half e_machine; Elf32_Half e_version; Elf32_Word e_entry; Elf32_Addr e_phoff; Elf32_Off e_shoff; Elf32_Off e_flags; Elf32_Word e_ehsize; Elf32_Half e_phentsize; Elf32_Half e_phnum; Elf32_Half e_shentsize; Elf32_Half e_shnum; Elf32_Half e_shstrndx; Elf32_Half } Elf32_Ehdr;

e_ident entschlüsselt (1) ● e_ident identifiziert die ELF-Datei als ELF-Datei ● 0x7F, 'E', 'L', 'F' sind die ersten 4Bytes von e_ident und identifizieren die Datei als ELF Datei ● Das 5. Byte gibt an, ob die ELF Datei eine 32 oder 64 Bit Datei ist. ● Byte 6 gibt an, ob die Architektur LSB oder MSB ist. ● Byte 7 gibt die ELF Version an, momentan 1

e_ident entschlüsselt (2) ● Byte 8 gibt das Betriebssystem an ● Byte 9 gibt an, welche ABI vorausgesetzt wird. ● Byte 10 bis 16 sind unbenutzt, aber für den weiteren Ausbau von ELF reserviert

Der Rest entschlüsselt (1) ● e_type gibt die Art der Datei an (Executable, Shared Library oder Objektdatei). ● e_machine gibt an, für welchen Prozessor die Datei geschrieben wurde. ● e_version ist nochmals die ELF-Version ● e_entry enthält die virtuelle Adresse des Programanfangs. ● e_phoff gibt die Position des Programmheaders innerhalb der Datei an

Der Rest entschlüsselt (2) ● e_shoff gibt die Position des Sectionheaders innerhalb der Datei an ● e_flags enthällt prozessorspezifische Flags ● e_ehsize ist die Größe des Headers in Bytes

Program Header typedef struct { Elf32_Word p_type; Elf32_Off p_offset; Elf32_Addr p_vaddr; Elf32_Addr p_paddr; Elf32_Word p_filesz; Elf32_Word p_memsz; Elf32_Word p_flags; Elf32_Word p_align; } Elf32_Phdr;

Programheader entschlüsselt ● p_type gibt an, was für eine art Segment wir haben ● p_offset gibt an, wo der Programheader in file anfängt ● p_vaddr gibt an, an welcher virtuellen Adresse das Segment geladen werden soll ● p_paddr gibt an, wenn nötig, an welcher Physikalischen Adresse geladen werden soll

Programheader entschlüsselt (2) ● p_filesz gibt an, wie groß das Segment in der Datei ist ● p_memsz gibt an, wie groß das Segment im Speicher sein soll ● p_flags sind Optionen für das Segment. Bsp. Ob das Segment readonly ist. ● p_align gibt an, wie das Segment in der Datei im Speicher ausgerichtet ist bzw. werden soll

Quellen (Der Anti-Guttenberg) ● ● e/tiny/teensy.html e/tiny/teensy.html ●