Linux内核环境下怎么申请大块内存
发表于:2024-11-28 作者:千家信息网编辑
千家信息网最后更新 2024年11月28日,这篇文章主要为大家展示了"Linux内核环境下怎么申请大块内存",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"Linux内核环境下怎么申请大块内存"这篇文章
千家信息网最后更新 2024年11月28日Linux内核环境下怎么申请大块内存
这篇文章主要为大家展示了"Linux内核环境下怎么申请大块内存",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"Linux内核环境下怎么申请大块内存"这篇文章吧。
在Linux内核环境下,申请大块内存的成功率随着系统运行时间的增加而减少,虽然可以通过vmalloc系列调用申请物理不连续但虚拟地址连续的内存,但毕竟其使用效率不高且在32位系统上vmalloc的内存地址空间有限。所以,一般的建议是在系统启动阶段申请大块内存,但是其成功的概率也只是比较高而已,而不是100%。如果程序真的比较在意这个申请的成功与否,只能退用"启动内存"(Boot Memory)。下面就是申请并导出启动内存的一段示例代码:
void* x_bootmem = NULL;EXPORT_SYMBOL(x_bootmem);unsigned long x_bootmem_size = 0;EXPORT_SYMBOL(x_bootmem_size);static int __init x_bootmem_setup(char *str){ x_bootmem_size = memparse(str, &str); x_bootmem = alloc_bootmem(x_bootmem_size); printk("Reserved %lu bytes from %p for x\n", x_bootmem_size, x_bootmem); return 1;}__setup("x-bootmem=", x_bootmem_setup);
可见其应用还是比较简单的,不过利弊总是共生的,它不可避免也有其自身的限制:
1.内存申请代码只能连接进内核,不能在模块中使用。
2.被申请的内存不会被页分配器和slab分配器所使用和统计,也就是说它处于系统的可见内存之外,即使在将来的某个地方你释放了它。
3.一般用户只会申请一大块内存,如果需要在其上实现复杂的内存管理则需要自己实现。
在不允许内存分配失败的场合,通过启动内存预留内存空间将是我们唯一的选择。
以上是"Linux内核环境下怎么申请大块内存"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
内存
大块
内核
环境
系统
成功
内容
篇文章
分配
代码
分配器
地址
空间
学习
帮助
复杂
不可避免
也就是
也就是说
利弊
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
对网络安全设备功能的要求
R语言数据库合并太大
株洲it软件开发培训课
亳州市联新网络技术
网络安全线上知识答题答案
系统数据库怎么查看
希望小学网络安全手抄报
三级数据库技术视频教程
常见数据库用什么存储索引
软件开发广州工资
汇投网络技术公司
企业文件服务器方案
软件开发文档制作壁纸
梦途网络技术
osa数据库
信阳兴业银行网络安全宣传
阿里云服务器已锁定
支持hp 1460的打印服务器
迷你军团怎么换服务器
在深圳学习网络技术怎么样
互联网加属于科技创新竞赛吗
软件开发需要几个步骤
阿里云服务器个人
可视化分布式系统 服务器不启动
unity 搭建http服务器
关系型数据库主码取值能不能为空
网络技术科技
网络安全的画 四年级
服务器系统需要下载安全软件吗
网络安全法基本