20145322 《信息安全系统设计基础》课程总结

#20145322 《信息安全系统设计基础》课程总结html

每周做业连接汇总linux

第零周 预习课程知识,安装环境git

第一周 Linux 目录结构及一些基本的linux操做和命令编程

第二周 ubuntu

学习内容数组

熟悉Linux系统下的开发环境浏览器

熟悉vi的基本操做缓存

熟悉gcc编译器的基本原理安全

熟练使用gcc编译器的经常使用选项服务器

熟练使用gdb调试技术

熟悉makefile基本原理及语法规范

掌握静态库和动态库的生成与调用方法

理解C程序中模块的概仿,模块分解的“高内聚,低耦合”的原则

了解连接的概念

 

第三周 

学习内容

理解二进制在计算机中的重要地位

掌握布尔运算在C语言中的应用

理解有符号整数、无符号整数、浮点数的表示

理解补码的重要性

能避免C语言中溢出,数据类型转换中的陷阱和可能会致使的漏洞

进一步理解“信息=位+上下文”

 

第五周

学习内容

理解逆向的概念

掌握X86汇编基础,可以阅读(反)汇编代码

了解ISA(指令集体系结构)

理解函数调用栈帧的概念,并能用GDB进行调试

 

 

第五周续

 

第六周

学习内容

了解ISA抽象的做用

掌握ISA,并能触类旁通学习其余体系结构

了解流水线和实现方式

 

第六周续

 

第七周 

学习内容

了解常见的存储技术(RAM、ROM、磁盘、固态硬盘等)

理解局部性原理

理解缓存思想

理解局部性原理和缓存思想在存储层次结构中的应用

高速缓存的原理和应用

 

第七周续

 

第八周

学习内容

复习 Linux经常使用命令

复习 教材1-7章

 

期中总结

 

第九周

学习内容

掌握系统编程和系统调用的概念

掌握系统编程错误处理的方式

掌握Unix/Linux系统级I/O:open close read write seek stat

掌握RIO

掌握I/O重定向的方法

 

第九周续

 

第十周

学习内容

掌握系统编程和系统调用的概念

掌握系统编程错误处理的方式

掌握Unix/Linux系统级I/O:open close read write seek stat

掌握RIO

掌握I/O重定向的方法

 

第十一周

学习内容

了解异常及其种类

理解进程和并发的概念

掌握进程建立和控制的系统调用及函数使用

理解数组指针、指针数组、函数指针、指针函数的区别

理解信号机制:kill,alarm,signal,sigaction

掌握管道和I/O重定向:pipe, dup, dup2

 

第十二周

学习内容

第九周代码检查

第十周代码检查

第十一周代码检查

 

第十三周

学习内容

掌握三种并发的方式:进程、线程、I/O多路复用

掌握线程控制及相关系统调用

掌握线程同步互斥及相关系统调用

 

第十四周

学习内容

理解虚拟存储器的概念和做用

理解地址翻译的概念

理解存储器映射

掌握动态存储器分配的方法

理解垃圾收集的概念

了解C语言中与存储器有关的错误

 

实验报告连接汇总

实验一

 

实验二

 

实验三

 

实验四

 

实验五

 

 

代码托管连接和二维码

截图 git log --pretty=format:"%h - %an, %ar : %s" 的结果:

 

代码量汇总

 

代码驱动的学习作到没有?

按照老师的指导去完成了代码驱动的学习任务,可是必定要把本身的ubuntu。vmx文件保管好,不要误删了,否则所有git又得从新弄一遍,我就装了两次虚拟机。

加点代码,改点代码是理解的最好方式,谈谈你的心得

可以在原有的代码基础上加改代码而且能成功运行,这说明已经掌握了原有的代码。并且这样的学习方式对此代码更加印象深入。

实践上有什么经验教训

当天任务当天完成,拖泥带水只会越拖越累,由于咱们没法预知下一秒会遇到什么问题,以前的问题不解决只会成为后面的累赘。

回答一下第0周做业中本身提出的总题

第一章

什么缘由促使咱们必须了解编译系统是如何工做的?

1 优化程序性能

