일부 구성에서는 각 프로세스 메모리의 상위 1G가 커널에 속합니다. 1G 공간에서는 하위 896M 부분이 물리 주소에 직접 매핑되는데, 이를 고정 매핑 영역이라고 합니다.
그러나 그것이 어떻게 구현되는지 혼란 스럽습니다. CPU는 선형 주소에만 액세스할 수 있으며, 이는 MMU에 의해 물리적 주소로 해석됩니다. 커널이 이 수리 매핑 영역에 액세스하면 어떤 일이 발생합니까? MMU를 건너뛰나요?
답변1
커널은 또한 선형 주소를 사용하여 CPU에서 실행됩니다. MMU를 건너뛰지 않습니다.
영구 맵에 대한 액세스는 다른 액세스와 같습니다. 해당 물리적 페이지는 페이지 테이블을 사용하여 매핑됩니다. 영구 매핑을 사용할 때 부팅 중에 설정됩니다.permanent_kmaps_init
(32비트 x86).
당신은 또한 볼 수 있습니다MMU가 Unix/Linux 커널 내부에 있습니까? 아니면 자체 메모리가 있는 하드웨어 장치에만 있습니까?그리고(이유) Linux 커널은 가상 주소 공간에 ID 매핑을 사용합니까?