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) |