두근두근이야기

zImage에 관하여 본문

IT/IT ::Linux

zImage에 관하여

골든 2013. 9. 9. 14:24

http://kldp.org/node/95521

zImage 구조 ( head.o, misc.o, head.S piggy.o )


1. 부트로더는 zImage를 커널 파티션에서 읽어 들여서 특정 메모리 주소에 로드 후 그 메모리의 첫 주소로 점프.

2. head.o 는 메모리 초기화와 같은 작업을 수행 후 misc.o의 decompress_kernel을 호출하여

3. piggy.o에 들어있는 piggy.gz 압축을 Image로 해제하여 Image 영역을 다시 재배치 시키고 start_kernel로 점프.

4. piggy.gz가 만들어지는 건 커널의 각 built-in.o들을 vmlinux.lds.S를 참조하여 vmlinux로 링크하는 과정을 수행하고

5. vmlinux가 만들어지면 여기서 각 comment등의 정보들을 제거한 후 Image로 만든 후에 이를 gzip -f -9 옵션으로 piggy.gz로 압축을 수행

6. piggy.gz는 piggy.S를 컴파일 하는 작업을 통해서 piggy.o가 되고

7. zImage에 있는 파일들 (  head.o, misc.o, head.S piggy.o )을 다시 링크하여 vmliux를 다시 만들고 여기서 obycopy를 통해 comment등을 다시 제거하고 나면 zImage가 만들어진다.

'IT > IT ::Linux' 카테고리의 다른 글

OSI 7 Layer, TCP/IP 4 Layer - Network  (0) 2013.09.10
valgrind  (0) 2013.09.09
UART 디바이스 드라이버  (0) 2013.09.09
리눅스 커널에서 페이지 크기는.  (0) 2013.09.09
POSIX 세마포어, 그리고 실습  (0) 2013.09.09