20145337 《信息安全系统设计基础》第2周学习总结
教材学习内容总结
第一章
- 源程序实际上就是由0,1组成的位序列。信息(磁盘文件、存储器中程序、用户数据)根据上下文有不同解释方式。
- 程序被其他程序翻译成不同形式,开始为ASCⅡ文本,然后被编译器和链接器翻译成二进制可执行文件。GCC编译的四个步骤:预处理(gcc -E)、编译(gcc -S)、汇编(gcc -c)、链接, gcc 选项可以简记为“ESc”,相应的产出文件的后缀可以简记为“iso”
- 系统硬件由总线、I/O设备、主存、处理器,其中CPU可执行加载、存储、操作、跳转
- 系统中的存储设备层次结构划分——CPU寄存器在顶部、多层高速缓存存储器、DRAM主存和磁盘存储器。层次结构中较高层次存储设备可作为较低层次设备的高速缓存。
- 文件是对I/O的抽象、虚拟存储器是对程序存储器的抽象、进程是对正在运行的程序的抽象、虚拟机是计算机的抽象。
第七章
- 链接是将各种代码和数据部分收集起来并组合成单一文件的过程,由链接器的程序自动执行。
- 链接器完成的两个任务:符号解析及重定位
- 目标文件的三种形式:可重定位目标文件、可执行目标文件及共享目标文件
- 编译器向汇编器输出符号时,分强符号和弱符号。函数和已经初始化的全局变量是强符号,未初始化的全局变量是弱符号。
- 处理多重符号规则:1.不允许有多个强符号;2.如果有一个强符号和多个弱符号,选择强符号;3.如果有多个弱符号,任意选择一个;
- 处理目标文件的工具:AR、STRINGS、STRIP、NM等
VIM
- 保存改动过的文件并退出:
<Esc>:wq<enter>
- 放弃所有改动退出:
<Esc>:q!<enter>
- 欲从当前光标删除至下一个单词:dw
- 欲从当前光标删除至当前行末尾:ds
- 删除整行:dd
- 欲撤销以前的操作:u
- 欲撤销在一行中所做的改动:U
- 普通模式中使用y复制
- 普通模式中,yy复制游标所在的整行(3yy表示复制3行)
- 普通模式中,y^ 复制至行首,或y0。不含光标所在处字符。
- 普通模式中,y$ 复制至行尾。含光所在处字符。
- 普通模式中,yw 复制一个单词。
- 普通模式中,y2w 复制两个单词。
- 普通模式中,yG 复制至文本末。
- 普通模式中,y1G 复制至文本开头。
GCC
- GCC编译过程分为:
- 预处理:gcc –E hello.c –o hello.i;gcc –E调用cpp;
- 编 译:gcc –S hello.i –o hello.s;gcc –S调用ccl;
- 汇 编:gcc –c hello.s –o hello.o;gcc -c 调用as;
- 链 接:gcc hello.o –o hello ;gcc -o 调用ld
GDB
- 程序的运行状态有“运行”、“暂停”、“停止“三种。
- 主要操作:
- 查看文件:l
- 设置断点:在b后加入相对应的行号。例b 6
- 查看断点情况:设置完断点后键入info b,在gdb中可以设置多个断点。
- bt查询调用函数的情况
- 运行代码:默认从首行开始运行代码,键入r;r+行号:从该行号开始运行
- 查看变量值:p变量。例:p n
- 单步运行:n或s,s会进入函数,n不会进入函数
- 恢复程序运行:c
- 帮助信息:h
makefile
- makefile文件编写规则:
- 目标文件:由make创建,通常是目标文件或可执行文件
- 依赖文件:创建目标体所依赖的文件
- 运行命令:创建每个目标体时需要的运行命令,必须以tab键开头
- 格式为:目标文件:依赖文件列表 [tab键]各目标体运行命令(注意不是空格)
- 使用make的格式:make 目标文件
- makefile变量的定义:
- 递归展开方式:在引用该变量时进行替换(不能用于引用自己的情况),
- 缺点:不能在变量后追加内容
- 格式定义:VAR = var
- 展开方式:在定义处展开,并只展开一次。优点:消除变量的嵌套引用
- 格式定义:VAR := var
- make中变量的使用格式: $(变量名)
- 变量名的命名:不包括“:”、“#”、“=”以及结尾空格的任何字符串;变量名大小写不敏感
教材学习中的问题和解决过程
课后作业
本周代码托管截图
从实验楼下载的代码没有托管成功
其他(感悟、思考等,可选)
因为始终没有装上虚拟机,自己重装好几次包括别的同学的都不成功,使用实验楼做实验就导致git不方便。此外,对7章有个别章节不是很理解,会赶上大家的进度。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 200/200 | 2/2 | 20/20 | |
第二周 | 300/500 | 2/4 | 18/38 |