링커와 로더
링커(linker, linkage editor)
링커란, 목적 프로그램들과 라이브러리 또 다른 실행 프로그램(로드 모듈) 등을 연결해 실행 가능한 로드 모듈을 만드는 소프트웨어이다
- 링커에 의해 수행되는 작업을 링킹이라 한다
로더란?
- 컴퓨터 내부로 정보를 들여오거나 로드 모듈을 디스크 등의 보조기억장치로부터 주기억장치에 적재하는 시스템 소프트웨어
로더의 기능
- 할당
- 기억 장치내에 실행프로그램을 옮겨 놓을 공간 확보
- 연결
- 부 프로그램 호출시 그 부프로그램이 할당된 기억장소의 시작 주소를 호출한 부분에 등록하여 연결하는 기능
- 약간 느낌이 매크로 프로세서 느낌아니냐?
- 부 프로그램 호출시 그 부프로그램이 할당된 기억장소의 시작 주소를 호출한 부분에 등록하여 연결하는 기능
- 재배치
- 보조기억장치에 저장된 프로그램이 사용하는 각 주소들을 할당된 기억장소의 실제 주소로 배치시키는 기능
- 적재
- 실행 프로그램을 할당된 기억공간에 실재로 옮기는 기능
로더의 종류
- compile and go 로더
- 별도의 로더 없이 언어 번역 프로그램이 로더의 기능까지 수행하는 방식
- 연결 기능은 수행하지 않지만 나머지 기능을 언어 번역 프로그램이 담당
- 절대 로더
- 목적 프로그램을 기억장소에 적재시키는 기능만 수행하는 로더
- 할당 및 연결 작업은 프로그래머가 프로그램 작성시 수행, 재배치는 컴파일러가 담당
- 직접 연결 로더
- 일반 적인기능의 로더
- 로더의 4가지를 모두 수행
- 동적 적재 로더
- 필요시 일부분만 적재하는 것으로 호출시 적재라고도 한다
- Load-On-Call
- ㅍ로그램의 크기가 주기억장치의 크기보다 큰 경우에 유리한 방법
Comment