学习目标: 程序员的自我修养之想法 学习内容: 1、操作系统、线程、硬件 2、静态链接 : ELF文件有啥 数据结构是怎么整的, 编译链接的时机 dll .a 3、装载与动态链接 exe里面有啥 如何运行起来的, 运行起来后有啥 4、库与运行库:内存是怎么分配的;程序运行的时候内存是怎么样的 运行库有哪些 系统调用是什么 API ABI的介绍 如何写运行库 学习时间: 一个月 学习产出: 进程与线程的区别;如何处理多线程的问题;涉及线程安全,多线程内部情况是怎么样的; 编译器做了什么事:预编译(宏) 编译(生成.s) 汇编(生成机器码) 链接 (生成类似exe的东西) 词法 语法 语义 中间语言 目标代码 生成 优化 这本书以后知道的内容如下: 什么是ELF文件,ELF的数据结构是什么样的; 一个可执行文件是怎么从代码到可执行程序,然后怎么在平台上运行起来的;在平台上运行的时候需要哪些必备的条件; 在平台上运行的时候,内存是怎么样进行管理的,每一个分段是怎么进行划分的; 静态链接与动态链接是怎么一步步链接进可执行程序的;他们的区别是什么; 比较详细的介绍了可执行文件 静态链接库动态链接库中的 的数据结构,不同字段代表的什么意思;介绍了关于绑定的相关知识;在什么时候进行绑定。到目前为止,没有实际进行过一步步流程的阅读,目前来看还只是基础理论的知识,比较晦涩,需要在实际环境上进行贯穿一下,才会有更深的理解。