linux - 为什么64位cpu不存在high-memory?

标签 linux cpu-architecture virtual-memory

虽然我试图了解 32 位 cpu 和 Linux 的高内存问题,但为什么没有 high-memory problem对于 64 位 CPU?

特别是如何改变虚拟内存在内核空间和用户空间的划分,使得64位cpu不存在高端内存的需求?

谢谢。

最佳答案

32 位系统只能寻址 4GB 内存。在 Linux 中,这分为 3GB 的用户空间和 1GB 的内核空间。这 1GB 有时是不够的,因此内核可能需要映射和取消映射内存区域,这会导致相当大的性能损失。内核空间是“高”1GB,因此得名“高内存问题”。

64 位系统可以寻址巨大 的内存量 - 16 EB - 因此不会出现此问题。

关于linux - 为什么64位cpu不存在high-memory?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35620385/

相关文章:

c++ - 在程序中获取AIX中进程的虚拟内存大小

linux - 编辑文件时保留 samba 共享的文件权限

linux - crontab:获取BASH内部变量

linux - strace -c 不显示正确的秒数

assembly - 为什么每次迭代的微指令数会随着流负载的增长而增加?

multithreading - 等待 IO 的线程是否也会阻塞核心?

mips - "extend immediate to 32 bits"在MIPS中是什么意思?

c++ - CreateThread 会干扰 VirtualAlloc 的使用吗?

php - 如何在数千个代码页中查找字符串?

performance - 建议Prolog处理器利用大页面