在Linux操作系统中禁用ASLR后,是否修复了虚拟到物理的映射
我在Linux操作系统中使用gcc。我已禁用ASLR。现在,我得到的数组的虚拟地址总是与预期的相同 现在,我的问题是,在我的程序执行期间,虚拟到物理地址的映射是否也相同,或者,在我的程序执行期间,虚拟到物理地址的映射是否会发生变化在Linux操作系统中禁用ASLR后,是否修复了虚拟到物理的映射,linux,gcc,operating-system,virtual-memory,computer-architecture,Linux,Gcc,Operating System,Virtual Memory,Computer Architecture,我在Linux操作系统中使用gcc。我已禁用ASLR。现在,我得到的数组的虚拟地址总是与预期的相同 现在,我的问题是,在我的程序执行期间,虚拟到物理地址的映射是否也相同,或者,在我的程序执行期间,虚拟到物理地址的映射是否会发生变化 对于我的问题,如有任何答案/提示,我们将不胜感激。提前感谢。通常,从虚拟地址到物理地址的映射在执行期间保持不变,只有少数例外。例如,如果阵列所在的页面成为要交换到磁盘的牺牲品,操作系统可能会在稍后将其重新映射到另一个物理地址 但为什么需要将阵列固定在物理内存中?您只能
对于我的问题,如有任何答案/提示,我们将不胜感激。提前感谢。通常,从虚拟地址到物理地址的映射在执行期间保持不变,只有少数例外。例如,如果阵列所在的页面成为要交换到磁盘的牺牲品,操作系统可能会在稍后将其重新映射到另一个物理地址
但为什么需要将阵列固定在物理内存中?您只能从内核操作物理内存,如果您已经在内核中执行了某些操作,则始终可以执行pagewalk以获取实际和最新的转换。如果换出带有数组的页面,则可能会发生更改。处理器缓存使用虚拟地址和物理地址。如果您知道虚拟地址到物理地址的映射,则更容易预测缓存行为和性能。