KPTI1 [Linux Kernel] KPTI: Kernel Page-Table Isolation 예전부터 "커널의 페이지 테이블 엔트리는 어디에 있을까?" 가 궁금했는데 최근에 공부하다 궁금증이 해결되었다. 이 질문에 대한 답변은 KPTI를 적용하냐 아니냐에 따라 나뉜다. 우선 적용하지 않은 경우부터 살펴보자. KPTI 적용 전 사진의 왼쪽은 KPTI를 적용하지 않았을 때의 모습이다. KPTI를 적용하지 않으면, 기본적으로 유저 모드 프로세스의 페이지 테이블에는 커널 공간의 주소와 유저 공간의 주소가 모두 매핑된다 (= 페이지 테이블 엔트리가 존재한다.) 이는 TLB Flushing으로 인한 오버헤드를 줄이기 위함이다. TLB는 페이징에서 가상 주소로부터 물리 주소로의 변환을 캐싱하는 버퍼이다. 유저 모드 프로세스는 System Call, Context Switching 등으로 인해 자주 커널 모드.. 2021. 9. 18. 이전 1 다음