深入理解Linux内存管理:从内核到用户空间
1. 内核空间内存布局
内核内存的管理方式较为直接,它不采用按需分页机制,这意味着使用 kmalloc() 或类似函数进行的每次内存分配,都对应着实际的物理内存,且内核内存不会被丢弃或换出。
部分架构会在启动时的内核日志消息中显示内存映射摘要。以下是一个32位Arm设备(BeagleBone Black)的日志示例:
Memory: 511MB = 511MB total
Memory: 505980k/505980k available, 18308k reserved, 0K highmem
Virtual kernel memory layout:
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
vmalloc : 0xe0800000 - 0xff000000 ( 488 MB)
lowmem : 0xc0000000 - 0xe0000000 ( 512 MB)
pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
modules : 0xbf800000 - 0xbfe00000 ( 6 MB)
.text : 0xc0008000 - 0xc0763c90 (7536 kB)
.init : 0xc0764000 - 0xc079f700 ( 238 kB)
.
Linux内存管理全解析
超级会员免费看
订阅专栏 解锁全文
1080

被折叠的 条评论
为什么被折叠?



