20145321 《信息安全系统设计基础》期中总结

20145321 《信息安全系统设计基础》期中总结

重要知识点总结

man

  • -a:在所有man帮助手册中搜索
  • -k:根据关键字搜索联机帮助,是一种模糊搜索
  • -f:关键字精确搜索,显示给定关键字的简短描述信息
  • -p:指定内容时使用分页程序
  • -M:指定man手册搜索的路径

man -k k1 | grep k2 | grep k3 ...语句可以结合多关键字查找

cheat

cheat是非常好用的“作弊”搜索工具,能够方便的告诉你你想要的内容

grep

grep -nr XXX /usr/include:已知某个宏保存在include文件夹中,想查找此宏就用这个语句。

vi

常用命令总结

  • 插入
    • i 在当前光标处进行编辑
    • a 在光标后插入编辑
  • 退出
    • :q! 强制退出,不保存
    • :q 退出
    • :wq! 强制保存并退出
    • :wq 保存并退出
    • :w <文件路径> 另存为
  • 删除
    • x 删除游标所在的字符
    • dd 删除整行
  • 行间跳转
    • nG(n Shift+g) 光标移动到第n行
  • 复制与粘贴
    • nyy 复制光标所在及其后的整行共n行
    • p 代表粘贴至光标后

gcc

原文件->预处理->编译->汇编->连接->可执行文件

  • 预处理:gcc –E xxx.c –o xxx.i

    gcc –E调用cpp 生成中间文件

  • 编 译:gcc –S xxx.i –o xxx.s

    gcc –S调用ccl翻译成汇编文件

  • 汇 编:gcc –c xxx.s –o xxx.o

    gcc -c调用as翻译成可重定位目标文件

  • 链 接:gcc xxx.o –o xxx

    gcc -o调用ld**创建可执行目标文件

  • 运行可执行文件 ./xxx

gdb

  • 进入GDB

    gcc -g xxx.c -o xxx

    gdb xxx

  • 查看源码

(gdb) l 进行行号提示

(gdb) b n 在第n行设置断点

(gdb) r 运行代码,运行至断点处

(gdb) n 单步运行

(gdb) c 使程序继续往下运行,直到再次遇到断点或程序结束

(gdb) q 退出GDB

(gdb) watch n 在"n"设置了观察点,观察变量的变化情况

makefile

用途:实现自动化编译

格式:

  target(目标文件)... : prerequisites(要生成那个target所需要的文件或是目标)
  command(任意的Shell命令,就是make需要执行的命令)

这是一个文件的依赖关系,也就是说,target这一个或多个的目标文件依赖于prerequisites中的文件,其生成规则定义在command中。

Makefile中的宏,也称作变量,有两种定义方式

  递归展开方式      VAR=var
  简单方式        VAR:=var

使用变量的格式为

 $(VAR)

考题复习

第一周
 -Linux Bash中,查找home目录中昨天创建的文件的命令是(find ~ -ctime 1)
 -Linux Bash中,使用tar命令把home目录打包成home.tar的命令是( tar -cf home.tar ~)
 -Linux Bash中,zip命令使用(-e)参数可以创建加密压缩包。
 -Linux Bash中,ls . | sort 命令的功能是( 显示当前目录内容并排序 )
 -Linux Bash中,把ls命令显示当前目录的结果存入ls.txt的命令输出重定向命令是(ls > ls.txt)
 -Linux Bash中,(cheat find )命令可以查年find命令的使用示例。
第二周
 -数据结构中有线性查找算法,C标准库中没有这个功能的函数,但Linux中有,这个函数是(lfind或lsearch)
 -数据结构中有二分查找算法,C标准库中有这个功能的函数,这个函数是(bsearch)
 -实现“Display files,Sorted by size”功能的ls命令是 ( ls –S )
 -查找根目录下所有目录的find命令是(find / -type d)
 -Linux系统中,链接器程序是(ld)
 -(加载器)将可执行文件的内容映射到存储器,并运行这个程序。
