linux程序的执行学习

程序线性地址空间被划分成几个段:

正文段

已初始化数据段

未初始化数据段

堆栈段

环境变量和命令行参数保存在堆栈中

 

 

 

灵活线性区布局和经典布局只在文件内存映射和匿名映射时线性区的位置上有区别。当内核能通过RLIMIT_STACK资源限制来限定用户态堆栈大小时,使用灵活布局。当设为无限时,内核无法确定用户态堆栈上限。就是用经典布局。使用经典布局的缺点:堆小于1g(小于0x40000000),而其它线性区(比如其它共享库)使用2g减去堆栈大小(0x40000000以上的2g用户空间)。而灵活布局没有这样的限制(堆栈以下,固定代码段以上的所有线性空间)。

 

命令:

ulimit -s unlimited; 引起经典布局

 

 

ulimit -s 100;引起灵活布局

你可能感兴趣的:(linux)