简体   繁体   English

内核虚拟地址转换

[英]kernel virtual address translation

Considering Linux and 32 bit x86 arch there is 3:1 divide of the accessible 4GB address space. 考虑到Linux和32位x86 arch,可访问的4GB地址空间有3:1的分界。 The user space is allocated 0-3 Gb while 3-4 Gb is allocated to kernel. 用户空间分配0-3 Gb,而3-4 Gb分配给内核。 How does a virtual address that is greater than 3Gb and hence lies into the kernel address space is transformed to the physical address? 如何将大于3Gb且因此位于内核地址空间的虚拟地址转换为物理地址? Does page tables would come into picture? 页面表会出现吗?

There is some information in Mel Gorman's book Understanding the Linux Virtual Memory Manager . Mel Gorman的书“ 理解Linux虚拟内存管理器”中有一些信息。

The short answer: Yes, the kernel sets up page tables to translate physical address 0 to virtual address 3 GiB. 简短回答:是的,内核设置页表将物理地址0转换为虚拟地址3 GiB。 (Section 3.7.1). (第3.7.1节)。 This includes the physical location the kernel was loaded to (usually 1MB on x86). 这包括内核加载到的物理位置(通常在x86上为1MB)。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM