根据this slides,当Linux在EL1中运行时,虚拟地址空间位于两个不同的页表中:
- TTBR0_EL1 中的用户空间(从 0x0 到 0x7f ffffffff )
- TTBR1_EL1 中的内核空间(从 0xffffff80 00000000 到 0xffffffff ffffffff )[Linux Kernel& VM内核?]
根据我的理解,如果Linux在EL2中运行,虚拟地址仍然在两个不同的页表中,但是这样:
- TTBR0_EL2 中的用户空间(从 0x0 到 0x3f ffffffff )
- TTBR0_EL2 中的Linux内核空间(从 0x40 00000000 到 0x7f ffffffff )
- TTBR1_EL2 中的VM内核空间(从 0xffffff80 00000000 到 0xffffffff ffffffff )
此外,根据ARM, TTBR1_EL2 和 TTBR1_EL1 具有相同的内容(这是有道理的,因为在EL2中运行的Linux应该能够访问EL1使用 EL12函数注册)
虚拟地址空间的这个视图是否正确?