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

admin3年前云主机80

在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内核使用)》来自互联网同行内容,若有侵权,请联系我们删除!

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

相关文章

国外高防服务器:网络安全领域的坚实防线

随着互联网的发展,网络安全问题也越来越受到人们的关注。国外高防服务器成为了网络安全领域的坚实防线。本文从四个方面对国外高防服务器进行详细的阐述:高防服务器的概念和作用、高防服务器的特点、高防服务器的优...

稳定香港虚拟主机,不容忽视的在线稳定性。

稳定香港虚拟主机是一个关乎在线稳定性的重要问题。本文将从四个方面详细阐述稳定香港虚拟主机的在线稳定性,并为读者提供有关背景信息。本文旨在引发读者的兴趣,向他们展示稳定香港虚拟主机的重要性。正文:一、服...

租用韩国服务器部署电商网站要注意哪些事项(租用韩国服务器部署电商网站注意事项)

一、选择适合自己的服务器选择适合自己的服务器是部署电商网站的关键步骤。韩国拥有多款稳定可靠的服务器,可以根据自己网站的特点和用户量选择服务器。建议商家可以关注云服务器的选择,通过搭建云平台,可以大幅提...

开源办公套件

何为开源办公套件开源办公套件指的是可以免费使用、修改、复制、分享等一系列操作的办公软件套件,它们有着高度的可定制性和兼容性,可以完全替代商业办公软件,并且拥有更加丰富的功能特性。其中比较知名的开源办公...

自由共享,随时存取:开源文件服务器引领文档管理新时代

一、云存储时代的挑战随着信息化和数字化的浪潮不断推进,企业或个人的文件管理变得越来越重要。云存储具备了很多优点:便携性、大容量、数据的备份与恢复等。但是,云存储也不是完美的。如果我们想要使用云存储,就...

网站被劫持勒索怎么办?福建BGP高防服务器租用哪里有?

网站被劫持勒索怎么办?互联网出现后的几十年时间里,世界便由一张张网串联了起来,给我们的生活带来了无限的便利。但在互联网飞速发展的同时,恶意网络攻击也随之而来,近年来,互联网攻击事件频发,不法分子利用常...