링커, 로더, 실행 파일

실행 파일의 .text 섹션에 들어 있는 것은?

  1. A프로그램의 기계어 명령
  2. B프로그램 안에서 사용하는 문장(텍스트 파일)
  3. C실행 중에 입력된 문자열
정답과 해설 보기

정답: A. 프로그램의 기계어 명령

.text 섹션에는 함수를 번역한 기계어 명령이 들어갑니다. 실행 중에는 읽기와 실행만 허용하고 쓰기를 금지하는 것이 보통이며, 잘못된 쓰기나 공격자에 의한 코드 변조를 막을 수 있습니다. 또한 바뀌지 않으므로 같은 프로그램이나 공유 라이브러리를 여러 프로세스에서 실행할 때 물리 메모리 상의 하나의 사본을 공유할 수 있습니다.

  • A. 올바릅니다. 이름과 달리 문자가 아니라 코드 영역입니다.
  • B. 이름은 텍스트이지만 내용은 기계어입니다.
  • C. 입력은 힙이나 스택 같은 실행 시 영역에 놓입니다.
이 분야 연습하기 분야로 돌아가기

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

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

이 분야의 비교