20145325张梓靖 《信息安全系统设计基础》期中总结
知识点总结
- Linux命令 man命令:查看帮助文档;cheat,通过例子学会使用命令;find:查找一个文件在系统中的什么位置;locate:快速查找文件;grep:可以对文件全文检索;whereis,which:使用的命令工具装在了什么地方;apt-cache:软件源的库里有没有某个程序。
- 调试编译 vim:对某些类型的源文件进行编写,比如.c文件;gcc:编译工具,可将.c文件编译为可执行的二进制文件;gdb:对可执行文件进行调试,主要调试的是C/C++的程序;makefile:定义了一系列的规则来指定要进行的功能操作,自动化编译”;make:根据makefile文件中描述的源程序至今的相互关系来完成自动编译、维护多个源文件工程。
- 静态库制作 静态链接库的生成:
ar rcsv libxxx.a xxx.o
静态库的使用:gcc -o main main.c -L. -lxxx
注意-L -l 的含义 - 动态库制作 共享库的生成
gcc -fPIC -c xxx.c
gcc -shared -o libxxx.so xxx.o
共享库的使用:gcc -o main main.c -L. -lxxx
- 信息的表示与处理 信息的存储;无符号有符号的表示;整数的运算;浮点数的表示与运算。
- IA32的机器级表示 数据的格式;访问信息、算术和逻辑、控制的操作码;栈帧的结构,如何转移控制。
- Y86体系结构 先熟悉Y86指令集以及硬件控制语言HCL,对Y86的顺序执行(SEQ处理器),分析各个操作码及SEQ阶段的实现。
- 局部性局部性通常分两种不同的形式,时间局部性和空间局部性。在一个有良好时间局部性的程序中,被引用过一次的存储器位置很可能在不远的将来被多次引用;具有良好控件局部性的程序中,如果一个存储器被引用一次,那么程序可能在不久的将来引用附近的一个存储器位置。重复引用同一个变量从的程序有良好的时间局部性;对于步长为k的引用模式的程序,步长越小,空间局部性越好。对于取指令来说,循环有很好的时间和空间局部性。循环体越小,循环迭代次数越多,局部性越好。
自己的收获
- 终于基本了解到了计算机的硬件组成部分的细节:处理器通过怎么的阶段才能对正确执行一条指令,存储器怎么存储数据、高效传输数据以及怎么联系处理器与外设等等。以前都是对自己透明的一些东西,现在也基本上能够说出一二。
- 通过将“IA32”的机器级编码表示与上学期学过的“汇编语言”进行比较学习,不仅让我快速的掌握了“IA32”的指令操作码的种种规定与使用方法以及适用情况,并且从对比的学习中,更深刻的认识到2种编码的差异性与共通性。明白了在以后的学习中,想熟练掌握某种知识体系,最好的办法就是在比较中学习,了解互通性,理解差异性。
- 以前只知道并只会操作 Windows操作系统,现在也知道了 Linux操作系统,并能对其进行简单基本的操作,明白了这2种操作系统的存储方式、指令的差异。
自己的不足
- 虽说对于每周教材的阅读任务,都能够按时完成并且理解得还挺透彻的,但也太“按时”了点。如此“按时”并不是说我只在周末才阅读教材;我其实从星期一一直看到星期天。但问题就在于,这么长的时间里,怎么看一章的教材就这么费时间,一些补充的、深化的内容完全是没有机会做。其实归根结底,还是时间安排不合理,不会规划时间,很多时间都在自己还没意识到的时候就已经浪费掉了。所以,在以后的学习中,一定要提前想好计划,到底什么时间段该干什么,怎么干,特别要监督自己,看住自己。做好了计划,就一定要去做,不要说自己疲惫不堪,想缓缓——DON'T SAY NO,JUST SAY NOW.
课程的建议和意见
暂时没有
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 3500行 | 25篇 | 300小时 | |
第一周 | 70/70 | 2/2 | 22/22 | |
第二周 | 150/220 | 1/3 | 23/45 | |
第三周 | 160/380 | 1/4 | 25/70 | |
第五周 | 250/630 | 1/5 | 30/100 | |
第六周 | 25/655 | 1/6 | 27/127 | |
第七周 | 30/685 | 2/8 | 25/152 | |
第八周 | 0/685 | 1/9 | 20/172 |