2017-2018-1 20155228 《信息安全系统设计基础》课程总结
每周作业链接汇总
第一周学习总结
简要内容
- 在linux环境中程序编译的过程逻辑
- 在linux环境中进行代码调试和程序调用
二维码
第二周课堂测试与课后作业
简要内容
- Makefile的使用
- 静态库和动态库的测试
- 编写myod实现Linux下od -tx -tc xxx的功能
二维码
第三周学习总结
简要内容
- 不同进制之间的转换
- 寻址和字节顺序
- 数据的位运算
- 有符号数与无符号数的转换
二维码
第四周学习总结
简要内容
- 用系统调用函数编写myod实现Linux下od -tx -tc xxx的功能
- 系统级I/O
- 编程myhead,mytail实现head,tail的功能
二维码
第五周学习总结
简要内容
- 指令集架构ISA
- 汇编语言指令
二维码
第六周学习总结&课下作业
简要内容
- 异常的种类
- 进程的创建和并发
- 信号机制
- 利用GDB对代码进行调试
- 通过对运算函数的测试理解数据在计算机中的存储方式
- 利用缓冲区溢出漏洞获取系统的管理员权限
二维码
第七周学习总结
简要内容
- ISA抽象的作用
- Y86-64指令和指令编码
- 流水线及其实现方式
二维码
第八周学习总结
简要内容
- 客户端-服务器编程模型
- 并发编程
二维码
第九周学习总结
简要内容
- 常见的存储技术
- 局部性原理
- 高速缓存的原理和应用
二维码
第十一周学习总结
简要内容
- 地址翻译
- 存储器映射
- 垃圾收集
二维码
第十三周学习总结
简要内容
- 进程和进程控制
- 基于进程的并发编程
二维码
第十四周学习总结
简要内容
- 虚拟内存
- 物理寻址和虚拟寻址
- 虚拟内存作为缓存的工具
- 虚拟内存作为内存管理的工具
- 虚拟内存作为内存保护的工具
- 动态存储器分配的方法
二维码
实验报告链接汇总
实验一 开发化境的熟悉
简要内容
- 参考bocsd目录中的脚本armc.sh, 分别用gcc和交叉编译器arm-none-linux-gnuenbi-gcc编译hello.c,用gcc编译的可执行文件命名linuxhello:gcc hello.c -o linuxhello; 用arm-none-linux-gnuenbi-gcc编译的命名为armhello: /usr/local/toolchain/toolchain4.3.2/bin/arm-none-linux-gnuenbi-gcc hello.c -o armhello
- 参考视频配置超级终端,用超级终端作为实验箱的显示终端,用ifconfig在超级终端中查看实验箱IP(目标机),在Ubuntu中(宿主机)中用ifconfig在命令行查看IP,用网线连接实验室台式机(或自己笔记本电脑)和ARM实验箱的网口NET1(最大屏旁边的),用ping命令保证目标机和宿主机能互相ping通
- 在超级终端中用“mkdir /arm_组员1学号_组员2学号” 建立实验箱中程序运行目录“arm_组员1学号_组员2学号”,在超级终端中运行“mount -t nfs -o nolock,宿主机IP:/home/linux/linux_组员1学号_组员2学号 /arm_组员1学号_组员2学号”通过NFS把宿主机中的“linux_组员1学号_组员2学号”,映射到目标机中的“/arm_组员1学号_组员2学号”,超级终端中运行"cd /arm_组员1学号_组员2学号",超级终端中运行"./armhello", 提交运行截图,并深入理解交叉编译
- 在目标机上重现上周“系统调用版的myod”,以静态库或共享库的方式在目标机上重现上周“系统调用版的myod”
二维码
实验二 固件程序设计
简要内容
- 安装MDK,JLink驱动,用系统管理员身分运行uVision4,破解MDK
- KEIL-MDK 中添加 Z32 SC-000 芯片库,完成LED实验和UART发送与中断接收实验
- KEIL-MDK 中添加 Z32 SC-000 芯片库,完成SM1加密实验
二维码
实验三 并发程序
简要内容
- 基于Linux Socket程序设计实现wc(1)服务器(端口号是你学号的后6位)和客户端,客户端传一个文本文件给服务器,服务器返加文本文件中的单词数
- 使用多线程实现wc服务器并使用同步互斥机制保证计数正确,上方提交代码,下方提交测试,对比单线程版本的性能,并分析原因
- 交叉编译多线程版本服务器并部署到实验箱中,PC机作客户端测试wc服务器
二维码
实验四 外设驱动程序设计
简要内容
- 学习资源中全课中的“hqyj.嵌入式Linux应用程序开发标准教程.pdf”中的第十一章
- 在Ubuntu完成资源中全课中的“hqyj.嵌入式Linux应用程序开发标准教程.pdf”中的第十一章的test试验
- 在实验箱中通过交叉编译完成test实验
二维码
实验五 通讯协议设计
简要内容
- 在Ubuntu中完成作业
- 在Ubuntu中实现对实验二中的“wc服务器”通过混合密码系统进行防护
二维码
代码托管链接和二维码
截图 git log --pretty=format:"%h - %an, %ar : %s" 的结果
代码量汇总提交statistics.sh的支持截图
代码驱动的学习做到没有?
做到了代码驱动的学习。在学习教材内容的时候就把相关的代码编译运行一遍,以便加深对教材的理解。在设计算法的时候往往需要考虑代码该如何实现,一般通过百度相关的问题看别人用的是什么实现方式,然后对别人使用的函数进行学习,主要是看接口,具体的实现在一般的情况下可以不管。在看代码的时候通过百度确定函数的作用,然后画流程图分析编写代码的人解决问题的思路。
加点代码,改点代码是理解的最好方式,参考编程的智慧,谈谈你的心得
在学习教材的过程中经常遇到看不懂的情况,把相关的代码编译运行,观察结果对理解教材有很大帮助,有时候对代码做适当修改观察结果能对某一个函数或者某一行代码有着更深刻的理解。在补做课堂实践内容的时候先看看别的同学或者别人的代码,主要是分析代码的编写思路是怎么样的。在有了清晰的思路过后,先尝试自己写代码,如果有困难的话就再看看别人具体是怎么写的,如果代码很复杂的话就直接复制粘贴过来逐行百度理解意思,然后再根据自己的需求进行修改。
实践上有什么经验教训
如果遇到编程实现某个功能完全没有思路或者在某一个问题完全不知道该怎么解决的时候,不妨看看别人是怎么做的,有时候因为个人思维的局限性,解决某个位会显得很麻烦或者说是很低效,参考别人的代码不是不劳而获而是学习别人的思考问题的方式。或者先做其他的部分,钻牛角是吃力不讨好的,经常时间用了很久但是效果却不好,所以说遇到问题一时半会确实没法解决的环境就先放一放,有时候长时间干一件事会产生很强的疲劳倦怠的感觉,所以先放一放反而能提高效率
整体评价一下第1周作业中自己提出的问题是不是抓住了学习重点
回答一下第1周作业中自己提出的问题
你有什么项目被加分,谈谈你的经验
优秀作业(给出链接和二维码)
总结(给出链接和二维码)
项目(给出链接和二维码)
教程(给出链接和二维码)
竞赛
你有什么项目被扣分,谈谈你的教训
不动手实践
迟交作业
不验收代码
课程收获与不足
自己的收获(投入,效率,效果等)
自己需要改进的地方
如果有结对,写一下你提供的帮助或接受了什么帮助,并对老师提供参考建议
给开学初的你和学弟学妹们的学习建议
如果重新学习这门课,怎么做才可以学的更好
问卷调查
你平均每周投入到本课程多长时间?
每周的学习效率有提高吗?
学习效果自己满意吗?
课程结束后会继续一周至少一篇博客吗?(如果能做到,毕业时我把你的博客给你集结成一本书送给你作纪念)
你觉得这门课老师应该继续做哪一件事情?
你觉得这门课老师应该停止做哪一件事情?
你觉得这门课老师应该开始做什么新的事情?
其他任意发挥
总结的链接和二维码
原文地址:https://www.cnblogs.com/besti20155228/p/8150853.html
时间: 2024-10-11 07:45:43