- 3
- 0
- 约1.75万字
- 约 22页
- 2017-02-27 发布于湖北
- 举报
Linux设备驱动程序学习(8)-分配内存
内核为设备驱动提供了一个统一的内存管理接口,所以模块无需涉及分段和分页等问题。 我已经在第一个scull模块中使用了 kmalloc 和 kfree 来分配和释放内存空间。
kmalloc 函数内幕
kmalloc 是一个功能强大且高速(除非被阻塞)的工具,所分配到的内存在物理内存中连续且保持原有的数据(不清零)。原型:
#include linux/slab.h void *kmalloc(size_t size, int flags); size 参数
内核管理系统的物理内存,物理内存只能按页面进行分配。kmalloc 和典型的用户空间 malloc 在实际上有很大的差别,内核使用特殊的基于页的分配技术,以最佳的方式利用系统 RAM。Linux 处理内存分配的方法:创建一系列内存对象集合,每个集合内的内存块大小是固定。处理分配请求时,就直接在包含有足够大内存块的集合中传递一个整块给请求者。
必须注意的是:内核只能分配一些预定义的、固定大小的字节数组。kmalloc 能够处理的最小内存块是 32 或 64 字节(体系结构依赖),而内存块大小的上限随着体系和内核配置而变化。考虑到移植性,不应分配大于 128 KB的内存。若需多于几个 KB的内存块,最好使用其他方法。
flags?参数
内存分配最终总是调用 __get_free
您可能关注的文档
- Linux操作系统实用教程07.ppt
- Linux查看磁盘分区等命令和相关工具介绍.doc
- linux查看网卡型号、驱动版本、队列数.doc
- linux查看硬件信息大全.doc
- LINUX常用命令.ppt
- Linux常用命令8—文件管理.doc
- linux常用命令举例详解.doc
- LINUX常用命令培训.ppt
- Linux常用命令培训_xg.ppt
- linux常用命令小总结.doc
- 2025年下半年小学教师资格考试简答题汇总.pdf
- 护理教学比赛资源整合.pptx
- 2022泰和安消防 JTGB-HM-TX3H01 JTGB-HM-TX3H02 TGB-HM-TX3H03 系列点型红外火焰探测器.docx
- 2025年驾驶证资格考试最新最全交通标志大全.pdf
- 护理教学理念:更新与发展.pptx
- 2025年新驾考科目一巧记速记口诀(全国通用).pdf
- 2025年一级建造师《项目管理》黄金预测考点【打印版】.pdf
- 证券公司高级管理人员资质测试章节练习-第一部分综合类第六章至七章:证券投资基金法、信托法.pdf
- 护理教学研究:方法与成果.pptx
- 麻纺车间设备更新准则.docx
原创力文档

文档评论(0)