Linux 内核之旅(七):虚拟内存管理(下)TODO

内核视角的虚拟内存管理

Posted by pandaychen on March 1, 2025

0x00 前言

前文Linux 内核之旅(三):虚拟内存管理(上)学习了进程虚拟内存空间在内核中的布局以及管理,本文继续学习下内核态的虚拟内存空间的布局及管理

对于进程虚拟内存空间而言,不同进程之间的虚拟内存空间是相互隔离的,彼此之间相互独立(相互无感知),使得进程以为自己拥有所有的内存资源。而内核态虚拟内存空间是所有进程共享的,不同进程进入内核态之后看到的虚拟内存空间全部是一样的

0x01 内核态虚拟空间地址布局

由于内核会涉及到物理内存的管理,有一个错误结论是只要进入了内核态就开始使用物理地址了,进程进入内核态之后使用的仍然是虚拟内存地址,只不过在内核中使用的虚拟内存地址被限制在了内核态虚拟内存空间范围中

kallsyms

[root@VM-X-X-tencentos ebpf-pro]# cat /proc/kallsyms |grep do_sys_open
ffffffff813eae80 t __pfx_do_sys_openat2
ffffffff813eae90 t do_sys_openat2
ffffffff813eb8b0 T __pfx_do_sys_open
ffffffff813eb8c0 T do_sys_open

0x0 参考