64位Linux上的32位进程的地址空间

发布于 2024-12-21 15:05:30 字数 209 浏览 0 评论 0原文

这个答案中,作者指出: 使用 64 位 x86_64 内核,32 位进程可以使用整个 4GB 地址空间,除了由内核管理的 4GB 地址空间末尾的几个页面 (8KB)。

这个内核管理内存的用途是什么?难道它不应该在内核空间中,以防止用户意外损坏吗?

In this answer author states:
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.

What is the purpose of this kernel-managed memory? Shouldn’t it be in the kernel space, to prevent accidental corruption by the user?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

幽梦紫曦~ 2024-12-28 15:05:30

引用内核源代码:“内核指针具有冗余信息,因此我们可以使用一种方案,可以返回错误代码或具有相同返回值的 [...] 指针。

” -1..-4095(在 32 位模式下映射到 0xfffff000–0xffffffff)保留用于内核级 errno 值。 0xffffe000–0xffffefff 中的另外 4KB 可供 vsyscall vdso magic page 使用,但由于 vdso page 自许多卫星以来都是可重定位的,因此该区域仍然可能无人居住,也就是说,[stack] /proc/*/maps 中的条目始终以 0xffffdfff 结尾,无论 [vdso] 是否映射到0xffffe000 或其他地方。

Citing the kernel source: “Kernel pointers have redundant information, so we can use a scheme where we can return either an error code or a [...] pointer with the same return value.

The values -1..-4095 (mapping to 0xfffff000–0xffffffff in 32-bit mode) are reserved for kernel-level errno values. The other 4KB from 0xffffe000–0xffffefff are held free for the vsyscall vdso magic page, but since the vdso page is relocatable since many moons, this area remains potentially unpopulated, that is to say, the [stack] entry in /proc/*/maps ends at 0xffffdfff always regardless of whether [vdso] is mapped at 0xffffe000 or elsewhere.

如梦初醒的夏天 2024-12-28 15:05:30

某些内核内存可以位于应用程序用户空间地址空间内,并且类似于 mmap-ed 为 PROT_NONE。然后将使用一些地址空间,但程序无法访问该地址空间(因此不可能出现损坏)。

Some kernel memory can be inside the application user-space address space, and be sort-of mmap-ed with PROT_NONE. Some address space would then be used, but without being accessible by the program (so no corruption is possible).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文