分类:
2008-11-18 15:44:02
7.6 memory layout of c program
一个程序加载到内存里主要包含如下segment:
1. Initialized Data segment又称data segment
2. uninitialized data segment 又称bss segment
3. text segment
4. stack
5. heap
其实,除了这些段,还有其他的段。
对于一个硬盘上的可执行程序来说,其bss段不占空间,因为这个段的内容会在程序加载之后,运行之前被出示化为0。所以没必要在硬盘上为它保留空间。
Initialized data segment里面的数据一般都是全局的,或者静态的被出示化了数据。
Text段就是代码段,这个一般来说都是共享的,只读的。
Size命令可以查看一个可执行文件的各个segmente的大小。但是我么能看到的仅仅是data, text, bss段的大小,并没有显示可执行文件中的符号表等信息。
Figure 7.6 是一个很好的图示。