了解linux操作系统的,我们都知道内存管理对于linux操作系统的重要性,当然其他操作系统内存管理也占有举足轻重的角色。
在内核里分配内存可不像在其他地方分配内存那么容易。造成这种局面的因素有很多,从根本上讲,是因为内核本身不能像用户空间那样奢侈地使用内存。内核与用户空间不同,它不具备这种能力,它不支持简单便捷的内存分配方式。比如,内核一般不能睡眠。此外,处理聂村分配错误对内核来说也绝非易事。正是由于这些限制,再加上内存分配机制不能太复杂,所以在内核中获取内存要比在用户空间复杂的多。不过从程序开发者的角度来看,也不是说内核的分配就困难的不得了,只是和用户空间中的内存分配不太一样而已。
linux的内存管理是一块比较复杂的内容,我们对其各个部分分别进行总结,而后再结合linux源代码进行理解,这样就能更好的掌握linux内存管理这一块。
今天先学习了vmalloc和kmalloc的部分,那我们就先介绍这两个函数的功能。