링커, 로더, 실행 파일

임베디드 개발에서 사용하는 링커 스크립트의 역할로 올바른 것은?

  1. A각 섹션을 플래시나 RAM 등의 어느 주소에 배치할지 링커에 지시한다
  2. B프로그램 테스트를 자동으로 실행하는 절차를 적는다
  3. C소스 코드 작성 규칙을 정하고 위반을 알려 준다
정답과 해설 보기

정답: A. 각 섹션을 플래시나 RAM 등의 어느 주소에 배치할지 링커에 지시한다

PC의 OS에서는 로더가 주소를 정하지만, 마이컴에서는 전원을 켠 시점의 주소가 그대로 사용됩니다. 링커 스크립트에는 플래시와 RAM의 시작 주소와 크기를 적고, .text나 상수는 플래시에, .data와 .bss, 스택은 RAM에 놓는 식으로 배치를 지정합니다. 인터럽트 벡터처럼 정해진 주소에 놓아야 하는 것도 여기서 지정합니다.

  • A. 올바릅니다. 메모리 배치를 세밀하게 정할 수 있습니다.
  • B. 테스트 자동화와는 다른 구조입니다.
  • C. 그것은 정적 분석 도구 등의 역할입니다.
이 분야 연습하기 분야로 돌아가기

링커, 로더, 실행 파일의 다른 문제

  1. OS가 없는 마이컴에서 전원을 켠 직후, 시작 코드가 main을 호출하기 전에 수행하는 처리로 올바른 것은?
  2. ELF 파일에서 「섹션」과 「세그먼트」의 차이로 올바른 것은?
  3. 메모리 페이지에 「쓰기 가능」과 「실행 가능」을 동시에 허용하지 않는(W^X, 쓰기와 실행의 분리) 것으로 막기 쉬워지는 공격은?
  4. Linux 공유 라이브러리에서 libfoo.so.1의 「.1」과 같은 soname의 버전 번호를 올리는 것은 일반적으로 어떤 경우인가?
  5. Linux에서 ldd 명령을 실행 파일에 사용하면 알 수 있는 것은?

이 분야의 비교