---
# System prepended metadata

title: ELF

---

# ELF
## what is ELF[reference](https://stevens.netmeister.org/631/)
有4種
1. executable file : a.out
2. object file : hello.o
3. shared library(不會提到)
4. core dump(不會提到)

在程式編譯的過程中：
先確定high level language 沒有錯誤後，會優化並轉成符合不同架構的assembly code,
而這就是.o檔，要在經過linker後，將裡面需要的各種object file連起來（像在call c library)
最後在由loader將我們的program 複製到主記憶體裡，這裡面可能有dynamic linking

