20145331《信息安全系统设计基础》课程总结
20145331《信息安全系统设计基础》课程总结
每周作业链接汇总
第0周作业:
巩固了上学期老师所提倡的师生关系“健身教练和健身学员”,针对每一章提出了想要解决的问题。
第一周作业:
基本的Linux命令、目录结构以及常用的快捷键,这周的东西有些一直考到了期末,本周通过看以前的博客我也把几个不常用的命令又记了记。
第二周作业:
先学习了vim,会了vim就可以写程序了,接着就是gcc -参数的编译过程,把你写的程序转成不同格式的文件;gdb是用来调试程序的。动态库静态库目前我感觉用的不多,不过也得会啊。书上的知识多以概念为主,有些东西后面才细讲。
第三周作业:
一些很基础的细节知识点:二进制在计算机中的重要地位、布尔运算、整数表示和浮点数。
第五周作业:
之前学习了gcc编译过程可以把c代码转换为汇编代码,这周就主要学习汇编代码,基础的汇编代码书上讲的很细,很好懂;反汇编就是把二进制文件转换为汇编代码,反汇编代码与汇编代码还是有一些区别的。难点主要是栈帧结构那块,要代码和图结合起来学。
第六周作业:
Y86指令集体系结构,运用上周汇编代码和栈帧结构的知识,看4.3节的东西会很得心应手,取指、译码、执行、访存、写回、更新PC这几个过程及相对应的参数变化要搞清楚。 HCL是之前学过的,他只是与本周的东西结合了一下,没什么难度。
第七周作业:
这周内容一开始是ram、rom和磁盘,看书就能懂,磁盘里面有几个比较抽象的概念书上都给了很形象的图示。接着是局部性,这个概念很简单主要要实践;访存访盘就看着书上的图走一遍就懂了,不难。第二周不是讲了一个存储结构层次么,这周将它细化,引入了命中、块、缓存管理的概念。最后是高速缓存,他是存储结构层次的核心。围绕地址的结构将高速缓存分为了三类。
第八周作业:
期中总结。
第九周作业:
内容是系统编程和系统调用、系统编程错误处理的方式、Unix/Linux系统级I/O、RIO、I/O重定向等,我感觉要重点把每一个函数要搞明白(尤其是返回值)。
第十周作业:
这周主要是代码的学习,涉及到了:Who命令、ls命令详解。
第十一周作业:
先讲了异常极其种类、进程和并发,这些知识后面的函数一直在用,在这个基础上又讲了一堆函数,不过通过课本前面的铺垫和老师上课的介绍理解这些函数并不难。基本明白了数组指针、指针数组、函数指针、指针函数的区别,这四个概念从上学期初一直提到了现在;不敢说把管道全搞明白了,但还是会一点。
第十二周作业:
进程、管道的代码理解。
第十三周作业:
网络编程:IP、TCP、DNS、套接字函数、html、URL等很多概念和知识;进程、线程、I/O多路复用。
第十四周作业:
虚拟存储器、地址翻译、存储器映射、动态存储器分配、垃圾收集。
实验报告链接汇总
实验一
开发环境的熟悉:配置环境步骤。
实验二
固件设计:多线程。
实验三
实时系统的移植。
实验四
外设驱动程序设计。
实验五
简单嵌入式WEB服务器实验。
代码托管链接和二维码
1、代码驱动的学习做到没有?
啊这个实事求是的说应该没有达到老师的要求吧,不过比上学期会用git了。
2、加点代码,改点代码是理解的最好方式,谈谈你的心得
改代码的基础是你先得会代码中涉及的内容,然后还要会灵活运用,都能灵活运用了相关知识肯定就理解了。
3、实践上有什么经验教训
实践要早早开始,越早越好。
第0周作业中自己提出的总题
第一章 系统硬件如何组成的?
正在运行的程序抽象为进程、进程中的执行单元抽象为线程、进程独占内存的假象虚拟存储器、操作系统统一视角抽象为文件
第二章 IEEE是什么?
浮点数表示标准,用V=(-1)^sM2^E
第三章 机器级是什么?机器级代码又是什么?
汇编级。汇编语言或二进制格式语言。
第四章 HCL和我们之前学习过的HDL是相似的东西吗?
相似但有些地方不同
第五章 现代处理器是什么?
将大量的晶体管集成到一块芯片上,采用更复杂的硬件
第六章 存储器山是什么?
读带宽时间和空间局部性的二维函数
第七章 静态链接是什么?
以一组可重定位目标文件和命令行参数作为输入,生成一个完全链接的可以加载和运行的可执行目标文件作为输出
第八章 非本地跳转是什么?
用户级异常控制流形式,将控制直接从一个函数转移到另一个当前正在执行的函数,而不需要经过正常的调用-返回序列
第九章 什么是虚拟存储器?
对贮存的抽象概念
第十章 RIO包是什么?
I/O包,提供了方便、健壮和高效的I/O
第十一章 套接字接口是什么?
一组函数,和I/O函数结合起来,用以创建网络应用
第十二章 进程的优劣是什么?
进程有独立的地址空间,一个进程不可能不小心覆盖另一个进程的虚拟存储器独立的进程地址又让共享状态信息困难
你有什么项目被加分,谈谈你的经验
没什么加分项目,但也没扣什么分。
给学弟学妹们的学习建议:
这门课的拿分精髓在于:老师让你做的实践+每周的考试;记着老师写的git的那篇博客一定要看,因为到最后老师还是会逼你看的;如果成天闲的没事干你也可以做做其他的比如加分项目什么的,那样成绩会更高而且老师有奖品奖励。
这门课混不过去的,平时一点不学绝对gg,期末突击压根没用。
课程收获与不足
自己的收获(投入,效率,效果等)
首先我感觉自学能力比以前强了很多;一周比较闲的时候发现去图书馆看看书感觉也不错,很充实的一天;c语言、汇编这两门课长进不少,以前都不怎么会;敲代码比以前快多了。我感觉进步还是很大的,谢谢老师一学期对我的督促和监督。
自己需要改进的地方
实践部分在做了,但是没有看书下的功夫多;比起上学期,进步了很多,但和其他同学比,还是有很大差距的。
问卷调查
1、你平均每周投入到本课程多长时间?
2~5天不等,看知识难度和自己的时间了。
2、每周的学习效率有提高吗?
开始效率低,期中时效率很高,后面有那么一两周效率又低了。
3、学习效果自己满意吗?
还行还行,一般满意啊。
4、课程结束后会继续一周至少一篇博客吗?(如果能做到,毕业时我把你的博客给你集结成一本书)
这个还是算了吧。。。
5、你觉得这门课老师应该继续做哪一件事情?
周周考试啊,这样就没有期末考试了。
6、你觉得这门课老师应该停止做哪一件事情
都不用停,反正都习惯了。
7、你觉得这门课老师应该开始做什么新的事情?
每周考试监考强度太低了,加大监考力度。