第三周
 -gdb中next和step都可以单步跟踪,根据自顶向下原则应该优先选用next.
 -gdb中使用命令( until ) 可以跳出循环语句。
 -计算机将信息按位编码,通常组织成(字节)序列。
 -计算机的(字长)指明整数和指针数所的标称大小。
 -(Shannon 或香农)建立了布尔代数和数字逻辑之间的联系。
 -GCC中INFINITY表示(无穷大)。
第五周
 -(程序计数器或%eip) 指示将要执行的下一条指令在内存中的地址。
 -两个寄存器(%ebp和%esp)保存着指向程序栈中重要位置的指针。 
 -jz/jnz指令中跳转条件是由(ZF)决定的。
 -C语言中的循环结构汇编中可以用(条件测试和跳转)组合起来实现。
 -Linux汇编中,销毁栈帧的语句是(movl %ebp,%esp popl %ebp 或leave) 
 -Linux汇编中,需要调用者保存的寄存器有(%eax,%edx,%ecx )。
第六周
 -解开sim.tar的Linux命令是(tar -xvf sim.tar)
 -Linux中建立符号链接(快捷方式)使用的命令是( ln 或者 ln -s)
 -(YIS或指令集模拟器 )可是模拟Y86机器代码的执行。
 -与、或、非三种逻辑门可以用一种门(与非门, 或者 或非门)实现。
 -HCL中,多路复用函数使用(情况表达式)来描述。
 -ALU是一种时序电路。(X) {ALU(算数/逻辑)单元是组合电路}
 -bool s= r==1 || r==2 || r=5 等价于(bool s = r in {1,2,5} )
第七周
 -程序具有良好的局部性表现在倾向于从存储器层次结构中的较低层次处访问数据,这样节省时间。 (x)
 -(存储器)总线连接I/O桥和主存。
 -发生不命中要执行(放置)策略。
 -程序员可以编写(有良好空间和时间局部性)的程序来显著改进程序的运行时间。
 -存储器给出的读访问时间是(局部性)的一个函数。

收获与不足

收获

前段时间还在待及格名单中苦苦挣扎,觉得时间难熬想赶紧度过,然而转眼间已过了半个学期了,紧张之感油然而生。此中我最大的收获就是态度的转变。 之前在待及格名单时,娄老师提高了对我们的要求,学得好给我们加分,越不学习的扣分越厉害,最初其实我是觉得很不情愿的,但为了不落的一个更惨的境地, 我还是按着老师的要求去做。可在其中,我的态度也渐渐得以改变,由最初的反感到现在愿意去学,这是我在这门课程里最好的收获。 想起那本空空的书,之前都没怎么翻过,现在早已不在待及格名单里,我却变得很愿意在上面划重点,找习题去做。 现在想来,也懂得了老师的良苦用心,其实老师比我们都着急,不愿看到这么多人什么都学不到,甚至还有可能最后落得个不及格, 才用这样的办法来鞭策我们。总之还是谢谢娄老师对我们的帮助。

不足

感觉自己最大的不足就是拖延症很严重,总是要到最后才把事情给做了,博客、实验报告、作业很多都是到最后一天才写。 虽然最后一下把所有事情全都做完看起来效率很高,其实并不是这样的,如此做出的工作质量不高,而且事情堆在一起成了重担,也让自己觉得很累, 所以这个学期一定要强迫自己把这个坏毛病改掉。首先我要从博客开始试验,尽早开始写博客,一次写不完没关系,每天分配自己一点任务, 一段一段的写,来把博客完成。希望这个方法能让我改掉拖延的毛病吧。

学习进度条

 代码行数(新增/累积)博客量(新增/累积)学习时间(新增/累积)
目标 3500行 30篇 300小时
第一周 50/50 1/2 10/10
第二周 120/170 1/3 20/30
第三周 130/300 1/4 20/50
第五周 130/430 2/6 25/75
第六周 50/480 2/8 25/100
第七周 53/533 1/9 20/120
第八周 0/533 2/11 15/135
 
 
原文地址:https://www.cnblogs.com/5321z/p/6036193.html