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

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

教材学习内容总结

第一章 计算机系统漫游

1.hello.c以字节序列存储在文件里。只有ASCII字符构成的文件成为文本文件。所有其他文件称为二进制文件。

2.预处理器通过修改hello.c原始文件,得到hello.i,编译器将文本文件hello.i翻译为文本文件hello.s,
汇编器把hello.s翻译成机器语言指令hello.o,是一个二进制文件。
最后通过链接器得到hello文件,是一个可执行目标文件。

3.系统的硬件组成:总线、I/O设备、主存、处理器。

4.存储器层次结构,从上到下,设备变得访问速度越来越慢,容量越来越大。

主要思想是一层上的存储器作为低一层存储器的高速缓存。

5.操作系统通难过进程(对正在运行程序),虚拟存储器(对程序存储器),文件(对I/O)来实现功能。

第七章 链接

1.链接相当于一个整合,将各部分整合成一个单一的可执行的文件的过程。

2.为了构造可执行任务,链接器必须完成两个任务: 符号解析、重定位

3.目标文件的三种形式:

(目标文件就是字节块的集合)

可重定位目标文件;
可执行目标文件;
共享目标文件。

4.符号和符号表

由m定义的可被其他模块引用的全局符号;

其他模块定义的可被m模块引用的全局符号(外部符号);

只被m模块定义与引用的本地符号。

常用命令:

预处理:gcc -E hello.c -o hello.i

编译:gcc -S hello.i -o hello.s

汇编: gcc -c hello.s -o hello.o

链接:gcc hello.o =o hello

各章问题

  1. 怎么得到一个可执行文件,过程是什么?

2.关于计算机内信息具体的处理如何处理,怎么表示?

3.反汇编是什么?反汇编后,我们可以从中知道什么信息?

4.之前只听过X86,那么Y86指令体系具体是什么?

6.高速缓存是怎么运作的?

7.什么是链接,有什么作用?链接器和链接又有什么关联?

8.如何并发,产生子进程?

  1. 虚拟内存的地址映射的两种方式有什么不同?

10.标准I/O库与Unix I/O有什么区别?

11.服务器和客户端之间如何进行通信?

12.有了多线程,多进程,I/O多路复用又是什么功能应用?

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

  • 问题一:关于操作系统提供的三个基本的抽象:文件、虚拟存储器、进程之间具体的差别在哪里?字面意义上感觉不太深刻。

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

  • 问题1
    运行程序时,要记得 .main
    ,否则不会运行出结果
  • 问题二
    -git时出现如下情况,无法正常git

解决:提示说没有.git这样一个目录,解决办法如下:
git init就可以了!

代码托管

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

上周考试错题总结

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

上学期没有用虚拟机来学习java,感觉现在使用虚拟机,命令不是很熟悉,还需要在实验楼温习一下。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 20/20 1/1 10/10 第一章,第一章

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

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

参考资料

原文地址:https://www.cnblogs.com/0831j/p/7588211.html