linux - 在 Linux 操作系统中禁用 ASLR 后,虚拟到物理映射是否已修复

标签 linux gcc operating-system virtual-memory cpu-architecture

我在 Linux 操作系统中使用 gcc。我禁用了 ASLR 。现在,我总是按预期为我声明的数组获取相同的虚拟地址。

现在,我的问题是,在我的程序执行期间,虚拟地址到物理地址的映射是否也相同,或者,在我的程序执行期间,虚拟地址到物理地址的映射是否发生变化?

我的问题的任何答案/指针将不胜感激。提前致谢。

最佳答案

通常从虚拟地址到物理地址的映射在执行期间保持不变,只有少数异常(exception)。例如,如果您的阵列所在的页面成为交换到磁盘的牺牲品,操作系统可能会稍后将其重新映射到另一个物理地址。

但为什么需要将数组固定在物理内存中?您只能从内核操裁剪理内存,如果您已经在内核中执行某些操作,则始终可以执行页面检查以获取实际的和最新的翻译。

关于linux - 在 Linux 操作系统中禁用 ASLR 后,虚拟到物理映射是否已修复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19950372/

相关文章:

c - 如何知道编译器正在编译的函数的位置

c - 在 C 中使用影子支持

mysql - MySQL Workbench 不支持的操作系统 - Windows 7

c - 为什么一个程序的行为取决于它的 child 完成的顺序?

linux - 如何使用shell expr统计目录下的文件个数

python - 使用 apt-get 在 debian etch 上安装 python-pyparsing 1.4.2-1.1_all.deb

c - 32位机器上 'double'结构成员的填充逻辑

linux - 像Linux一样使用Windows驱动器的技巧?

c - 为什么 gcc 编译器允许在不给出数据类型的情况下赋值?

python - 使用字典作为查找表