程序内存布局
- .text:代码段
- .rodata:只读的数据 静态内存分配
- .data:可修改的全局变量 静态内存分配
- .bss:未初始化的全局变量或者初始化为0的全局变量 block started by symbol 静态内存分配
data是已经初始化的数据,所以是要在二进制文件中占用空间的,而bss段因为都是未初始化的数据所以加载的时候由内核或者加载器将其初始化为0,本身在二进制文件中并不占用空间
- heap:动态分配内存的数据,向高地址增长 典型使用方式就是C中的malloc和free
- stack:局部变量数据,向低地址增长
参考资料
os-lectures2023: OS Lectures 2022 Spring
rust-based-os-comp2023: 2023开源操作系统训练营
lab-uCore-Tutorial-Guide-2023S 文档 (learningos.github.io)
lab-rCore-Tutorial-Book-v3 3.6.0-alpha.1 文档 (rcore-os.cn)
Introduction · GitBook (learningos.github.io)2020
Operating Systems: Three Easy Pieces (wisc.edu)
Index of /~remzi/OSTEP/Chinese (wisc.edu)
Introduction uCore Lab Documents (gitbooks.io)2015
操作系统-rCore-Tutorial-Book-v3 3.6.0-alpha.1 文档 (rcore-os.cn)
文档信息
- 本文作者:wendaocsmaster
- 本文链接:https://wendaocsmaster.github.io/2023/03/02/Operating-system-program-memory-layout/
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)