안녕하세요..! 현재 저는 x86기반 리눅스를 공부하고 있습니다.
가상 메모리와 물리메모리 매핑관련해서 공부중인데요, 궁금한 것이 잇는데
정보를 찾아볼 수 없어 이렇게 질문을 올립니다!
x86기반 리눅스에서는 가상메모리 영역의 0xC0000000부터 +896MB까지가
물리메모리 0x00000000~896MB로 1:1 Direct Mapping된다고 많은 서적과 인터넷 자료에 나와잇습니다.
그리고 이부분이 Normal zone이라는 것도 알겟고,
그래서 커널에서는 C0000000~+896MB사이의 가상메모리 주소는 (메모리주소 - 0xC0000000)으로
물리메모리주소를 쉽게 구한다고 알고 있습니다.
하지만, cpu는 사실 이러한 사실을 모르고 mmu를 통해 변환하게
될텐데요, 그럼 결국 page table에서도 1:1 매핑을 일일히 다 해주어야 하지 않나요??
2 level page table 기법을 쓰게된다면 가상메모리주소의
상위 10bit이 pgd 인덱스고 다음 10bit이 pte 인덱스일텐데요,