리눅스 & 안드로이드2011. 2. 10. 18:22
<임베디드 리눅스 입문(Embedded Linux Primer, 정보문화사)에서 발췌>


  • vmlinux - ELF 형식의 커널 본체, 심볼, 주석, 디버깅 정보와 아키텍처를 위한 구성 요소들을 포함하고 있다.
  • System.map - vmlinux 모듈에 대한 문자열 방식의 커널 심볼 테이블
  • Image - 심볼과 추가 정보, 주석 등을 제거한 바이너리 형식의 커널 모듈
  • piggy.gz - 위의 Image 파일을 gzip으로 압축한 것.
  • piggy.o - piggy.gz 파일을 어셈블리 언어 형식으로 만들어 둔 것. misc.o와 같이 링크시키기 위해서 변환한 것이다.
  • (bootstrap loader) head.o - ARM 프로세서들을 위해서 공통적으로 사용되는 스타트업 코드. 부트로더가 제어권을 이 모듈에 넘긴다. 여기서의 head.S는 kernel/arch/arm/boot/compressed/head.S이며, kernel/arch/arm/kernel/head.S와 혼돈해서는 안된다!
  • (bootstrap loader) misc.o - 커널 이미지(piggy.gz)의 압축을 풀기 위한 루틴. 몇몇 아키텍처에서 볼 수 있는 친숙한 부팅 메시지인 "Uncompressing Linux ... Done"을 이 모듈이 출력한다. (오호?!)
  • vmlinux - 복합적인 커널 이미지. 이름 선택이 그리 좋지는 않은데, 커널 본체와 이름이 같기 때문이다. 커널 본체(kernel proper)와 복합 이미지는 이름은 같지만 다른 파일이다. 이 바이너리 이미지는 커널 본체가 이 표에 있는 다른 오브젝트들과 링크된 결과물이다.
  • zImage - 부트로더에 의해서 로드될 최종적인 복합 커널 이미지 파일.

 + vmlinux > objcopy > image > gzip > piggy.gz > asm > piggy.o, misc.o, head.o > ld > vmlinux(zImage)
    

'리눅스 & 안드로이드' 카테고리의 다른 글

GNU Compiler __attribute__  (2) 2011.02.11
Embedded Linux on ARM 부팅 과정  (0) 2011.02.11
vmlinux image 구성요소  (0) 2011.02.10
Tips for kernel build  (0) 2011.02.09
[퍼온글] MTD Partition  (0) 2011.02.07
Posted by 세월의돌