Q&A 게시판

리눅스 커널에 대한 Q&A 게시판 입니다. (비밀글 체크는 꼭 필요한 경우에만)

리니어 매핑과 페이지 테이블과의 관계에 대해서 질문드립니다.

작성자
이대로
작성일
2024-04-26 10:11
조회
10
안녕하세요

커널 공부하면서 올려주신 자료에서 항상 너무 도움을 많이 받고 있습니다. 감사드립니다.

리니어 매핑과 페이지 테이블과의 관계에 대해서 궁금증이 생겨 질문드립니다.

arm64에서 VMEMMAP을 사용하는 경우 모든 물리 메모리를 struct page로 관리하도록 하고 그것을 VMEMMAP_START ~ VMEMMAP_END 영역에 매핑시켜서 접근할 수 있는 것으로 이해했습니다.

http://jake.dothome.co.kr/wp-content/uploads/2016/03/fixmap-10.png
위 그림에서 표현해주셨던 리니어 매핑의 경우에는 모든 물리 메모리 공간을 가상주소(PAGE_OFFSET ~ MODULE_ADDR)에서 간단한 변환을 통해서 바로 물리 메모리 주소로 변환할 수 있는 것으로 이해했습니다.
이 영역에 대해서는 따로 가상 <-> 물리 메모리 주소를 변환해주는 테이블이 존재하지 않는 것일까요..?

개인적인 생각으로는 가상<->물리 주소가 변환이 가능하기 때문에 굳이 페이지 테이블이 필요할까? 하고 생각이 들기는 하는데..
그럼 CPU는 가상 주소만을 알고 read/write를 하는 데, 그걸 변환해주는 페이지 테이블은 있어야 되는데 하고도 생각되기도 합니다.

만약 페이지 테이블이 존재한다면 어디서 초기화 해주는지 알 수 있을까요?
전체 0