Wikipedia의 설명은 bzImage
정말 혼란스럽습니다.
위 이미지는 Wikipedia에서 가져온 것이지만 그 옆에 있는 줄은 다음과 같습니다.
bzImage 파일은 특정 형식으로 되어 있습니다. bootsect.o + setup.o + Misc.o + Piggy.o가 연결되어 포함되어 있습니다.
이미지에서 다른 사람(및)을 찾을 수 없습니다 misc.o
. 또한 이러한 개체 파일을 더 명확하게 이해하고 싶습니다. piggy.o
에 관한 정보이 게시물또한 파일을 시작할 수 없는 이유에 대해서도 vmlinux
정말 혼란스럽습니다 .
또 다른 의심은 에 관한 것입니다 . System.map
어떻게 연결되어 있습니까 bzImage
? vmlinux
create 전에 기호가 포함되어 있다는 것을 알고 있습니다 bzImage
. 하지만 시작할 때 어떻게 bzImage
연결합니까 System.map
?
답변1
Linux 2.6.22까지는 다음 bzImage
이 포함됩니다.
- b부츠섹트(
bootsect.o
): - 설정(
setup.o
) - bvmlinux(
head.o
,misc.o
,piggy.o
)
Linux 2.6.23은 bbootsect와 bsetup을 하나로 결합합니다(header.o
).
시작 시 커널은 시스템을 원하는 사용 가능한 상태로 만드는 데 필요한 일부 시퀀스(위 헤더 파일 참조)를 초기화해야 합니다. 런타임 시 이러한 시퀀스는 더 이상 중요하지 않습니다(그러면 왜 실행 중인 커널에 포함합니까?).
System.map
관련 vmlinux
, bzImage
컨테이너를 압축하고 시작 시 압축을 풀면 됩니다 vmlinux
(=> bzImage
별로 상관하지 않음 System.map
).
리눅스 2.5.39가 출시되었습니다 CONFIG_KALLSYMS
. 활성화되면 커널은 자체 심볼 맵( /proc/kallsyms
)을 유지합니다.
System.map
예를 들어 디버깅 목적 klogd
으로 사용자 공간 프로그램에서 주로 사용됩니다 .ksymoops
배치되는 위치는 System.map
이를 참조하는 사용자 공간 프로그램에 따라 다릅니다. 또는 에서 기호 맵을 얻으십시오
ksymoops
. , 및 에서 검색하세요./proc/ksyms
/usr/src/linux/System.map
klogd
/boot/System.map
/System.map
/usr/src/linux/System.map
/boot/System.map
커널 2.6.27.19를 사용하는 Linux 시스템에서는 제거해도 문제가 발생하지 않습니다.