20155301《信息安全系统设计基础》课程总结
作业链接及二维码
第一周作业:第一章、第七章,计算机系统漫游
第二周作业:复习C语言中关于二进制文件和文本文件读写的相关内容,模仿od完成myod
第三周作业:第二章《信息的表示和处理》
第四周作业:掌握两个重要命令: man -k key1 | grep key2| grep 2 : 根据关键字检索系统调用 grep -nr XXX /usr/include :查找宏定义,类型定义
第五周作业:第三章《程序的机器级表示》
第六周作业:第八章《异常控制流》,第十章《系统级I/O》
第七周作业:第四章《处理器体系结构》
第八周作业:第十一章《网络编程》,第十二章《并发编程》
第九周作业:第六章《存储器层次结构》
- 第十周作业:无
第十一周作业:第九章《虚拟存储器》
- 第十二作业:无
第十三周作业:找出全书你认为最重要的一章,深入重新学习一下
第十四周作业:找出全书你认为学得最差的一章,深入重新学习一下
实验报告链接汇总
- 实验一 开发环境的熟悉:
1.交叉编译环境
2.目标机宿主机联通
3.目标机运行程序
- 实验二 固件程序设计:
1.MDK
2.LED
3.UART
4.国密算法
- 实验三 实时系统:
1.并发程序-1:客户端传一个文本文件给服务器
2.并发程序-2:用多线程实现wc服务器并使用同步互斥机制保证计数正确
- 实验四 外设驱动程序设计:
1.学习资源中全课中的“hqyj.嵌入式Linux应用程序开发标准教程.pdf”中的第十一章
2.在Ubuntu完成资源中全课中的“hqyj.嵌入式Linux应用程序开发标准教程.pdf”中的第十一章的test试验
- 实验五 通讯协议设计:
1.研究OpenSSL算法,测试对称算法中的AES,非对称算法中的RSA,Hash算法中的MD5
2.在Ubuntu中实现对实验二中的“wc服务器”通过混合密码系统进行防护
代码托管链接和二维码:
- 截图 git log --pretty=format:"%h - %an, %ar : %s" 的结果,代码量汇总提交statistics.sh的支持截图
-代码驱动的学习做到没有?
通过几次实验以及利用的工具,学到了一些代码驱动的知识。
- 加点代码,改点代码是理解的最好方式,参考编程的智慧,谈谈你的心得
加代码和改代码都是在已经理解了程序的基础上进行的,所以我们必须先要读懂程序,才可以进行下一步的添加或者改进。
- 实践上有什么经验教训
需要先理解和读懂代码的意思,再进行实验,否则步骤会混乱非常消耗时间。
- 整体评价一下第1周作业中自己提出的问题是不是抓住了学习重点
第一章中提出的问题基本上没有抓住学习重点。
- 回答一下第1周作业中自己提出的问题
第一章:对于多线程问题:当一个处理器等待输入设备响应的时候,多线程会转向执行另一个程序命令,假如任务A需花费5分钟,任务B需话费10分钟,对于任务A等待输入设备指令时跳去执行任务B,任务A和任务B在我的理解里不能同时进行,但是所花费的时间为什么时10分钟,是有多个处理器吗,我理解的是15分钟。
答:单处理器应该是
第二章:怎么样让负数等于正数?
答:在负数x后加上U,可以使其转换为(2^w+x)
第三章:为什么C语言只有一个条件语句;而汇编中有两个分支呢?
答:第一个条件分支是&&表达式实现的一部分;如果对非空的测试失败,代码会跳过测试。
第四章:Y-86和X-86的区别
答:区别就在于,有的时候Y86需要两条指令来达到X86一条指令就可以达成的目的
第五章:程序性能的评估方面,如何评估
答:评估程序的效率,循环的次数,过程调用的次数,并且尽力减少不必要的内存调用。
第六章:存储器的结构是什么
第七章:如何构造动态链接库,动态链接库和静态链接库的区别是什么
答:动态链接库相比静态链接库相比,优势是:1 共享内存 2 独立升级组件(插件)3可以显示动态加载(dllopen)。劣势:是损失一点点效率(计算符号地址)
第八章:如何理解并发流,怎么应用
答:在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行。其中两种并发关系分别是同步和互斥
第九章:虚拟内存的作用是什么,和实际的内存区别在哪里
答:虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。
第十章:如何读取目录内容
答:通过readdir系列函数来读取目录内容
第十一章:如何构建Web服务器
答:利用Socket、connect、bind、listen、accept函数构建服务器与客户端连接。
第十二章:如何在客户端-服务器中加入并发的结构
答:主线程通过调用pthread_create函数创建一个新的对等线程。当对pthread_create的调用返回时,主线程和新创建的对等线程同时运行,并且tid包含新线程的ID。
你有什么项目被加分,谈谈你的经验
优秀作业(给出链接和二维码)
总结(给出链接和二维码)
项目(给出链接和二维码)
教程(给出链接和二维码)
竞赛
...
你有什么项目被扣分,谈谈你的教训
不动手实践
迟交作业
不验收代码
...
课程收获与不足
- 自己的收获(投入,效率,效果等)
对于计算机系统有了更全面更细致的了解,并且在代码方面有了更深的理解。
- 自己需要改进的地方
希望自己可能更加精益求精一些,不要满足于完成了一些基础知识。
- 如果有结对,写一下你提供的帮助或接受了什么帮助,并对老师提供参考建议
结对的过程主要是课后习题的讨论,结对同伴学习能力很强,对于题目的理解更加深刻,在相互交流之后学习到了更好的方法。
- 给开学初的你和学弟学妹们的学习建议
还是要理论和实践结合,不要满足于基本的知识。
- 如果重新学习这门课,怎么做才可以学的更好
多实践一些代码吧。
问卷调查
- 你平均每周投入到本课程多长时间?
大概有10个小时吧
- 每周的学习效率有提高吗?
学习效率提高不明显。
- 学习效果自己满意吗?
还可以,不是很好,还有进步的空间。
- 课程结束后会继续一周至少一篇博客吗?(如果能做到,毕业时我把你的博客给你集结成一本书送给你作纪念)
大概不会
- 你觉得这门课老师应该继续做哪一件事情?
课外拓展方面应该继续。
-你觉得这门课老师应该停止做哪一件事情?
我觉得问题还是在讲的不是很有条理吧,感觉零零散散的全靠课上听讲没有办法把知识整合到一起。
- 你觉得这门课老师应该开始做什么新的事情?
做一个讲课的流程图与课本结合。
其他任意发挥
link