Linux 커널의 복구 매핑은 어떻게 구현됩니까?

Linux 커널의 복구 매핑은 어떻게 구현됩니까?

일부 구성에서는 각 프로세스 메모리의 상위 1G가 커널에 속합니다. 1G 공간에서는 하위 896M 부분이 물리 주소에 직접 매핑되는데, 이를 고정 매핑 영역이라고 합니다.

그러나 그것이 어떻게 구현되는지 혼란 스럽습니다. CPU는 선형 주소에만 액세스할 수 있으며, 이는 MMU에 의해 물리적 주소로 해석됩니다. 커널이 이 수리 매핑 영역에 액세스하면 어떤 일이 발생합니까? MMU를 건너뛰나요?

답변1

커널은 또한 선형 주소를 사용하여 CPU에서 실행됩니다. MMU를 건너뛰지 않습니다.

영구 맵에 대한 액세스는 다른 액세스와 같습니다. 해당 물리적 ​​페이지는 페이지 테이블을 사용하여 매핑됩니다. 영구 매핑을 사용할 때 부팅 중에 설정됩니다.permanent_kmaps_init(32비트 x86).

당신은 또한 볼 수 있습니다MMU가 Unix/Linux 커널 내부에 있습니까? 아니면 자체 메모리가 있는 하드웨어 장치에만 있습니까?그리고(이유) Linux 커널은 가상 주소 공간에 ID 매핑을 사용합니까?

관련 정보