2017-2018-1 20155228 《信息安全系统设计基础》课程总结

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实验

二维码

实验五 通讯协议设计

简要内容

二维码

代码托管链接和二维码

截图 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

2017-2018-1 20155228 《信息安全系统设计基础》课程总结的相关文章

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

#20145322 <信息安全系统设计基础>课程总结 每周作业链接汇总 第零周 预习课程知识,安装环境 第一周 Linux 目录结构及一些基本的linux操作和命令 第二周 学习内容 熟悉Linux系统下的开发环境 熟悉vi的基本操作 熟悉gcc编译器的基本原理 熟练使用gcc编译器的常用选项 熟练使用gdb调试技术 熟悉makefile基本原理及语法规范 掌握静态库和动态库的生成与调用方法 理解C程序中模块的概仿,模块分解的"高内聚,低耦合"的原则 了解链接的概念 第三周

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

20145317<信息安全系统设计基础>课程总结 每周作业链接汇总 第0周作业:课本问题,安装虚拟机   http://www.cnblogs.com/5317p/p/5866828.html 第一周作业:LINUX中常用指令的实践 http://www.cnblogs.com/5317p/p/5882782.html 第二周作业:vim/gcc/gdb/makefile的使用 http://www.cnblogs.com/5317p/p/5907116.html 第三周作业:第二章<信

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

# <信息安全系统设计基础>课程总结 第0周总结 简要内容: 使用虚拟机VirtualBox成功安装Linux系统,预习了Linux基础入门,阅读娄老师推荐的博客感想. 二维码: 第1周总结 简要内容: 介绍了Linux操作系统,ubuntu下常用代码,核心的Linux命令,使用Linux中用户管理命令/系统相关命令/文件目录相关命令/打包压缩相关命令/比较合并相关命令/网络相关命令等. 二维码: 第2周总结 简要内容: 介绍了了Linux系统下的开发环境.vi的基本操作.gcc编译器的基本原

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

20145207<信息安全系统设计基础>课程总结 链接汇总 第0周博客认识Linux系统,安装虚拟机,课本概述 第1周博客Linux系统基础命令,vim使用 第2周博客vim编辑器,GCC编译器的使用,gdb调试程序工具,Makefile自动化编译 第3周博客教材:第二章<信息的表示和处理> 第4周博客 第5周博客教材:第三章<程序的机器级表示>,理解函数调用栈帧的概念,并能用GDB进行调试 第6周博客教材:第四章<处理器体系结构> 第7周博客教材:第六章&

20145239杜文超 《信息安全系统设计基础》课程总结

20145239杜文超 <信息安全系统设计基础>课程总结 每周作业链接汇总 第0周作业: 简要内容:安装VirtualBox,安装Ubuntu,预习Linux基础入门. 二维码: 第一周作业: 简要内容:了解Linux操作系统,掌握核心的linux命令. 二维码: 第二周作业: 简要内容:熟悉Linux系统的开发环境.vi的基本操作.gcc编译器的基本原理.gcc编译器的常用选项.如何使用gdb调试技术. 二维码: 第三周作业: 简要内容:理解"信息=位+上下文". 二维码

2017-2018-1 20155228 《信息安全系统设计基础》第九周学习总结

2017-2018-1 20155228 <信息安全系统设计基础>第九周学习总结 教材学习内容总结 常见的存储技术 RAM 随机访问存储器(Random-Access Memory, RAM)分为两类:静态的和动态的.静态 RAM(SRAM)比动态RAM(DRAM)更快,但也贵得多.SRAM用来作为高速缓存存储 器,既可以在CPU芯片上,也可以在片下.DRAM用来作为主存以及图形系统的帧缓冲 区.典型地,一个桌面系统的SRAM不会超过几兆字节,但是DRAM却有几百或几千兆 字节. SRAM将每

2017-2018-1 20155228 《信息安全系统设计基础》第十一周学习总结

2017-2018-1 20155228 <信息安全系统设计基础>第十一周学习总结 教材学习内容总结 虚拟存储器的概念和作用 为了更加有效地管理内存并且少出错,现代系统提供了一种对主存的抽象概念,叫做虚拟内存(VM).虚拟内存是硬件异常.硬件地址翻译.主存.磁盘文件和内核软件的完美交互,它为每个进程提供了一个大的.一致的和私有的地址空间.通过一个很清晰的机制,虚拟内存提供了三个重要的能力: 它将主存看成是一个存储在磁盘上的地址空间的高速缓存,在主存中只保存活动区域,并根据需要在磁盘和主存之间来

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

20155227 <信息安全系统设计基础>课程总结 每周作业链接汇总 第一周作业 简要内容:学习第一章和第七章.初步了解各种指令来通过原始文件得到二进制文件.文本文件.以及可执行文件. 二维码: 第三周作业 简要内容:学习第二章.了解到三种数字:无符号数.有符号数.浮点数 二维码: 第五周作业 简要内容:学习第三章.复习了汇编相关知识. 二维码: 第七周作业 简要内容:学习第四章.理解了Y86指令集体系结构 二维码: 第八周作业 简要内容:学习第十一章,第十二章.socket编程和并发编程 二

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

20155218 <信息安全系统设计基础>课程总结 一.(按顺序)每周作业链接汇总 第一周作业: 第三周作业: 第四周作业: 第五周作业: 第七周作业: 第八周作业: 第九周作业: 第十一周作业: 第十三周作业: 第十四周作业: 二.实验报告链接汇总 实验一:开发环境的熟悉 实验二:固件程序设计 实验三 实时系统 实验四 外设驱动程序设计 实验五 通讯协议设计 代码托管链接和二维码: 代码量: 代码驱动的学习做到没有? 这学期的学习,我尽力去实践代码驱动,遇到问题和疑惑尽量通过自己敲代码和调试