《信息安全系统设计基础+Linux 内核分析》第一次学习总结

《信息安全系统设计基础+Linux 内核分析》第一次学习总结

教材学习内容总结

学习了《庖丁解牛》的第一章。知道的概念有:

  • 存储程序计算机 = 冯诺依曼计算机,主要思想是:将程序存放在计算机存储器中,然后按存储器中的程序的首地址来执行程序的第一条指令,接下来就是一步一步按照程序中的编写好的指令来一步一步执行,直至程序结束。
  • 冯诺依曼体系结构的要点如下图。底层是:RAM,ROM,运算器(ALU),控制器,寄存器。 由图可知:寄存器是在CPU中的,而RAM,ROM不是在CPU中的,它们是内存。
  • CPU 像“贪吃蛇”一样,总是在内存里“吃”指令。
  • CPU、内存和I/O设备是通过总线连接的。内存中放着指令和数据。CPU负责解释和执行内存中的指令。
  • IA32 : Intel Architecture 32bit.
  • 寄存器:ABCD是数据寄存器,这四个16位的寄存器可以分为两个独立的8位寄存器使用。E:32位;R:64位;X:128位。

  • 62位中的增加的通用寄存器是可以用户随便使用的。
  • 数据格式
    • Word : 16 bit.
    • Double Words : 32 bit. 4个Byte : l
    • Quad Words : 64 bit.
  • 寻找方式:找“对象” 的方法
    • 寄存器寻址
    • 立即寻址
    • 直接寻址
    • 间接寻址
    • 变址寻址
  • 栈:有书的那部分是栈。栈顶指针:Stack Pointer中是非空的。
    • pushl 栈在增长
    • popl 栈在收缩(减小)
  • 指针、寄存器都是一个“小盒子”的“名称”,这个小盒子里放着“地址”(门牌号)。这个门牌号就是内存中的地址,地址里面“住着”一个一个的数据们。如下图所示:

  • 下面的指令都是“复合”指令,而且最底层的“原材料”指令中有设计到对堆栈指针(堆栈小盒子)的操作(更确切的说是操作了小盒子里的数据--地址)
    • pushl : 由2条底层语句复合而成
    • popl : 由2条底层语句复合而成
    • call : 由3条底层语句复合而成,一个pushl 和一个 movel
    • ret : 由2条底层语句复合而成,一个popl
    • enter : 由3条底层语句复合而成,一个popl 和一个 movel
    • leave : 由3条底层语句复合而成,一个pushl 和一个 movel
  • 程序从main函数开始执行,即:main 标号(这个标号不算语句噢)下面的第一条语句。
  • 通过函数调用堆栈框架,暂存了函数的上下文信息,整个程序的执行过程变成了一个指令流,从CPU 中“流”了一遍,最终栈空间又恢复到空栈的状态。

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

    经过思考后,无。我觉得:应该把指针的指向放到中间比较好。因为:“门牌号”都是在房间门的正中央的。

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

没有敲很多代码,只是验证了一下自己的实验环境。

代码托管

上周考试错题总结

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

好好学!
我发现,这门课好像和“深入理解计算机系统”这门课的联系很紧密?但是:这应该是两门课!可以同时进行吧。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时

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

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

  • 计划学习时间:XX小时

  • 实际学习时间:XX小时

  • 改进情况:

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

参考资料

  • 庖丁解牛 Linux 内核分析。

猜你喜欢

转载自www.cnblogs.com/alan6y/p/10187557.html