Mach-O 구조, Fat 바이너리 개념

Tags
Mach-O
Fat binary
요약

Mach-O 헤더구조 (thin)

  • 윈도우는 PE, 유닉스는 ELF
  • MacOSiOS 운영체제에서 다루는 파일 형식Mach-O.

구조

  • Header, Load commands, Data로 구성
  • Load commands는 OS가 앱 실행 시 라이브러리를 올리는 등의 실행에 필요한 명령어들의 집합
notion image

Fat 바이너리 구조

  • 앞서 설명한 Mach-O 구조가 아키텍처별로 여러 개 포함된 것.
  • 즉, 여러 아키텍처를 아우르는 유니버셜 바이너리를 위해 여러 아키텍처의 Mach-O 구조를 합한 것.
  • 여러 아키텍처 지원 시 fat 헤더가 추가됨.
  • 바이너리 로드 시 아키텍처에 맞는 블럭이 로드됨.
  • Arm64 이후로는 대부분 하나이나, 아직 fat구조가 보이긴 함.
notion image