(一)进程空间分布图:
一个linux进程的虚拟地址空间分布如下图所示,分为用户空间和内核空间,对于一个32位操作系统来说,4GB的空间分成两部分,低地址的0~3G给用户空间,高地址的3G~4G给内核空间

(二) 用户空间
2.1 只读数据段(.rodata,又叫做常量数据段)
存放只读数据(字符串常量和const修饰的全局变量);const修饰的全局变量是存放在常量段的,但是使用const修饰的局部变量不存放在常量段,存放在栈段;为了提高空间的利用率,有些系统中.rodata段是多个进程共享的;程序加载运行时,.rodata和.text通常合并到一个段(Text Segmentÿ
本文介绍了Linux进程的虚拟地址空间,分为用户空间和内核空间。用户空间包括只读数据段、代码段、已初始化数据段、未初始化数据段(BSS)、堆和栈;内核空间包含内核代码段和与进程相关的数据结构段。栈和堆在内存管理中各有特点,动态栈增长是访问未映射内存的特例。
最低0.47元/天 解锁文章
1673

被折叠的 条评论
为什么被折叠?



