링커(linker, linkage editor)

링커란, 목적 프로그램들과 라이브러리 또 다른 실행 프로그램(로드 모듈) 등을 연결해 실행 가능한 로드 모듈을 만드는 소프트웨어이다

  • 링커에 의해 수행되는 작업을 링킹이라 한다

로더란?

  • 컴퓨터 내부로 정보를 들여오거나 로드 모듈을 디스크 등의 보조기억장치로부터 주기억장치에 적재하는 시스템 소프트웨어

로더의 기능

  • 할당
    • 기억 장치내에 실행프로그램을 옮겨 놓을 공간 확보
  • 연결
    • 부 프로그램 호출시 그 부프로그램이 할당된 기억장소의 시작 주소를 호출한 부분에 등록하여 연결하는 기능
      • 약간 느낌이 매크로 프로세서 느낌아니냐?
  • 재배치
    • 보조기억장치에 저장된 프로그램이 사용하는 각 주소들을 할당된 기억장소의 실제 주소로 배치시키는 기능
  • 적재
    • 실행 프로그램을 할당된 기억공간에 실재로 옮기는 기능

로더의 종류

  • compile and go 로더
    • 별도의 로더 없이 언어 번역 프로그램이 로더의 기능까지 수행하는 방식
    • 연결 기능은 수행하지 않지만 나머지 기능을 언어 번역 프로그램이 담당
  • 절대 로더
    • 목적 프로그램을 기억장소에 적재시키는 기능만 수행하는 로더
    • 할당 및 연결 작업은 프로그래머가 프로그램 작성시 수행, 재배치는 컴파일러가 담당
  • 직접 연결 로더
    • 일반 적인기능의 로더
    • 로더의 4가지를 모두 수행
  • 동적 적재 로더
    • 필요시 일부분만 적재하는 것으로 호출시 적재라고도 한다
    • Load-On-Call
    • ㅍ로그램의 크기가 주기억장치의 크기보다 큰 경우에 유리한 방법