当前位置:首页>Linux>Linux 内存寻址:从虚拟地址到物理内存的实

Linux 内存寻址:从虚拟地址到物理内存的实

  • 2026-10-27 11:21:02
Linux 内存寻址:从虚拟地址到物理内存的实

Linux 内存寻址:从虚拟地址到物理内存的实

Linux 内存寻址,就是虚拟地址怎么一步步变成真实内存。

分段基本是走过场:C 语言里的指针其实是虚拟地址。现代 Linux 把段基址全设成 0。所以逻辑地址几乎原样变成了虚拟地址。真正管用的是分页。

分页靠页表做翻译:CPU 里的 MMU 拿着页表查物理位置。为了查得快,旁边还备了个 TLB 缓存。每个进程都觉得自己独占了整个内存。其实是因为切换进程时,页表也跟着换了。

物理内存由内核统筹:内核用伙伴系统管理整块内存。用小物件则走 slab 缓存。用户态的 malloc 不直接找内核。小内存自己攒着,大块才去申请。

malloc 不等于真拿到内存:Linux 会先给虚拟地址。等你真去碰这块内存时,才临时分配物理页。所以程序刚启动时,常驻内存(RSS)远小于虚拟内存(VIRT)。

排查问题别被 VIRT 骗了:看内存占用得盯紧 RSS。但 RSS 也会算上共享库,不能直接加总。想看有没有泄漏,就多采样几次看 RSS 涨没涨。要是频繁卡顿,就去查查主缺页次数。

内容含AI生成图片
湖南,21小时前,

最新文章

随机文章