内存类型
内存分为:虚拟内存,物理内存;
物理内存:真实存在的内存;
虚拟内存:对每个进程来说都有一个连续的内存空间,是一种缓存机制,并不是真实存在的;
虚拟地址:程序中使用的地址都是虚拟地址;
物理地址:总线地址线上的地址,地址线上的电信号相对应;一般在写驱动时,设备寄存器的地址均为物理地址;使用时,需将其转换为虚拟地址进行使用;
内存的分配
内核空间函数分配
函数名 | 释放函数 | 说明 |
---|---|---|
kmalloc() | kfree() | 分配内核内存,不仅在逻辑空间上连续,在物理空间上也连续 分配空间在3GB~high_memory |
vmalloc | vfree() | 分配内核内存,仅在逻辑空间上连续 分配空间在high_memory~4G |
get_free_pages() | free_pages | 分配的单位为页 分配空间在3GB~high_memory |
requ |