티스토리 뷰
tcr : translation control register
t0sz : tfanslation table 0 size
1:1 매핑 위해서 가상 메모리에서 쓰는 비트수 조정
extern pgd_t swapper_pg_dir[PTRS_PER_PGD];
extern pgd_t idmap_pg_dir[PTRS_PER_PGD];
TTBR0: 일반적으로 사용자 모드와 커널 모드에서의 주소 변환에 사용됩니다.
TTBR1: 가상화 환경에서의 주소 변환이나, 커널 모드 내에서의 보조 페이지 테이블을 위한 주소 변환에 사용됩니다.
pgd_offset_raw : 해당 엔트리의 주소
pgd_index : 엔트리 리턴 (9bit 라면 512까지)
커널 메모리 가상 주소 vs 커널 이미지 가상 주소
pgtable 레벨에 따라 분기되는 코드가 있음 예를들면 pud 주소 fixmap_pud
3 레벨 pte
비트 | 명칭 | 설명 |
63 | PXN | 특권 모드에서 실행 금지 |
62 | XN | 사용자 모드에서 실행 금지 |
61 | Contiguous | 연속 페이지 플래그 |
60 | DBM | 더티 비트 관리 |
59 | AF | 접근 플래그 |
58:55 | SH | 공유 속성 (Shareability) |
54:52 | AttrIndx | 메모리 속성 인덱스 |
51:12 | Output address | 물리 페이지 프레임 번호 (PFN), PAGE_SHIFT로 맞춰 조정 |
11 | nG | 글로벌 비트 |
10 | Reserved | 예약됨 |
9 | Reserved | 예약됨 |
8 | Reserved | 예약됨 |
7:6 | AP | 접근 권한 (Access Permissions) |
5 | NS | 비-Secure |
4:2 | AttrIndx | 메모리 속성 인덱스 (속성 선택) |
1 | Valid | 유효 비트 (PTE가 유효한지 여부) |
0 | Table | 이 엔트리가 테이블을 가리키는지 여부 |
'개발 > 코드로 알아보는 ARM 리눅스 커널 TIL' 카테고리의 다른 글
20240907 4.2.2 메모리 맵 (p249) & 4.3 존 (p.254) (0) | 2024.11.16 |
---|---|
20240831 - sparse init (p269) (0) | 2024.11.16 |
20240817 페이징과 매핑 (p200) & memblock(p221) (0) | 2024.11.16 |
20240622 - AArch64 익셉션 핸들링 (0) | 2024.11.09 |
코드로 알아보는 ARM 리눅스 커널 TIL 카테고리 추가 (0) | 2024.11.09 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- Reciprocal n-body Collision Avoidance
- mysql
- cockroach db
- C++
- RVO
- Golang
- 카카오
- 영상 픽셀화 하기
- 면접
- SuffixArray
- 클래스 맴버 변수 출력하기
- Obstacle Avoidance
- print shared_ptr class member variable
- hole-punching
- 에러 위치 찾기
- 잘못된 빨간줄
- Quest2
- it's called a vrpit
- boost
- 코어 남기기
- 우리는 vr핏이라고 부릅니다
- vrpit
- 봄날에 스케치
- vr핏
- shared_from_this
- ad skip
- set value
- Visual Studio
- chrome-extension
- red underline
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함