20145310《信息安全系统设计基础》课程总结
20145310《信息安全系统设计基础》课程总结
每周作业链接汇总
- 第0周《信息安全系统设计基础》学习总结
- 学习内容
- 了解课程上课方式
- 做好心理预期
- 二维码:
- 学习内容
- 《信息安全系统设计基础》第一周学习总结
- 学习内容
- 了解Linux操作系统
- 掌握核心的Linux命令:find/locate/cheat/grep/which/whereis,熟练应用“搜索”进行举一反三的学习
- 使用Linux中用户管理命令/系统相关命令/文件目录相关命令/打包压缩相关命令/比较合并相关命令/网络相关命令等
- 二维码:
- 学习内容
- 《信息安全系统设计基础》第二周学习总结
- 学习内容
- 熟悉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语言中与存储器有关的错误
- 二维码:
- 学习内容
实验报告链接汇总
- 《信息安全系统设计基础》实验一 开发环境的熟悉
- 简要内容
- 熟悉Linux开发环境,学会Linux开发环境的配置和使用,使用Linux的arm编译,使用基于NFS方式的下载调试,了解嵌入式开发的基本过程。
- 二维码:
- 简要内容
- 《信息安全系统设计基础》实验二 固件设计
- 简要内容
- 学习、读懂02_pthread、03_tty中的代码,配置实验环境完成实验指导书中的实验2、3。
- 二维码:
- 简要内容
- 《信息安全系统设计基础》实验三 实时系统的移植
- 简要内容:
- 根据实验指导书进行实时软件的安装(ADS、GIVEIO驱动、JTAG驱动),配置实验环境并对软件进行测试,运行测试程序。
- 二维码:
- 简要内容:
- 《信息安全系统设计基础》实验四 外设驱动程序设计
- 简要内容:
- 掌握实时系统应用和驱动程序的编写,在模块化方式下进行驱动开发调试。
- 二维码:
- 简要内容:
- 《信息安全系统设计基础》实验五 网络通信
- 简要内容:
- 在arm开发板上实现一个简单web服务器的过程,在arm开发板上进行socket网络编程。
- 二维码:
- 简要内容:
代码托管链接和二维码
-
代码托管链接和二维码
截图 git log --pretty=format:"%h - %an, %ar : %s" 的结果:
-
代码驱动的学习做到没有?
完成了代码驱动的学习任务,期间重装过一次虚拟机,代码就要重新git,所以要保管好虚拟机
-
加点代码,改点代码是理解的最好方式,谈谈你的心得
代码可以驱动学习,通过敲代码阅读代码是最好的学习方式
-
实践上有什么经验教训
任务一定要及时完成,否则会越拖越多,
-
第0周作业中提出的问题
-
-
第一章什么原因促使我们必须了解编译系统是如何工作的?1 优化程序性能2 理解链接时出现的错误3 避免安全漏洞
-
第二章计算机算数运算怎么引发计算机的安全漏洞?
-
P53 函数getpeername的安全漏洞里讲到,还有例如有符号数转无符号数的隐式转换,也会导致漏洞。
-
第三章机器级代码是如何转换的?
-
例如汇编C语言的代码用:gcc -01 -S xxx.c汇编并编译:gcc -01 -c xxx.c
-
第四章处理器的体系结构
-
各种状态元素、指令集和它们的编码、一组编程规范和异常事件处理
-
第五章怎样优化程序?需要注意哪些方面?
-
消除循环的低效率;减少过程调用和消除不必要的存储器引用,在第五章里有详细说明。
-
第六章存储器的层次结构是怎样的?
-
第七章 静态链接是什么?
-
以一组可重定位目标文件和命令行参数作为输入,生成一个完全链接的可以加载和运行的可执行目标文件作为输出。
-
第八章 故障指令包括什么?
-
故障指令包括陷阱、故障、终止。
-
第九章 虚拟存储器有哪些功能
-
虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。
-
第十章 Unix I/O和标准I/O的一般概念是什么?
-
对于大多数应用程序而言,标准I/O更简单,是优于Unix I/O的选择。然而在网络套接字的编程中,要使用健壮的RIO函数。因为RIO函数提供了带缓冲的读操作,与无缓冲的写操作(对于套接字来说不需要),且是线程安全的。
-
第十一章 网络编程的两种方式
-
利用Socket接口是一种,里面又分为tcp、udp两种方式
-
第十二章 如何使用线程提高并行性?
-
到目前为止,在对并发的研究中,我们都假设并发线程是在单处许多现代机器具有多核处理器。并发程序通常在这样的机器上运理器系统上执行的。然而,在多个核上并行地调度这些并发线程,而不是在单个核顺序地调度,在像繁忙的Web服务器、数据库服务器和大型科学计算代码这样的应用中利用这种并行性是至关重要的。
加分项目
待及格管理制度的优缺点
- 优点
- 能够让不及格的同学投入更多时间学习,尽早及格
- 建议
- 可以减少扣分
课程收获与不足
收获还是很多的,从刚开始接触linux到慢慢熟悉,熟练的使用各种命令行,以及课本上的知识。不足就是学习态度不够端正,中间有几次缺考才开始端正学习态度,最后勉强把分数赶上。如果一开始学习态度认真的话会好很多。
给学弟学妹的学习建议
多动手,多理解代码敲代码才能更好的理解知识。不要欠债,前面如果太松的话后面是补不回来的,所以一定要端正学习态度,前紧后松。注意作息时间,不要每次都最后时刻发学习博客,多增加平常学习的时间。
问卷调查
你平均每周投入到本课程多长时间?
不到20个小时
每周的学习效率有提高吗?
到最后学习效率高了很多
学习效果自己满意吗?
不是很满意
课程结束后会继续一周至少一篇博客吗?
可能会但不会这么频繁
你觉得这门课老师应该继续做哪一件事情?
每周的测试,上课疑难总结和各种加分项目
你觉得这门课老师应该停止做哪一件事情?
没有
你觉得这门课老师应该开始做什么新的事情?
可以让我们做一下学习笔记