2017-2018-1 20155318 《信息安全系统设计基础》第1周学习总结
教材学习内容总结
熟悉vi的基本操作
- 命令模式下,将光标放在函数名上,按"K"可以直接察看 man page。
几个设置 :set nu
显示行号:set ai
自动缩行:set ts=4
设置一个 TAB 键等于几个空格h-←,j-↓,k-↑,l-→,:控制相应的光标移动方向;
[[ 转到上一个位于第一列的"{";]] 转到下一个位于第一列的"{";{ 转到上一个空行;} 转到下一个空行
·gd 转到当前光标所指的局部变量的定义
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
调用ldgdb调试技术
- gdb m(启动GDB)
- b 设断点(4种断点:函数断点、条件断点、临时断点,行断点)
- run (r)开始运行程序
- info b
- n (next)单步运行
- s (step) 单步运行
c(countinu)从当前断点继续运行到下一个断点
- display 跟踪变量值的改变
quit 退出GDB
- until 结束循环
finish 结束函数
教材学习中的问题和解决过程
- 问题一:操作系统内核提供三个基本的抽象是?
- 文件是对I/O设备的抽象
- 虚拟存储器是对主存和磁盘的抽象
- 进程是对处理器、主存和I/O设备的抽象
- 问题二:并发和并行的区别和联系?
- 并发:一个同时具有多个活动的系统。
- 并行:用并发使一个系统运行地更快,并行可以在计算机系统多个抽象层次上运用。按照系统层次结构由高到低的顺序强调三个层次:线程级并发、指令级并行、单指令多数据并行
代码调试中的问题和解决过程
虚拟机出现故障,暂未发现代码调试问题
教材每章提的问题
- 第一章:操作系统的管理硬件有哪些?有什么不同
- 第二章:无符号数和数的补码表示有哪些特性?
- 第三章:在机器程序中,如何将控制与数据连接起来?
- 第四章:Y86-64是一种什么样的指令?
- 第五章:如何减少程序需要做的工作的变换?
- 第六章:高速存储对程序的性能影响如何?
- 第七章:动态库与静态库的不同?
- 第八章:应用程序是如何处理阻塞信号的?
- 第九章:应用程序如何使用和管理虚拟内存?
- 第十章:内核用什么数据结构来表示打开的文件?
- 第十一章:什么是套接字接口?
- 第十二章:基于进程的并发和基于线程的并发的区别和联系?
上周考试错题总结
无
结对及互评
本周结对学习情况
其他(感悟、思考等,可选)
新的一学期学习还没完全进入状态,完成书籍学习后,博客写的有些敷衍,会在下周的学习中不断更新完善这篇博客。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 0/0 | 1/1 | 3/3 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
计划学习时间:5小时
实际学习时间:3小时