Linux C内存模型及管理
Posted tanxiaxuan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux C内存模型及管理相关的知识,希望对你有一定的参考价值。
1、Linux size命令用法
在Linux中,size命令可以用于分析可执行程序内存的分布段。
可以看到有text、data、bss、dec、hex filename五个组成部分。
各个段的作用如下:
1、文本段:包含程序的指令,它在程序的执行过程中一般不会改变。
2、数据段:包含了经过初始化的全局变量和静态变量,以及他们的值。
3、BSS段:包含未经初始化的全局变量和静态变量。
4、堆栈段:包含了函数内部声明的局部变量。
文本段 text:包含程序的指令,它在程序的执行过程中一般不会改变(包括字符串等常量)。
数据段 data:包含经过初始化的全局变量和静态变量,以及他们的值。
文字常量区 bss:包含未经初始化的全局变量和静态变量。
另外:堆栈段:包含了函数内部声明的局部变量。(并非dec)
2、进程是Linux最小的资源管理单元。运行程序时,首先创建一个进程。
内核空间。PCB属于内核空间,负责管理进程的所有资源,譬如mm_struct、打开的文件、信号等等。
用户空间
mm_struct是一个指针,管理的是内存资源,也就是之前提到的text、data、bss、堆、栈。
其中text、data、bss属于静态空间
堆、栈、mmap属于动态空间
3、proc是linux下虚拟的文件系统。可以得到系统的参数,如meminfo。proc下有很多数字命名的文件夹,实际上代表作着一个个进程。proc下有一个文件夹叫做map。
以上是关于Linux C内存模型及管理的主要内容,如果未能解决你的问题,请参考以下文章