요새 qemu를 공부하고 있는데요..
qemu가 H/W를 emulation 하는 장치인데
softmmu에서 cr3를 통해서 주소를 translation하더라구요.
그럼 guest OS의 cr3 register의 값을 받아와서
emulation하는 건가요?
그래서 guest OS의 page table을 탐색할 수 있는건지 궁금합니다.
댓글 3
-
박한범
2014.08.13 09:43
-
최형호
2014.08.16 19:29
cr3는 x86에서 pgd 즉, 페이지 테이블 위치를 저장하는 레지스터입니다. HW를 시뮬레이션 하는 qemu입장에서 cr3도 가지고 있지요.
그러므로 guest os 가 특정 명령어를 통해 cr3 에 페이지 주소를 쓰면 해당 명령어를 qemu가 파싱해서 cr3에 이 주소를 저장하라는거구나 하고 저장합니다.
즉 guest os의 cr3라는 건 없고 guest os가 qemu가 시뮬레이션하는 cr3 에 값을 저장하는것입니다.
그러면 cr3에 저징된 주소값을 기준으로 주소변환을 하는 것입니다. -
ysh
2014.08.18 14:07
답변 감사합니다!
도움이 많이 되었습니다!
.
음 아마도 shadow, nested, expanded paging table 에 대해서 질문하신것 같습니다?