在linux内核中,页面地址、虚拟地址和物理地址之间有什么区别

在linux内核中,页面地址、虚拟地址和物理地址之间有什么区别,linux,linux-kernel,Linux,Linux Kernel,在linux内核中,页面地址、虚拟地址和物理地址之间有什么区别?另外,如果我有结构页地址,我如何才能找到它的虚拟地址 有人能解释清楚Linux内核版本3.10吗 提前感谢您的回答。物理地址是RAM中的地址。一旦达到可用物理内存的极限,内核就必须分配到某个地方,而这个地方就是虚拟地址空间。虚拟内存被映射成比物理内存多得多的可用内存,这是通过将虚拟内存分成称为页面的块来实现的 每个虚拟地址都映射到物理内存中的一个位置,其中物理地址与虚拟地址之间存在1对多关系,即,有许多虚拟地址映射到同一物理位置。此

在linux内核中,页面地址、虚拟地址和物理地址之间有什么区别?另外,如果我有结构页地址,我如何才能找到它的虚拟地址

有人能解释清楚Linux内核版本3.10吗


提前感谢您的回答。

物理地址是RAM中的地址。一旦达到可用物理内存的极限,内核就必须分配到某个地方,而这个地方就是虚拟地址空间。虚拟内存被映射成比物理内存多得多的可用内存,这是通过将虚拟内存分成称为页面的块来实现的

每个虚拟地址都映射到物理内存中的一个位置,其中物理地址与虚拟地址之间存在1对多关系,即,有许多虚拟地址映射到同一物理位置。此映射通过页表中的地址转换完成

页面是虚拟内存的最小单位。页面大小因体系结构和实现而异,但在x86 for Linux上是4kib。在使用虚拟内存时,必须读取整个页面,而不仅仅是一个块。当你说“页面地址”时,你可能指的是页面内的索引,在那里可以找到特定的虚拟地址

在检查我的答案时,我发现了一些好的方法,可以帮助您更好地理解虚拟内存。前两个是Wikipedia,相当通用,后两个是Linux特定的:


Linux的内存管理和

大型页面如何?默认值仍然是4kib。