陷入内核时,内核指针传入内核
以copy_from_user为例
内核指针映射
用户指针映射
基础知识:内核内存地址 3G-4G;用户内存地址 0G-3G
虚拟指针的最高两位[00 -11) 说明时用户虚拟地址;最高两位11 内核虚拟地址
根据虚拟地址的最高两位 来判断访问TTBR0_EL1 或者 TTBR0_EL0; TTBR0_EL 存放页表基地址,达到访问不同的页表的目的。
才实现了两个内存地址的数据拷贝;
MEMAP 实际时将用户物理地址 再映射到 内核 最高128M 的空间。实现零拷贝;内核最高128M 的空间根据内核的页表映射。其余空间直接访问。