Chinaunix首页 | 论坛 | 博客
  • 博客访问: 325188
  • 博文数量: 63
  • 博客积分: 2344
  • 博客等级: 大尉
  • 技术积分: 628
  • 用 户 组: 普通用户
  • 注册时间: 2009-05-13 11:09
个人简介

有一种沉默叫霸气,有一种内敛叫个性,有一种简单叫深遂,有一种不屑叫自我

文章分类

全部博文(63)

文章存档

2013年(10)

2012年(12)

2011年(1)

2010年(9)

2009年(31)

分类: LINUX

2009-07-18 10:18:15

1. 神奇数字
   超级快:#define FS_MAGIC  0x011954   //Berkeley fask文件系统的实现者Kirk的生54年日1月19
   a.out: a.out文件被标识为0407,偏移为0。//PDP-11的一条无条件转移指令的二进制编码
 
2. 段的概念:
   UNIX中,段表示一个二进制文件相关的内容块
   Intel x86内存模型中,段表示一种设计的结果。地址空间并非一个整体,而是分成一些64k大小的区域。
   8086中,段是一块64KB的内存区域,由一个段寄存器所指向。内存地址的形成过程:取段寄存器值,左移4位(扩展到20位),加上16位的偏移地址。
 
3. a.out中各个段:
   文本段:程序的指令。
   数据段:经过初始化的全局和静态变量以及他们的值。
   BSS(“Block Started by Symbol或Better Save Space”):
         未初始化的数据,大小从可执行文件中得到。紧跟数据段之后。进入程序的地址空间后全部清零。
   堆栈段(stack segment):保存局部变量、临时数据、传递到函数中的参数等
   堆(heap):用于动态分配内存(调用malloc()函数)。 
 
4. 控制线程:
   为每个线程分配不同的堆栈使在进程中支持不同的控制线程(“轻量级线程”)。
   每个线程的堆栈为1Mb(需要时增长)。
阅读(874) | 评论(0) | 转发(0) |
0

上一篇:c language基本知识点

下一篇:引用小结

给主人留下些什么吧!~~