Chinaunix首页 | 论坛 | 博客
  • 博客访问: 968731
  • 博文数量: 200
  • 博客积分: 5011
  • 博客等级: 大校
  • 技术积分: 2479
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-27 15:07
文章分类

全部博文(200)

文章存档

2009年(12)

2008年(190)

我的朋友

分类:

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 是一个很好的图示。

阅读(419) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~