2 理解连接时出现的错误

3 避免安全漏洞

第二章

计算机算数运算怎么引起计算机的安全漏洞?

P53 函数getpeername的安全漏洞里讲到,还有例若有符号数转无符号数的隐式转换,也会致使漏洞。

第三章

机器级代码是如何转换的?

例如

汇编C语言的代码用:gcc -01 -S xxx.c

汇编并编译:gcc -01 -c xxx.c

第四章

处理器的体系结构

各类状态元素、指令集和它们的编码、一组编程规范和异常事件处理

 

第五章

怎样优化程序?须要注意哪些方面?

消除循环的低效率;减小过程调用和消除没必要要的存储器引用,在第五章里有详细说明。

第六章

存储器的结构

第七章

静态连接和动态连接有何区别?

静态连接

在生成可执行文件的时候,把全部须要的函数的二进制代码都包含到可执行文件中去。连接器须要知道参与连接的目标文件须要哪些函数,同时也要知道每一个目标文件都能提供什么函数,这样连接器才能知道是否是每一个目标文件所须要的函数都能正确地连接。

动态连接

 在编译的时候不直接拷贝可执行代码,而是经过记录一系列符号和参数,在程序运行或加载时将这些信息传递给操做系统,操做系统负责将须要的动态库加载到内存中,而后程序在运行到指定的代码时,去共享执行内存中已经加载的动态库可执行代码,最终达到运行时链接的目的。

第八章

如何回避并处理异常?

经过异常表,进行间接过程调用,到达异常处理程序。

第九章

虚拟存储器的做用

虚拟存储器中运用了虚拟内存技术,拿出一部分硬盘空间来充当内存使用,当内存占用完时,电脑会自动调用硬盘来充当内存。

第十章

系统级的I\O是什么意思?

在主存和外部设备之间拷贝数据的过程。

第十一章

十一:如何编写一个Web服务器

Web服务器使用HTTP协议和它们的客户端彼此通讯的。浏览器向服务器请求静态或者动态的内容。对静态内容的请求是经过从服务器磁盘取得文件并把它返回给客户端来服务的。

你有什么项目被加分,谈谈你的经验

GDB调试堆栈过程分析

 

优缺点

优势就是能把咱们学习任务分的很清楚,咱们不会混淆,跟着老师的进度走很顺利的学习。没有缺点,总是这么负责认并且效率这么高,我认为没有缺点。

课程收获与不足

这门课我学到最重要的一点是在每周的开始把本身一门科目的学习任务定好了,而后在本周内必须学完,这样既能提早计划好学习进度又不能落下,是个很好的学习方法。对于写博客这块,我感受书上的学习内容写在博客园上,一方面复习了本身学习的知识,另外一方面还能够在周一的考试中忘了那一块知识点的时候能迅速找到答案。不足就是本身在开学的时候没好好学,欠下了学习的债,后面还的很辛苦,而且学习状态不稳定,仍是得调整学习心态,在学习的时候屏蔽掉可有可无的事情,专心学习。

给学弟学妹的学习建议

真的真的不要欠债,欠本身学习的债,不但不能让本身轻松,反而更累,你们都是学生,来上学,欠下的总要还的,因此必定要紧跟老师的指导步骤,甚至提早预习。

多动手,多思考。尤为多动手,加改代码,可让本身更加深入地理解代码。

做息必定要规律,否则哪能每次都集中注意力学习,要否则就会学的时间特别多完了还学不到多少知识,就是学不进去的意思(深有体会)

问卷调查

你平均每周投入到本课程多长时间?

20个小时

每周的学习效率有提升吗?

端正学习态度以后效率高了

学习效果本身满意吗?

不满意,不少时候精力不集中

课程结束后会继续一周至少一篇博客吗?

写的话必定是本身以为必须用博客记录。

你以为这门课老师应该继续作哪一件事情?

每周博客总结以及测试,还有扇贝打卡!

你以为这门课老师应该中止作哪一件事情?

没有

你以为这门课老师应该开始作什么新的事情?

对咱们要求作您推荐的书的笔记,可加分

 

本文连接

相关文章
相关标签/搜索