OS (운영체제)

linker script (링커 스크립트) - 임시

지창준 2023. 12. 27. 23:15

OS개발시 중요

파일의 엔트리 포인트 주소를 지정해줄 수 있다 (메모리에 배치)

즉, 기존 C언어 에서의 엔트리 포인트가 main()함수가 엔트리 포인트인데 이를 변경

`커널을 로딩할 위치, 스택 초기값 세팅, 커널 사이즈

 

cpu의 메모리 맵에 따라 실행 파일을 어떻게 생성할 것인지

 

컴파일후 오브젝트 파일을 생성하고

오브젝트 파일을 링킹하여 최종 실행 파일을 생성하는데 사용되는 스크립트

(여러 오브젝트 파일들의 섹션을 추출해서(합쳐서) 하나의 바이너리(파일)로 만듬)

 

오브젝트 파일은 코드,데이터,힙,스택 영역으로 나눠진다

 

즉, 링커 스크립트는 각 영역의 start 주소와 end주소를 지정해 기록하는 곳

 

메모리 할당 (프로그램이 메모리에서 어떻게 배치 되는지 정의)

섹션 배치 (각 섹션에 대한 할당을 지정)

실행 파일의 구조 (시작점을 설정)

 

메모리 주소지정 - 세그먼트와 섹션들이 메모리에서 어떤 위치에 위치할지 결정

세그먼트와 섹션 정의 - 프로그램의 메모리 영역을 나누고, 섹션들을 각 세그먼트에 할당

심볼 정의와 선언 - 링크에 참여하는 여러 오브젝트 파일에서 정의된 전역 변수나 함수에 대한 위치 정의