2017-2018-1 20155230 《信息安全系统设计基础》第五周学习总结

2017-2018-1 20155230 《信息安全系统设计基础》第五周学习总结

教材学习内容总结

历史

简要介绍了从最开始78年29K个晶体管的8086到08年781M个晶体管的Core i7的Intel系列处理器发展过程

X86寻址方式经历三代
DOS时代的平坦模式,不区分用户空间和内核空间,很不安全
8086的分段模式
IA32的带保护模式的平坦模式
摩尔定律:
  • 在未来十年,芯片上的晶体管数量每年都会翻一番。

  • 事实证明摩尔定律的预测不仅有点乐观,而且短视。在超过45年中,半导体工业一直能够使晶体管数目每18个月翻一番。

  • 备注:一开始并不能理解乐观且短视是什么意思,多次阅读进行理解才明白。短视是因为在摩尔定律中的预测是未来十年,而实际中已超过45年,乐观则是因为预测中翻一番的时间是以每年来进行计算,而实际情况中则是每18个月才翻一番。这就是摩尔定律乐观且短视的原因。

程序编码

两种抽象
  • 指令集体系结构
定义:机器级程序的格式和行为,即指令集体系结构(Instruction set architecture,ISA)
定义了处理器状态、指令的格式,以及每条指令对状态的影响。
  • 虚拟地址
定义:机器级程序使用的存储器地址
虚拟地址所提供的存储器模型看上去是一个非常大的字符数组。
实际实现:将多个硬件存储器和操作系统软件组合起来。

汇编代码

  • 在表示上非常接近于机器代码

  • 比起机器代码的二进制格式,汇编代码的文本格式可读性更高

  • 通常对C语言程序员隐藏的处理器状态是可见的。

程序计数器%eip:指示将要执行的下一条指令在存储器中的位置
整数寄存器文件:包含8个命名的位置,分别存储32位的值
条件码寄存器:保存着最近执行的算术或逻辑指令的状态信息。用来实现控制或数据流中的条件变化。
浮点寄存器:存放浮点数据
程序存储器包含:
程序的可执行机器代码
操作系统需要的一些信息
用来管理过程调用和返回的运行时栈
用户分配的存储器块

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

  • 问题1:进行教材学习时想到这么一个问题汇编可以排序、交换,那么是否存在指针。
  • 问题1解决方案:经过百度后查到:“寻址”一直用的就是指针。

代码调试中的问题和解决过程

  • 在64位机器上输入gcc -m32 -S xxx.c可以得到32位汇编代码

代码托管

(statistics.sh脚本的运行结果截图)

GIT库出了一点问题,导致只能看见之前提交过的总代码量,commit不上去。正在尝试解决。

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

xxx
xxx

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 7/7 1/1 4/4
第三周 62/69 2/3 15/19
第五周 161/230 2/5 22/41

尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

参考:软件工程软件的估计为什么这么难软件工程 估计方法

  • 计划学习时间:XX小时

  • 实际学习时间:XX小时

  • 改进情况:

(有空多看看现代软件工程 课件
软件工程师能力自我评价表
)

参考资料

原文地址:https://www.cnblogs.com/J1n233/p/7708372.html