20145337 《信息安全系统设计基础》第2周学习总结

本文总结了《信息安全系统设计基础》课程第二周的学习内容,包括源程序的组成、编译流程、链接过程以及虚拟存储器等概念。详细介绍了GCC编译器的工作流程和GDB调试器的基本操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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中变量的使用格式: $(变量名)
  • 变量名的命名:不包括“:”、“#”、“=”以及结尾空格的任何字符串;变量名大小写不敏感

    教材学习中的问题和解决过程

    886543-20160925203539316-59906731.png

课后作业

886543-20160925203314884-820020281.png

886543-20160925203330776-2030569496.png
886543-20160925203353996-1671158982.png
886543-20160925203411497-248407057.png
886543-20160925203439781-1529072213.png

886543-20160925203452219-401261786.png

本周代码托管截图

从实验楼下载的代码没有托管成功
886543-20160925203553255-1633370919.png

其他(感悟、思考等,可选)

因为始终没有装上虚拟机,自己重装好几次包括别的同学的都不成功,使用实验楼做实验就导致git不方便。此外,对7章有个别章节不是很理解,会赶上大家的进度。

学习进度条

代码行数(新增/累积)博客量(新增/累积)学习时间(新增/累积)重要成长
目标5000行30篇400小时
第一周200/2002/220/20
第二周300/5002/418/38

参考资料

posted on 2016-09-25 20:37 20145337马月 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/5337my/p/5906822.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值