2018-2019-1 20165327 《信息安全系统设计基础》第一周学习总结
2018-2019-1 20165327 《信息安全系统设计基础》第一周学习总结
测试1:
结果截图:
在Vi中使用K查找printf的帮助文档:将光标放到printf或printf前面一格,按 shift+k 即找到帮助文档
测试2:
测试3
[测试4:]
问题:无法debug(已解决)
[测试5: ]
[测试6: ]
(这是代码输入的问题???已解决!!!关于tab键的输入,还费了些周折。输入tab键一定要先按“i”进入输入模式!!!)
知识总结
第一章hello程序的生命周期
1.hello程序是从源程序开始的。创建并保存hello.c的文本文件。信息=比特流+上下文
vi hello.c
编译
hello程序分步编译
1、预处理(包括打开头文件和翻译宏)
hello.c->hello.i
gcc -E hello.c -o hello.i
这时打开hello.i发现,短短几行代码已被展开为一千多行。
2、编译
hello.i->hello.s
gcc -S hello.i -o hello.s
这时打开hello.s发现是汇编代码,前面带.的是指令,可以去掉。
3、汇编
hello.s->hello.o
gcc -c hello.s -o hello.o
这时打开hello.o发现是乱码,其实已经是二进制文件,可以使用od命令打开。
od -tx1 hello.o
反汇编命令:
objdump -d hello.o
4、链接
gcc hello.o -o hello
此时将产生hello可执行文件
系统硬件组成(总线、I/O设备、主存、处理器)
运行hello程序时,硬件间的交互。
介绍了cache的重要性及存储设备形成的层次结构
操作系统通过三个抽象概念来管理硬件(进程(线程)、虚拟内存、文件)
系统间利用网络通信的模型
介绍计算机中三个重要主题:
Amdahld定理
并行与并发
第七章 链接
7.1编译器驱动程序
编译器驱动程序包括:语言预处理器、编译器、汇编器、链接器。
7.2静态链接
链接器的两个任务:
符号解析
重定位
7.3目标文件
目标文件纯粹是字节块的集合
目标文件有三种形式:
1、可重定位目标文件
2、可执行目标文件
3、共享目标文件
7.4可重定位目标文件
ELF格式
7.5符号和符号表
7.6符号解析
7.6.1链接器如何解析多重定义的全局符号
7.6.2与静态库链接
7.6.3链接器如何使用静态库来解析引用
7.7重定位
7.7.1重定位条目
7.7.2重定位符号引用
7.8可执行目标文件
7.9加载可执行目标文件
7.10动态链接共享库
7.11从应用程序中加载和链接共享库
7.12位置无关代码
7.13库打桩机制
7.14处理目标文件的工具:()