[운영체제] 12. 링커

임호연·2021년 5월 21일
0

기록

목록 보기
13/20
post-thumbnail

링커

쓰는 이유

  • 즉, 여러 개의 데이터 영역으로 쪼개진 저런 오브젝트 파일들을 하나로 합쳐주는 작업이다.

오브젝트 파일의 종류

1) 재배치 가능 파일 : 코드와 데이터로 구성, 다른 오브젝트 파일과 결합하여 실행 가능 파일이나 공유 오브젝트 파일을 생성

2) 실행 가능 파일: 실행 가능한 프로그램을 가지고 있음.

3) 공유 오브젝트 파일 : 코드와 데이터로 구성, 재배치 가능한 오브젝트 파일로 프로그램 실행 시 도적으로 로드 및 링킹되는 파일

심볼테이블

  • 코드에 있는 것을 주소로 옮길 수가 없잖아.
  • 그러니까, 심볼테이블이라는 것을 만들고 이것의 주소를 결정하는 것이지.
  • symbol table은 그냥 section과 위치만 찍어주면 완료

Relocation table

  • 밖에 있는 것들은 소스코드 안에서 이게 어떻게 배치될 지 알 수가 없잖아.
  • 그러니까, 0x00으로 잡아놓고, relocation table을 만들어 놓자.
  • 그리고 나중에 링킹 때, 심볼테이블 보고 해당 찾아내자.

  • 컴파일을 일단 끝낸다.

  • 이부분은 로더일 듯.

Weak symbol, Strong symbol

  • 전역변수들에 대한 내용
profile
해탈하자

0개의 댓글