aarch64-paging
aarch64-paging
크레이트를 사용하면 AArch64 가상 메모리 시스템 아키텍처에 따라 페이지 테이블을 만들 수 있습니다.
use aarch64_paging::{ idmap::IdMap, paging::{Attributes, MemoryRegion}, }; const ASID: usize = 1; const ROOT_LEVEL: usize = 1; // ID 매핑을 사용하여 새 페이지 테이블을 만듭니다. let mut idmap = IdMap::new(ASID, ROOT_LEVEL); // 2MiB 메모리 영역을 읽기 전용으로 매핑합니다. idmap.map_range( &MemoryRegion::new(0x80200000, 0x80400000), Attributes::NORMAL | Attributes::NON_GLOBAL | Attributes::READ_ONLY, ).unwrap(); // `TTBR0_EL1`을 설정하여 페이지 테이블을 활성화합니다. idmap.activate();
- 현재는 EL1만 지원하지만 다른 익셉션 레벨(Exception Level: EL)도 어렵지 않게 추가할 수 있습니다.
- Android에서 보호된 VM 펌웨어에 사용됩니다.
- 이 예시를 간단하게 실행하는 방법은 없습니다. 실제 하드웨어 또는 QEMU에서 실행해야 하기 때문입니다.