pbp*_*pbp 5 linux memory 64-bit linux-kernel 32bit-64bit
在这篇答案中,作者说:
With the 64-bit x86_64 kernel, a 32-bit process can use the entire 4GB address space, except for a couple pages (8KB) at the end of the 4GB address space which are managed by the kernel.
这个内核管理内存的目的是什么?不应该在内核空间,以防止用户意外损坏?
引用内核源代码:" 内核指针有冗余信息,因此我们可以使用一种方案,我们可以返回错误代码或具有相同返回值的指针."
值-1 ..- 4095(在32位模式下映射到0xfffff000-0xffffffff)保留用于内核级errno值.来自0xffffe000-0xffffefff的另一个4KB对于vsyscall vdso魔术页面是免费的,但由于vdso页面可以从许多卫星重新定位,因此该区域可能仍然没有填充,也就是说,无论是否[始终在0xffffdfff结尾处的[stack]
条目/proc/*/maps
vdso]映射在0xffffe000或其他地方.
归档时间: |
|
查看次数: |
1954 次 |
最近记录: |