Elf (Executable and Linking Format) merupakan file objek yang dipakai di
linux dan sistem operasi turunan unix lainya.
3 macem elf utama yang umumnya ada di sistem2 nix:
1. ELF LSB Relocatable
2. ELF LSB Executable
3. ELF LSB shared object

Seperti yang kita ketahui bersama bahwa Dari suatu source code misal dari
bahasa c hingga menjadi elf executable
akan melalui 3 proses:
1. Proses Kompile
2. Proses Assemble
3. Proses Linking

ok untuk jelasnya perhatikan permainan di bawah ini:
=============
root@jasaplus:~/elf# uname -a
Linux jasaplus ********** #1 SMP ********** MSD 2011 x86_64
root@jasaplus:~/elf# file elz.c
elz.c: ASCII C program text
============

ok kita punya suatu source code c dengan nama file elz.c, selanjutnya kita
akan kompile menjadi kode assembler dg gcc;
================================
root@jasaplus:~/elf# gcc -S elz.c
================================

setelah kita kompile terciptalah kode2 assembly dengan nama file elz.s:
=============
root@jasaplus:~/elf# head -20 elz.s
       .file   "elz.c"
       .section        .rodata
LC0:
       .string "/usr/bin/perl"
       .text
globl jalankan
       .type   jalankan, @function
jalankan:
LFB0:
       .cfi_startproc
       pushq   %rbp
       .cfi_def_cfa_offset 16
       movq    %rsp, %rbp
       .cfi_offset 6, -16
       .cfi_def_cfa_register 6
       pushq   %rbx
       subq    $712, %rsp
       movl    %edi, -708(%rbp)
       movq    $0, -416(%rbp)
       leaq    -408(%rbp), %rbx
===================

Selanjutnya kita akan melakukan assemble dari kode asm di atas menjadi
suatu file elf lsb relocatable
==================
root@jasaplus:~/elf# as elz.s -o elz.o
root@jasaplus:~/elf# file elz.o
elz.o: ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), not stripped
=================

kita bisa lihat terciptalah suatu objek elf lsb relocatable setelah kita
lakukan assemble dengan as.

nah file elf lsb relocatable yang tercipta di atas merupakan suaru objek
elf yang isinya kode dan data
yang siap dilinking dengan objek file lainya untuk kemudian siap menjadi
suatu elf lsb executable atau
elf lsb shared object.
Proses terakhir adalah linking:
=============
root@jasaplus:~/elf# gcc -o elz elz.o
root@jasaplus:~/elf# file elz
elz: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically
linked (uses shared libs), not stripped
============

setelah dilinking terciptalah suatu elf lsb executable !

untuk mengetahui shared2 object yang dilinking bisa kita cek dg ldd:
==========
root@jasaplus:~/elf# ldd elz
       linux-vdso.so.1 =>  (0x00007fff583fd000)
       libc.so.6 => /lib64/libc.so.6 (0x00002b49a6d58000)
       /lib64/ld-linux-x86-64.so.2 (0x00002b49a6b35000)
============