B 그림입니다.

pororo 2013.06.30 15:58 조회 수 : 2786 추천:3

http://iamroot.org/wiki/lib/exe/fetch.php?media=%EC%8A%A4%ED%84%B0%EB%94%94:arm_relocate1.png


스터디때 나온 그림입니다.


커널 영역은 압축푼 커널이 위치할 공간이고 두 칸은 부분은 겹치는 부분입니다.


코드 사이즈만큼 완충 영역을 둔 이유는 vmlinux 바로 뒤에 실행중인 코드가 존재하는 재배치 상황에서 코드 사이즈만큼의 공간을 두지 않으면 코드를 덮어써 버리기 때문입니다.

(체크는 wont_overwrite까지 했지만 복사는 restart까지 하고 clean_flush 루틴도 호출하기 때문에)



http://iamroot.org/wiki/lib/exe/fetch.php?media=%EC%8A%A4%ED%84%B0%EB%94%94:arm_relocate2.png


끝에서부터 복사하지 않고 앞부터 복사해버리면 역시 데이터가 엉망이 되어 버립니다.

XE Login