더 많은 질문은 bzImage를 참조하세요.

더 많은 질문은 bzImage를 참조하세요.

Wikipedia의 설명은 bzImage정말 혼란스럽습니다. 대체 텍스트

위 이미지는 Wikipedia에서 가져온 것이지만 그 옆에 있는 줄은 다음과 같습니다.

bzImage 파일은 특정 형식으로 되어 있습니다. bootsect.o + setup.o + Misc.o + Piggy.o가 연결되어 포함되어 있습니다.

이미지에서 다른 사람(및)을 찾을 수 없습니다 misc.o. 또한 이러한 개체 파일을 더 명확하게 이해하고 싶습니다. piggy.o

에 관한 정보이 게시물또한 파일을 시작할 수 없는 이유에 대해서도 vmlinux정말 혼란스럽습니다 .

또 다른 의심은 에 관한 것입니다 . System.map어떻게 연결되어 있습니까 bzImage? vmlinuxcreate 전에 기호가 포함되어 있다는 것을 알고 있습니다 bzImage. 하지만 시작할 때 어떻게 bzImage연결합니까 System.map?

답변1

Linux 2.6.22까지는 다음 bzImage이 포함됩니다.

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 시스템에서는 제거해도 문제가 발생하지 않습니다.

관련 정보