全部博文(573)
发布时间:2015-12-04 09:35:27
kmalloc分配大小的限制kmalloc是通过cache来实现的, 只不过每次kmalloc的大小不同, 因此是从不同的cache中分配:/* include/linux/slab.h */// 注意kmalloc是在头文件中定义的static inline void *kmalloc(size_t size, gfp_t flags){ if (__builtin_cons.........【阅读全文】
发布时间:2015-12-04 09:34:22
kmalloc 代码Kmalloc()->__kmalloc()->__do_kmalloc()->__cache_alloc()->____cache_alloc()->cache_alloc_refill()->cache_grow()->kmem_getpages()->alloc_pages_exact_node()->__alloc_pages() include\linux\Slab_def.hstatic __always_inline void *kmalloc(size_t size, gfp.........【阅读全文】
发布时间:2015-12-04 09:31:57
linux内存管理浅析[地址映射](图:左中)linux内核使用页式内存管理,应用程序给出的内存地址是虚拟地址,它需要经过若干级页表一级一级的变换,才变成真正的物理地址。想一下,地址映射还是一件很恐怖的事情。当访问一个由虚拟地址表示的内存空间时,需要先经过若干次的内存访问,得到每.........【阅读全文】
发布时间:2015-12-04 09:29:50
探索 Linux 内存模型简介: 在这篇 Linux? 内存模型指南中,我们将学习如何构建和管理内存方面的基础知识。本指南介绍了内存控制单元、分页模型方面的内容,并详细介绍了物理内存区域方面的知识。理解 Linux 使用的内存模型是从更大程度上掌握 Linux 设计和实现的第一步,因此本.........【阅读全文】
发布时间:2015-12-04 09:27:28
Linux内存寻址和内存管理1. x86的物理地址空间布局 以x86_32,4G RAM为例:物理地址空间的顶部以下一段空间,被PCI设备的I/O内存映射占据,它们的大小和布局由PCI规范所决定。640K~1M这段地址空间被BIOS和VGA适配器所占据。由于这两段地址.........【阅读全文】