
内存管理
laoyouji
这个作者很懒,什么都没留下…
展开
-
slab slub和内存管理
内核对象缓冲区管理Linux 内核在运行过程中,常常会需要经常使用一些内核的数据结构(对象)。例如,当进程的某个线程第一次打开一个文件的时候,内核需要为该文件分配一个称为 file 的数据结构;当该文件被最终关闭的时候,内核必须释放此文件所关联的 file 数据结构。这些小块存储空间并不只在某个内核函数的内部使用,否则就可以使用当前线程的内核栈空间。同时,这些小块存储空间又是动态变化的,不转载 2012-08-14 08:25:03 · 1324 阅读 · 0 评论 -
kmap/kmalloc/ioremap/kmalloc/kzalloc/kcalloc/vmalloc
kmap函数: 把某块高端内存映射到页表,然后返回给用户一个填好vitual字段的page结构 建立永久地址映射,不是简单的返回virtual字段的pageioremap: 驱动程序无法直接访问io物理地址,所以ioremap是为了使将其映射到虚拟内存,然后直接像访问内存那样访问io 当开启了CONFIG_HIGHMEM时,能操作大于896M的RAM转载 2012-09-10 23:21:30 · 1283 阅读 · 0 评论 -
Linux 内存管理之highmem简介
一、Linux内核地址空间一般来说Linux 内核按照 3:1 的比率来划分虚拟内存(X86等):3 GB 的虚拟内存用于用户空间,1GB 的内存用于内核空间。当然有些体系结构如MIPS使用2:2 的比率来划分虚拟内存:2 GB 的虚拟内存用于用户空间,2 GB 的内存用于内核空间,另外像ARM架构的虚拟空间是可配置(1:3、2:2、3:1)。内核线性地址空间用于为内核的运行提供最基本的支持,转载 2012-09-10 23:25:56 · 7030 阅读 · 0 评论 -
linux内存模型之buddy(伙伴)系统三从bootmem到buddy的过渡
===================================本文系本站原创,欢迎转载!转载请注明出处:http://blog.youkuaiyun.com/gdt_A20=================================== 摘要: buddy基本模型建立起来后,bootmem也将要退出历史舞台了,boomem管理的内存都要过渡到buddy中,同样高端转载 2012-09-11 08:59:22 · 1373 阅读 · 0 评论 -
关于驱动开发中mmap函数的实现
在编写设备驱动程序的时候,如果要想把设备内存映射到用户空间,那需要我们实现mmap,通过看ldd3上面的介绍,对实现mmap有了一点了解. 书上介绍主要是利用 intremap_pfn_range(struct vm_area_struct *vma, unsigned long virt_addr,unsigned long pfn, unsigned long size, pgpr转载 2012-09-11 23:04:10 · 924 阅读 · 0 评论