프로세스
코드 세그먼트(Code Segment)
- 실행 가능한 기계 코드가 위치한 영역
- 텍스트 세그먼트(Text Segment)라고도 불림
- 읽기 권한과 실행 권한 부여
- 쓰기 권한이 있으면 공격자가 공격하기 쉬워지므로 제거함
- 컴파일 돌렸을 때 기계어로 변환되고, 이 코드가 코드 세그먼트에 위치함
데이터 세그먼트(Data Segment)
- 컴파일 시점에 값이 정해진 전역 변수 및 전역 상수들이 위치함
- 읽기 권한 부여
- 두 개로 분류가 되는 데 쓰기가 가능한 세그먼트와 쓰기가 불가능한 세그먼트로 나뉜다.
- 쓰기가 가능한 세그먼트, data 세그먼트 는 값이 변할 수 있는 데이터들이 위치한다.
- 반면 쓰기가 불가능한 세그먼트는 rodata(read-only data) 세그먼트 는 값이 변할 수 없는 상수가 위치한다.
BSS 세그먼트(BSS Segment, Block Started By Symbol Segment)
- 컴파일 시점에 값이 정해져 있지 않은 전역 변수가 위치함