cleanUrl: /os/linkers-and-loaders

프로그램 → 컴파일 → 메모리 배치 → CPU 에서 실행 가능한 상태

프로그램을 compile 하고, 메모리에 배치하여 사용 가능한 CPU 코어에서 실행할 수 있게 되는 절차

source file 을 컴파일 하면 재배치 가능한 object 파일이 된다.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/825c784d-33bc-4c15-aa49-41c6177217c7/Screen_Shot_2020-07-08_at_16.35.10.png

Linker 의 역할

작성된 코드 이외에 외부 lib 파일 등을 하나의 실행 가능한 binary 실행 파일로 결합한다

Loader 의 역할

실행 가능한 파일을 memory 에 적재 시키고 CPU 코어에서 실행 가능한 상태로 만든다.

(파일 이름을 명령어에 입력만 하면 된다)

  1. shell 에 파일 이름을 명령어로 입력한다.
  2. shell 이 fork() system call 을 호출한다.
  3. 운영체제는 프로그램을 실행하기 위한 새로운 process 를 생성한다.
  4. shell 이 exec() system call 로 loader 를 호출한다
  5. exec() 에 실행 파일 이름을 전달한다.