linux - 为什么内核使用高逻辑地址

标签 linux linux-kernel operating-system kernel windows-kernel

适用于 32 位操作系统。 linux内核占用高逻辑地址3~4GB(windows为2~4GB)。 我想知道为什么设计者选择高地址,而不是linux的0~1GB,而且因为内核实际上位于物理低地址,所以选择低逻辑地址会导致更和谐的逻辑/物理关系。为什么不呢?

最佳答案

在PIC(位置无关代码)流行之前,有很多静态链接程序只能在指定地址加载,比如0x400000

为了能够与这些程序兼容,内核必须不获取地址空间。所以内核位于高1G地址空间。

关于linux - 为什么内核使用高逻辑地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48470937/

相关文章:

java - 如何通过java程序获取系统登录时间

c - 如何在 Linux 中的 XImage 对象上绘制文本

Linux 内核——刷新 VFS Dentry 缓存

linux - 作为普通桌面用户登录后如何获取 root shell 以及如何修补它?

linux - Linux 上的高分辨率进程监控/日志记录

android - 如何为 OpenVPN 编译 "tun.ko"文件?

java - 如何将系统性能值量化为单个性能值

控制下面程序中 if(fork()==0) 后的下一条语句

c - 如何在 Linux 中使用信号量与 C 同步两个进程的输出?

linux - 将文件名添加到多个文件的每列顶部(制表符分隔)