四.应用程序的内存布局
**代码段:**对应着程序中的代码(函数),代码段在linux中又叫文本段(.text)。
**数据段:**显式初始化为非0的全局变量,显式初始化为非0的static局部变量。
**bss段存:**显式初始化为0或者未显式初始化的全局变量,显式初始化为0或未显式初始化的static局部变量。
**堆:**C语言中什么样变量存在堆内存中?C语言不会自动向堆中存放东西,堆的操作是程序员自己手工操作的。程序员根据需求自己判断要不要使用堆内存,用的时候自己申请,自己使用,完了自己释放。
**文件映射区:**文件映射区就是进程打开了文件后,将这个文件的内容从硬盘读到进程的文件映射区,以后就直接在内存中操作这个文件,读写完了后在保存时再将内存中的文件写到硬盘中去
**栈:**栈内存区,局部变量分配在栈上;函数调用传参过程也会用到栈,递归函数运行也在栈上
**内核映射区:**内核映射区就是将操作系统内核程序映射到这个区域了。
五.从内核角度看内存管理
六.linux缓存机制
为了提高文件系统性能,内核利用一部分物理内存分配出缓冲区