Presentation is loading. Please wait.

Presentation is loading. Please wait.

Hand-Held Devices and Embedded Systems Course Student: Tomás Sánchez López Student ID: 20042116.

Similar presentations

Presentation on theme: "Hand-Held Devices and Embedded Systems Course Student: Tomás Sánchez López Student ID: 20042116."— Presentation transcript:

1 Hand-Held Devices and Embedded Systems Course Student: Tomás Sánchez López Student ID:

2 What is ELF Basics Executables Linking View Execution View Example Loading and Executing and ELF executable Various Conclusions Outline

3 Stands for Executable and Linking Format Standarized executable file format used in most Unix sytems Subsitute of traditional a.out due to efficiency issues (i.e dynamic linking) Developed originally in Unix Systems Laboratory (USL) and adopted by The Tool Interface Standard (TIS) committe. What is ELF?

4 Three main types of ELF object files Relocatable files: code and data to be linked with other object files Executable files Shared object files: Libraries Object file: binary representation of programs intended to execute directly on a processor Basics

5 Static vs Dynamic Executables Static: Self contained. Too large files due to static inclussion of library code Dynamic: Using external code or data at run time. More convinient Two views of executables according to their participation: Linking view: Executable participation in program linking Execution view: Executable participation in program execution Executables

6 Link View: Used at static linking time for relocatable file combination Execution View: Used at run time to load and execute programs

7 Executables Elf Header describes the files organization and resides always at the beginning Program Header Table, if present, tells the system how to create a process image Section Header Table, if present, contains information describing the filess sections Relocatable files have section headers tables. Executable files have program headers tables. Shared object files have both.

8 Linking View Divides the object files into a collection of sections Sections have : Name and type Requested memory ocation at run time Permissions Each section contains a single type of information and can contain flags (writable data, memory space during execution or executable machine instructions)

9 Linking View Important Sections:.interpPath name of program interpreter (Dynamic linker).textCode (executable instructions) of a program.dataInitialized data.bssUninitilized data.initExecutable instruction for process initilization.finiExecutalbe intructions for process termination.ptlHolds the procedure linkage Relocation information for section.dynamicDynamic linking information

10 Execution View Simpler view that divides the object file into segments Segments have: Simple type Requested memory location Permissions Size (in file and in memory) All loadable sections are packed into segments so that file mapping is easier

11 Execution View Segment Types: LOADPortion of file to be loaded into memory INTERPPointer to dynamic linker for this executable (.interp section) DYNAMICPointer to dynamic linking information (.dynamic section)

12 Example int x = 5; int main() { int r = x +funtion (); exit (0); } int v = 10; int u = 32; int z; int function() { return v+u; } Relocatable file 2 Relocatable file 1

13 Example System Code System Data main () int x = 5 funtion () int v = 10 int u = 32 int y Relocatable Object files Headers System code main () a () System Code System Data int x = 5 int v = 10 int u = 32 Uninitialized data

14 Loading and Executing and ELF Executable 1.Open the file 2.Map LOAD segments into memory 3.Call the dynamic linker specified in the INTERP segment, passing information about the executable 1.Handles all the dynamic/shared library needs of the executable 2.Retrieves information from the DYNAMIC segment 3.Loads all required libraries into memory 4.Modifies executable so it can access needed resources in the libraries

15 Load and Executing and ELF Executable Relocatable File 1 Relocatable File N Executable Object File Shared Libraries Executing … Dynamic Linker Basically: Static Linking

16 Various Shared Libraries Need to be compiled memory position independent (PIC) Uses a Global Offset table (GOT) with pointers to variables created at compile and linking time Uses the Procedure Linkage Table (PLT) for procedure library calling Implies some performance disadvantages

17 Various Others Relocations tell dynamic linker to rewrite parts of the excutable to refer to external resources Exists a dynamic debugging structure offering information about process memory layout and binaries loaded

18 Conclusions Logical evolution of old executable formats Convinient double view depending for linking and executing time Great support for dynamic linking, cross- compilation and others Convinient separation between file types depending on its function Standard and defined functionality for nowadays executable file needs in diferent platforms

19 References For an exhaustive review of ELF specification please refer to: Executable and Linkable Format (ELF) Tool Interface Standards (TIS), Portable Formats Specification, Version 1.1

Download ppt "Hand-Held Devices and Embedded Systems Course Student: Tomás Sánchez López Student ID: 20042116."

Similar presentations

Ads by Google