Linux内存分配与硬件管理全解析
一、预留高内存地址
在分配连续内存区域时,有一种简单的方法是在物理内存末尾预留一块区域(而bigphysarea是在物理内存开头预留)。要实现这一目的,需要向内核传递命令行选项来限制内核管理的内存量。例如,在一个实际有128MB RAM的系统中,可以使用 mem=126M 来预留2MB内存。之后在运行时,设备驱动程序可以分配和使用这块内存。
(一)allocator模块
O’Reilly FTP站点上发布的示例代码中的allocator模块,提供了一个分配接口,用于管理Linux内核未使用的高内存。
(二)优缺点分析
| 优点 | 缺点 |
|---|---|
| 无需修改官方内核源代码 | 每次更改系统的RAM数量时,都必须更改传递给内核的命令行选项 |
| 高内存不能用于某些任务,如ISA设备的DMA缓冲区,这使得allocator在某些情况下不适用 |
二、向后兼容性
自Linux 2.0内核发布以来,Linux内存管理子系统发生了巨大变化,但编程接口的变化相对较小且易于处理。
(一)函数变化情况
- kmalloc和kfree :在L
超级会员免费看
订阅专栏 解锁全文
1789

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



