编译链接--读书笔记1

来源:互联网 发布:软件企业投标资质 编辑:程序博客网 时间:2024/05/21 19:26

1、代码段:.text(指令)(局部变量)

      数据段:.data和.bss(全局变量和静态局部变量和静态全局变量)

     main函数运行起来后,局部变量在栈上

     .data:初始化了的

     .bss:未初始化和初始化为0


2、better save space 节省的是文件的空间

3、链接:(1)合并所有obj文件的段,并调整段偏移和段长度,合并符号表,进行符号解析(所有obj符号表中对符号引用的地方都要找到该符号定义的地方),分配内存地址

                   (2)链接的核心:符号重定位:符号定义与虚拟地址联系。

4、强符号:只要初始化了的

      弱符号:未初始化的

5、程序的运行:(1)创建虚拟地址空间到物理内存的映射(创建内核地址映射结构体),创建页目录和页表

                              (2)加载代码段和 数据段

                               (3)把可执行 文件的入口地址写到CPU的PC寄存器里面。

6、磁盘上的DP页是通过mmap映射到虚拟地址空间的VP页

      虚拟地址空间上的虚拟页是通过多级页表映射到物理页面

原创粉丝点击