zoukankan      html  css  js  c++  java
  • 20145337 《信息安全系统设计基础》第2周学习总结

    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

    参考资料

  • 相关阅读:
    java-五子棋棋盘排布 && 数字转换成汉字 &&大数计算
    动手动脑,无法自拔(2)课时作业4
    动手动脑,无法自拔(1)课时作业3
    《大道至简》 第二章 读后感
    NABCD需求
    第九周总结
    第八周总结
    最大子数组(循环连接)
    第七周总结
    最大子数组和
  • 原文地址:https://www.cnblogs.com/5337my/p/5906822.html
Copyright © 2011-2022 走看看