程序员的自我修养总结

程序员的自我修养总结

ID:38796942

大小:524.69 KB

页数:74页

时间:2019-06-19

程序员的自我修养总结_第1页
程序员的自我修养总结_第2页
程序员的自我修养总结_第3页
程序员的自我修养总结_第4页
程序员的自我修养总结_第5页
资源描述:

《程序员的自我修养总结》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、目录第一章温故而知新6第二节万变不离其宗6第3节站得高看得远7第4节操作系统的功能71.4.1不要让CPU打盹71.4.2设备驱动81.5内存不够怎么办?81.5.1关于隔离91.5.2分段91.5.3分页91.6众人拾柴火焰高101.6.1线程基础101.6.2线程安全111.6.3多线程内部情况14第二章编译和链接152.1被隐藏了的过程152.1.1预编译152.1.2编译152.1.3汇编152.1.4链接162.2编译器做了什么162.2.1词法分析162.2.2语法分析162.2.3语义分析162.2.4中间语言生成1

2、72.2.5目标代码的生成与优化172.3链接器年龄比编译器长182.4模块拼接——静态链接18第三章目标文件里有什么183.1目标文件的格式193.2目标文件是什么样的193.3挖掘SimpleSection.o203.3.3BSS段203.3.4其他段203.4ELF文件结构描述203.4.1文件头213.4.2段表213.4.3重定位表223.4.4字符串表223.5链接的接口——符号223.5.1ELF符号表结构233.5.2特殊符号233.5.3符号修饰与函数签名243.5.5弱符号和强符号243.6调试信息25第4章静

3、态链接254.1空间与地址分配254.1.2相似段合并254.1.3符号地址的确定264.2符号解析与重定位264.2.2重定位表264.2.3符号解析274.2.4指令修正方式274.3COMMON块274.4.1重复代码消除284.4.2全局构造与析构294.4.3C++与ABI294.5静态库链接304.6链接过程控制304.6.1链接过程脚本304.6.2最“小”的程序314.6.3使用ld链接脚本314.6.4ld链接脚本语法简介314.7BFD库31第5章WINDOWSPE/COFF315.1Windows的二进制文件

4、格式PE/COFF315.2PE的前身COFF325.3链接指示信息325.4调试信息325.5大家都有符号表325.6WINDOWS下的ELF——PE32第6章可执行文件的装载与进程336.1进程的虚拟地址空间336.2装载的方式336.2.1覆盖装入336.2.2页映射346.3从操作系统的角度看可执行文件的装载346.3.1进程的建立346.4进程虚存空间的分布356.4.1ELF文件链接视图和执行视图356.4.2堆和栈366.4.3堆的最大申请数量366.4.4段地址对齐366.4.5进程栈初始化376.5Linux内核

5、装载ELF过程简介376.6WindowsPE的装载38第7章动态链接387.1为什么要动态链接387.2简单的动态链接例子397.3地址无关代码407.3.1固定装载地址的困扰407.3.2装载时重定位407.3.3地址无关代码407.3.4共享模块的全局变量问题427.3.5代码段地址无关性437.4延迟绑定(PLT)437.5动态链接相关结构447.5.1“.interp”段457.5.2“dynamic”段457.5.3动态符号表457.5.4动态链接重定位表457.5.5动态链接时进程堆栈初始化信息467.6动态链接的步

6、骤和实现467.6.1动态链接器自举467.6.2装载共享对象477.6.3重定位和初始化477.6.4Linux动态链接器的实现477.7显示运行时链接487.7.1打开动态库487.7.2dlsym()487.7.3dlerror()487.7.4dlclose()49第8章Linux共享库的组织498.1共享库版本498.1.1共享库兼容性498.1.2共享库版本命名498.1.3SO-NAME程序需要记录什么508.2符号版本508.2.1基于符号的版本机制508.2.3Linux中的符号版本518.3共享库系统路径518

7、.4共享库的查找过程518.5环境变量528.6共享库的创建与安装528.6.1共享库的创建528.6.3共享库的安装538.6.4共享库构造和析构函数538.6.5共享库脚本53第9章Windows下的动态链接549.1dll介绍549.1.2基地址和RVA549.1.3dll共享数据段549.1.4dll的简单例子549.1.7使用模块定义文件559.1.8DLL显示运行时链接559.2符号导出导入表559.2.1导出表559.2.2EXP文件569.2.4导入表569.2.5导入函数的调用569.3DLL优化579.3.1重

8、定基地址579.3.2序号589.3.3导入函数绑定589.4C++与动态链接589.5DLLHELL59第4部分库与运行库60第10章内存6010.1程序的内存布局6010.2栈与调用惯例6110.2.1什么是栈6110.2.2调用惯例6110.

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。