링커, 로더, 실행 파일

Linux 등에서 많이 쓰이는 ELF 형식의 파일에 대한 설명으로 올바른 것은?

  1. A실행 파일 전용 형식이며 오브젝트 파일에는 쓸 수 없다
  2. B오브젝트 파일, 실행 파일, 공유 라이브러리 모두에 쓰이며 헤더와 섹션 등으로 구성된다
  3. C이미지를 저장하기 위한 형식이다
정답과 해설 보기

정답: B. 오브젝트 파일, 실행 파일, 공유 라이브러리 모두에 쓰이며 헤더와 섹션 등으로 구성된다

ELF(Executable and Linkable Format)는 Linux를 비롯한 많은 UNIX 계열 OS와 임베디드 기기에서 쓰이는 프로그램 파일 형식입니다. 맨 앞의 ELF 헤더에 대상 CPU, 64비트 여부, 실행을 시작할 주소 등이 적혀 있고, 그 뒤에 .text와 .data 같은 섹션과, 로더가 메모리에 읽어 들이는 단위를 나타내는 프로그램 헤더가 이어집니다. Windows에서는 PE 형식, macOS에서는 Mach-O 형식이 쓰입니다.

  • A. 오브젝트 파일도 공유 라이브러리도 ELF입니다.
  • B. 올바릅니다. Executable and Linkable Format의 약자입니다.
  • C. 프로그램을 위한 형식입니다.
이 분야 연습하기 분야로 돌아가기

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

  1. 실행 파일의 .text 섹션에 들어 있는 것은?
  2. C 언어에서 파일 바깥에 「int limit = 100;」이라고 쓴 전역 변수는 일반적으로 어느 섹션에 놓이는가?
  3. .bss 섹션의 특징으로 올바른 것은?
  4. C 언어의 「char *p = "hello"; p[0] = 'H';」를 실행하면 많은 환경에서 비정상 종료된다. 그 이유로 올바른 것은?
  5. 위의 전역 변수 중 일반적으로 .bss 섹션에 놓이는 것의 조합은?

이 분야의 비교