《LINUX GUN C程序观察》

第1章实验环境构建1

1.1安装Linux1

1.1.1 下载CentOS71

1.1.2 CentOS7安装2

1.2虚拟机安装Linux9

1.2.1 VirtualBox安装9

1.2.2 虚拟机配置13

1.2.3 虚拟机安装Linux20

1.3ssh远程终端访问20

1.3.1 PuTTY客户端21

1.3.2 无密码登录24

1.3.3 Xming图形终端26

1.4初次接触Linux28

1.4.1 简单操作28

1.4.2 运行HelloWorld程序33

1.5 小结37

第2章程序编译与运行38

2.1编译的各阶段39

2.1.1 源代码39

2.1.2 预处理40

2.1.3 编译44

2.1.4 汇编46

2.1.5 链接48

2.1.6 GCC编译驱动49

2.2GCC基本用法51

2.2.1 C语言标准53

2.2.2 库的使用54

2.2.3 搜索路径60

2.2.4 编译警告65

2.3GDB调试70

2.3.1 代码准备71

2.3.2 运行代码73

2.3.3 查看变量和内存77

2.3.4 图形前端TUI83

2.4 小结84

练习84

第3章数据、运算与控制86

3.1x86-64 ISA86

3.1.1 寄存器86

3.1.2 内存空间与I/O空间91

3.2数据92

3.2.1 数据大小、字节序92

3.2.2 数组、结构体和联合体95

3.2.3 数据布局98

3.3运算102

3.3.1 数据传送102

3.3.2 算术/逻辑运算104

3.3.3 加载有效地址106

3.4控制107

3.4.1 条件跳转107

3.4.2 函数调用127

3.5 小结159

练习159

第4章链接与可执行文件161

4.1生成可执行文件161

4.1.1 样例代码162

4.1.2 进程影像164

4.1.3 ELF文件与装入168

4.2可重定位目标文件182

4.2.1 目标文件的节(section)183

4.2.2 符号及重定位187

4.2.3 符号表196

4.3静态链接200

4.3.1 布局200

4.3.2 符号解析205

4.3.3 静态重定位207

4.4动态链接214

4.4.1 样例代码215

4.4.2 动态链接库216

4.4.3 动态链接步骤230

4.5 小结250

练习251

第5章链接脚本与makefile252

5.1二进制工具和链接脚本252

5.1.1 binutils252

5.1.2 链接器脚本254

5.2makefile267

5.2.1 makefile基本格式267

5.2.2 makefile规则270

5.2.3 makefile变量274

5.2.4 文件指示277

5.2.5 函数279

5.2.6 make281

5.3 小结282

练习283

第6章程序运行284

6.1装入与运行284

6.1.1 ELF装载器284

6.1.2 内核代码285

6.1.3 进程与线程285

6.1.4 工作环境287

6.2基本行为观察289

6.2.1 ptrace289

6.2.2 strace295

6.2.3 GDB断点原理300

6.2.4 ltrace301

6.3异常行为304

6.3.1 非法操作304

6.3.2 响应信号309

6.3.3 core文件315

6.4 小结325

练习326

第7章性能剖析327

7.1打桩方法327

7.1.1 源代码预处理时328

7.1.2 静态链接时330

7.1.3 运行加载时332

7.2gprof334

7.2.1 工作原理335

7.2.2 gprof示例335

7.2.3性能数据解读343

7.2.4 图形化显示(gprof2dot.py+graphviz)348

7.3g349

7.3.1 基于函数分析的缺点349

7.3.2 gcov逐行分析351

7.4其他分析工具355

7.4.1 Valgrind355

7.4.2 perf368

7.5 小结375

练习376

第8章综合实例:HDFS中实现zlib库的旁路377

8.1 项目需求377

8.2系统分析378

8.2.1 整体方案378

8.2.2 Haddop的gzip JNI379

8.2.3 zlib分析382

8.2.4 测定z_stream成员大小385

8.3编码实现387

8.3.1 zlib日志387

8.3.2 Log4c388

8.3.3 使用libcprss.so库396

8.4功能验证398

8.4.1 准备输入文件399

8.4.2 zlib原生库的压缩399

8.4.3 libcprss.so库的压缩401

8.5 小结401

附录402

2020《LINUX GUN C程序观察》由于是年代较久的资料都绝版了,几乎不可能购买到实物。如果大家为了学习确实需要,可向博主求助其电子版PDF文件。对合法合规的求助,我会当即受理并将下载地址发送给你。

高度相关资料

C/C++程序设计大全(1997 PDF版)
C/C++程序设计大全
1997 机械工业出版社;西蒙与舒斯特国际出版公司
C/C++程序员Java编程( PDF版)
C/C++程序员Java编程
北京市:清华大学出版社
C程序设计( PDF版)
C程序设计
北京:清华大学出版社
C&C++程序设计( PDF版)
C&C++程序设计
C++程序设计(1999 PDF版)
C++程序设计
1999 青岛:青岛出版社
NetBIOS, IPX, SPX C程序员指南(1995 PDF版)
NetBIOS, IPX, SPX C程序员指南
1995 北京:科学出版社;龙门书局
C++程序设计教程(1999 PDF版)
C++程序设计教程
1999 北京:清华大学出版社
C/C++程序员Java基础(1997 PDF版)
C/C++程序员Java基础
1997 北京:北京大学出版社
C程序设计教程(1995 PDF版)
C程序设计教程
1995 北京:中国科学技术出版社
C++程序设计(1997 PDF版)
C++程序设计
1997 合肥:中国科学技术大学出版社
C程序设计(1999 PDF版)
C程序设计
1999 北京:清华大学出版社
C程序设计(1991 PDF版)
C程序设计
1991 北京:清华大学出版社
C程序设计教程(1986 PDF版)
C程序设计教程
1986 北京:科学普及出版社
C程序设计(1998 PDF版)
C程序设计
1998 北京:电子工业出版社
C及C++程序设计教程(1998 PDF版)
C及C++程序设计教程
1998 北京:海洋出版社