⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 -+

📁 linux内核学习笔记 希望想看的人可以很快下载到
💻
字号:
any problems, send mails to lysindybear@sina.com.cn


相关文件
	/mm/slab.c
	/mm/page_alloc.c

****************************111111111***************************************************
在内核中分配内存,最经常使用的两种分配方法是kmalloc和__get_free_pages,这两种方法各有不同,
kmalloc分配是通过slab机制进行分配的,而__get_free_pages则是直接将一些空白页交给用户,因此,
当分配大块的内存的时候,我们使用kmalloc就可能不会成功,但是,系统并不返回错误,这是最头疼的,
所以当我们分配大与4k(?)内存的时候,最好使用__get_free_pages函数。
*****************************************************************************************



******************************2222222222222************************************************
在使用kmalloc函数的时候,特别要注意参数的选取,最为关键的一点就是在中断处理过程中,如果要
分配内存,一定要使用GFP_ATOMIC参数,这个函数的主要特点就是不sleep,而中断中绝对不允许进行调度
操作,因为linux的中断是不可重入的。
*******************************************************************************************



**********************************333333333333*********************************************
注意kmalloc和vmalloc的区别,kmalloc是分配实际的物理内存给内核的用户使用,它的成功与否只是和
内存量的大小有关,得到的内核虚地址只要剪去3G的偏移量就是实际的物理地址。但是vmalloc分配的是内核
的虚地址,她的范围是 3G + 实际的物理内存量 + 8M <----------> 4G - 112M
 两者完全不同,所以,我们可以想象,如果机器的实际的物理内存配置如果很大的话,那么内核虚地址就会
被消耗光的,这时候使用vmalloc应该没有效果了
*******************************************************************************************


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -