Linux内存管理之vmalloc和kmalloc

本文介绍了Linux内核中的内存管理,特别是vmalloc和kmalloc两个函数。vmalloc分配的内存虚拟地址连续但物理地址不需连续,适合硬件设备不需要物理连续内存的情况。kmalloc则确保物理地址连续,适用于硬件设备。由于性能和TLB抖动问题,vmalloc通常在需要大量内存时使用,如模块动态插入。文章还提供了vmalloc和vfree的使用示例。
摘要由CSDN通过智能技术生成

了解linux操作系统的,我们都知道内存管理对于linux操作系统的重要性,当然其他操作系统内存管理也占有举足轻重的角色。

在内核里分配内存可不像在其他地方分配内存那么容易。造成这种局面的因素有很多,从根本上讲,是因为内核本身不能像用户空间那样奢侈地使用内存。内核与用户空间不同,它不具备这种能力,它不支持简单便捷的内存分配方式。比如,内核一般不能睡眠。此外,处理聂村分配错误对内核来说也绝非易事。正是由于这些限制,再加上内存分配机制不能太复杂,所以在内核中获取内存要比在用户空间复杂的多。不过从程序开发者的角度来看,也不是说内核的分配就困难的不得了,只是和用户空间中的内存分配不太一样而已。


linux的内存管理是一块比较复杂的内容,我们对其各个部分分别进行总结,而后再结合linux源代码进行理解,这样就能更好的掌握linux内存管理这一块。

今天先学习了vmalloc和kmalloc的部分,那我们就先介绍这两个函数的功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值