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
各章问题
- 怎么得到一个可执行文件,过程是什么?
2.关于计算机内信息具体的处理如何处理,怎么表示?
3.反汇编是什么?反汇编后,我们可以从中知道什么信息?
4.之前只听过X86,那么Y86指令体系具体是什么?
6.高速缓存是怎么运作的?
7.什么是链接,有什么作用?链接器和链接又有什么关联?
8.如何并发,产生子进程?
- 虚拟内存的地址映射的两种方式有什么不同?
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就接近了。
-
计划学习时间:15小时
-
实际学习时间:10小时
-
改进情况:
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)