Linux内核环境下如何申请大块内存?(linux内核使用)

admin3年前云主机111

在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内核环境下如何申请大块内存?(linux内核使用)》来自互联网同行内容,若有侵权,请联系我们删除!

免责声明:本文内容来自用户上传并发布,站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请核实广告和内容真实性,谨慎使用。

相关文章

租用FTP服务器:稳定高效的文件传输方案

一、FTP服务器的概述FTP服务器是一种用于文件传输的专门服务器,可以方便快捷地将文件从服务器端传输到客户端。FTP服务器使用最为广泛的场合包括公司内部文件共享、网站图片、软件下载等。FTP服务器的作...

chia奇亚币怎么挖

什么是奇亚币(chia)?奇亚币(Chia)是一种新兴的数字货币,最初由比特币开发者布拉姆·科恩(Bram Cohen)设计。与其他主要的加密货币不同,奇亚币并不依靠传统的“挖矿”技术,而是通过一种名...

「消息一秒送达,短信全面解析——解读平台短信的应用与功能」

移动互联网的发展,让手机成为人们必不可少的通讯工具,平台短信在手机应用中扮演了重要的角色,本文将从消息发送速度、短信内容解析、商业应用与安全风险四个方面详细阐述平台短信的应用与功能。一、消息发送速度平...

租用泉州服务器做游戏的配置要求?

租用泉州服务器做游戏的配置要求?如果您想在租用泉州服务器来运行游戏,以下是一些配置建议:处理器:建议使用至少4核的IntelXeon或AMDRyzen处理器。这样可以更好地处理多线程和多任务,并确保游...

圣何塞独立服务器

圣何塞独立服务器:如何选择最适合自己的服务器?在建立网站或者进行网站运营中,服务器的选择是一个十分重要的环节。圣何塞独立服务器是近年来深受用户欢迎的服务器类型之一。但是,有诸多选择谨慎的问题需要考虑。...

网站被cc攻击应该怎么办?租用美国高防服务器推荐?

随着数字化经济时代的发展,网络攻击已经屡见不鲜,而且屡禁不止,相比威力强大的ddos网络流量攻击,cc攻击的破环也不容忽视,今天来聊聊网站被cc攻击应该怎么办?在我们使用服务器搭建网站时,时常都会遇到...