2017-04-04 4 views
4

나는 내 자신의 리눅스 배포판을 만들고있다. 커널로드 주소와 진입 점의 차이점을 이해하는 것이 어렵다는 것을 알았습니다.커널로드 주소와 진입 점의 차이

커널이 uBoot에 의해로드되기 위해서는 커널이로드 될 메모리 주소가 항상 커널의 항목 (시작점)이 실행될 때와 같을 것이라고 생각합니다 (시작됨).

그러나 나는 항상 같지 않아도되는 두 개의 분리 된 값이기 때문에 추측하고 있습니다. 분리되어야하는 이유가 있습니다.

아무도 나에게 두 가지 차이점을 설명해 주시겠습니까?

저는 아직 커널 개발에 익숙하지 않으므로 아마 하루 중 하나의 질문 일 것입니다.

감사합니다.

토마스

+1

참조 http://stackoverflow.com/questions/31725605/building-kernel-uimage-using-loadaddr – sawdust

답변

4

로드 주소는 커널 바이너리 이미지를 복사 할 RAM 위치입니다. Entry Point는 커널을 부트하기 위해 uboot가 실행하는 복사 된 바이너리의 위치입니다. 커널을 실행 : RAM이 80,000,000 커널로드 주소에 매핑 된 경우

80008000. bootm 명령 80008000 개 주소로 복사 된 이미지의 위치에서 uImage의 압축을 해제 한 다음 커널 진입 점을 호출 (80,008,000 같은 주소 일 수 있음)입니다 .