Untitled

ELF Header

.init Section

프로그램 진입 포인트 실행 이전에 먼저 실행되는 코드가 있는 섹션. 이를테면, main 함수 이전에 프로세스 초기화를 진행하는 코드가 있는 공간이다.

.text Section

기계어로 변환된 프로그램 코드가 존재하는 공간이다.

.rodata Section

Read-Only 데이터를 의미하며, const, printf, switch case 문에 의한 Jump Table 등이 존재한다.

.data Section

전역변수와 static 변수들이 있는 공간이다 (초기화가 이뤄진 경우, ROM에서 데이터를 가져와서 RAM에 로드해야 한다.)

.bss Section

전역 변수와 Static 변수들이 있는 공간이다 (값이 없기 때문에 별도의 로드가 필요없다.)

.symbol Section

Symbol Table Section, 소스 코드에서 참조되는 심볼들의 이름과 주소가 정의되어 있다. 다른 파일에서 참조되는 심볼의 경우에는 심볼 테이블 내에 심볼이 존재하지 않는다.

.rel.text Section

Relocatable Text Section, 불완전한 데이터의 주소나 코드의 메모리 참조주소가 위치한다. 링크가 실행가능한 오브젝트 파일을 만들기 위해 여러 소스파일들을 묶을 때 필요하다.

.rel.data Section

Relocatable data Section, 불완전한 심볼들의 메모리 참조주소가 위치한다.

이 또한 링커가 실행가능한 오브젝트 파일을 만들기 위해 여러 소스 파일들을 묶을 때 필요하다.