본문 바로가기

Core BSP 분석/리눅스 커널 핵심 분석

MMU - 메모리 설정

이번에는 페이지 테이블 비트 값으로 메모리 상태를 점검해보자.
 | A6F9C000[0D3F]=93F1140E
 
헥사값이 E로 끝나니 10으로 이진수가 끝남을 알 수 있다. 물론 섹션 엔트리겠지.
0x93F1140E를 이진수로 바꾸면 아래와 같다.
자릿수) 10987654321098765432109876543210  LSB
           10010011111100010001010000001110  LSB

AP[11:10]이 01이네. 아래 테이블에서 첫번째에 해당하는 내용임을 알 수 있다.
 
AP[1:0]  권한                 User
01          | Read/Write   No access
10          | Read/Write   Read only
11          | Read Write   Read/Write

아래 페이지 테이블을 한번 보자.
A6F9C000[058E]=A6E9C831

0xA6E9C831
자릿수) 10987654321098765432109876543210  LSB
           10100110111010011100100000110001  LSB

AP[11:10]이 10이네. User Read only이다.
이렇게 각각 페이지 별로 메모리 설정이 되어 있다.

만약에 유저 스페이스에서 AP[11:10]가 01인 페이지 테이블에 접근을 하면 페이지 폴트가 발생할 것이다.

'Core BSP 분석 > 리눅스 커널 핵심 분석' 카테고리의 다른 글

Crash 명령어 스택 심볼 보기  (0) 2023.05.05
MMU 페이지 테이블 확인  (0) 2023.05.05
커널패닉 - ext4 파일 시스템  (0) 2023.05.05
copy_mm()함수  (0) 2023.05.05
커널 에러 로그(1)  (0) 2023.05.05