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

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

每周作业链接汇总

  • 第0周作业

    • 学习内容
      • 了解课程上课方式
      • 做好心理预期
    • 二维码:
  • 第1周作业

    • 学习内容
      • 了解Linux操作系统
      • 掌握核心的Linux命令:find/locate/cheat/grep/which/whereis,熟练应用“搜索”进行举一反三的学习
      • 使用Linux中用户管理命令/系统相关命令/文件目录相关命令/打包压缩相关命令/比较合并相关命令/网络相关命令等
    • 二维码:
  • 第2周作业

    • 学习内容
      • 熟悉Linux系统下的开发环境
      • 熟悉vi的基本操作
      • 熟悉gcc编译器的基本原理
      • 熟练使用gcc编译器的常用选项
      • 熟练使用gdb调试技术
      • 熟悉makefile基本原理及语法规范
      • 掌握静态库和动态库的生成与调用方法
      • 理解C程序中模块的概仿,模块分解的“高内聚,低耦合”的原则
      • 了解链接的概念
    • 二维码:
  • 第3周作业

    • 学习内容
      • 理解二进制在计算机中的重要地位
      • 掌握布尔运算在C语言中的应用
      • 理解有符号整数、无符号整数、浮点数的表示
      • 理解补码的重要性
      • 能避免C语言中溢出,数据类型转换中的陷阱和可能会导致的漏洞
      • 进一步理解“信息=位+上下文”
    • 二维码:
  • 第5周作业

    • 学习内容
      • 理解逆向的概念
      • 掌握X86汇编基础,能够阅读(反)汇编代码
      • 了解ISA(指令集体系结构)
      • 理解函数调用栈帧的概念,并能用GDB进行调试
    • 二维码:
  • 第6周作业

    • 学习内容
      • 了解ISA抽象的作用
      • 掌握ISA,并能举一反三学习其他体系结构
      • 了解流水线和实现方式
    • 二维码:
  • 第7周作业

    • 学习内容
      • 了解常见的存储技术(RAM、ROM、磁盘、固态硬盘等)
      • 理解局部性原理
      • 理解缓存思想
      • 理解局部性原理和缓存思想在存储层次结构中的应用
      • 高速缓存的原理和应用
    • 二维码:
  • 第8周作业

    • 学习内容
      • 复习 Linux常用命令
      • 复习 教材1-7章
    • 二维码:
  • 第9周作业

    • 学习内容
      • 掌握系统编程和系统调用的概念
      • 掌握系统编程错误处理的方式
      • 掌握Unix/Linux系统级I/O:open close read write seek stat
      • 掌握RIO
      • 掌握I/O重定向的方法
    • 二维码:
  • 第10周作业

    • 学习内容
      • 掌握系统编程和系统调用的概念
      • 掌握系统编程错误处理的方式
      • 掌握Unix/Linux系统级I/O:open close read write seek stat
      • 掌握RIO
      • 掌握I/O重定向的方法
    • 二维码:
  • 第11周作业

    • 学习内容
      • 了解异常及其种类
      • 理解进程和并发的概念
      • 掌握进程创建和控制的系统调用及函数使用
      • 理解数组指针、指针数组、函数指针、指针函数的区别
      • 理解信号机制:kill,alarm,signal,sigaction
      • 掌握管道和I/O重定向:pipe, dup, dup2
    • 二维码:
  • 第12周作业

    • 学习内容
      • 第九周代码检查
      • 第十周代码检查
      • 第十一周代码检查
    • 二维码:
  • 第13周作业

    • 学习内容
      • 掌握三种并发的方式:进程、线程、I/O多路复用
      • 掌握线程控制及相关系统调用
      • 掌握线程同步互斥及相关系统调用
    • 二维码:
  • 第14周作业

    • 学习内容
      • 理解虚拟存储器的概念和作用
      • 理解地址翻译的概念
      • 理解存储器映射
      • 掌握动态存储器分配的方法
      • 理解垃圾收集的概念
      • 了解C语言中与存储器有关的错误
    • 二维码:

实验报告链接汇总

  • 实验1 开发环境的熟悉

    • 简要内容
      • 熟悉Linux开发环境,学会Linux开发环境的配置和使用,使用Linux的arm编译,使用基于NFS方式的下载调试,了解嵌入式开发的基本过程。
    • 二维码:
  • 实验2 固件设计

    • 简要内容
      • 学习、读懂02_pthread、03_tty中的代码,配置实验环境完成实验指导书中的实验2、3。
    • 二维码:
  • 实验3 实时系统的移植

    • 简要内容:
      • 根据实验指导书进行实时软件的安装(ADS、GIVEIO驱动、JTAG驱动),配置实验环境并对软件进行测试,运行测试程序。
    • 二维码:
  • 实验4 外设驱动程序设计

    • 简要内容:
      • 掌握实时系统应用和驱动程序的编写,在模块化方式下进行驱动开发调试。
    • 二维码:
  • 实验5 网络通信

    • 简要内容:
      • 在arm开发板上实现一个简单web服务器的过程,在arm开发板上进行socket网络编程。
    • 二维码:

代码托管链接和二维码

  • 代码托管链接

    • 二维码:
  • 代码驱动的学习做到没有?

    • Java和Linux都是实践性的课程,代码编写到位才能充分地理解和消化知识点,Linux更注重的是代码间逻辑联系的分析,代码的数量有了量的积累,对这门课的学习才有质的飞跃。

第0周作业中提出的问题

  • 第一章 系统硬件的组成如何?

    • 运算器、控制器、存储器、输入设备、输出设备。
  • 第二章 格式在进行强制转化时会发生什么问题?

    • 出现溢出、正负值不对应(产生逆向思维)。
  • 第三章 所有程序的机器级表示都是通过汇编指令实现的吗?

    • 程序的机器级表示指的就是汇编代码。相比二进制格式的机器级代码,汇编代码可读性更好,它是机器代码的文本表示,给出了程序中的每条指令。理解汇编代码和原始C代码的联系,是理解计算机如何执行程序的关键一步。
  • 第四章 Y86如何顺序实现?

    • Y86将处理组织成阶段包括取指、译码、执行、访问、写回、更新PC
  • 第五章 提高代码性能的技术有哪些?

    • 优化编译器能力和局限性、消除循环的低效率、消除不必要的存储器引用、提高并行性、代码有良好的局部性。
  • 第六章 存储器的层次结构是怎样的?

  • 第七章 静态链接是什么?

    • 以一组可重定位目标文件和命令行参数作为输入,生成一个完全链接的可以加载和运行的可执行目标文件作为输出。
  • 第八章 故障指令包括什么?

    • 故障指令包括陷阱、故障、终止。
  • 第九章 虚拟存储器有哪些功能

    • 虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。
  • 第十章 Unix I/O和标准I/O的一般概念是什么?

    • 对于大多数应用程序而言,标准I/O更简单,是优于Unix I/O的选择。然而在网络套接字的编程中,要使用健壮的RIO函数。因为RIO函数提供了带缓冲的读操作,与无缓冲的写操作(对于套接字来说不需要),且是线程安全的。
  • 第十一章 网络编程的两种方式

    • 利用Socket接口是一种,里面又分为tcp、udp两种方式
  • 第十二章 如何使用线程提高并行性?

    • 到目前为止,在对并发的研究中,我们都假设并发线程是在单处许多现代机器具有多核处理器。并发程序通常在这样的机器上运理器系统上执行的。然而,在多个核上并行地调度这些并发线程,而不是在单个核顺序地调度,在像繁忙的Web服务器、数据库服务器和大型科学计算代码这样的应用中利用这种并行性是至关重要的。

是否抓住了重点?

  • 只有部分章节涉及到了重点知识点。

加分项目

  • 优秀作业(给出链接和二维码)

本学期被阅读最多的博客是哪一篇?有何经验?

  • 期中总结,老师在微信推送中提到了我的总结,这篇总结我除了完成老师的要求,还增加了不少我认为应该在期中总结的知识点和实践项目。

本学期与老师和同学交互最多的博客是哪篇?

  • 第7周学习总结,老师在评论里提了要求,修改后找老师验收。

待及格管理制度的优缺点

  • 待及格期间多发的博客列表
  • 优点
    • 每周查代码挺好的,只是这样老师比较辛苦。
  • 建议
    • 可以规定多发的博客内容为前面内容的复习+本周内容,可能效果会更好一些。

课程收获与不足

  • 自己的收获与不足

    • 本学期确实学到了很多知识,虽然很多都是老师用扣分逼着学的,但是学期末对这门课的感觉是总算没有浪费这么多时间,每周都有所收获。但是总体来讲,我的投入时间和精力还是不够,相比于有些同学的认真仔细我还是有些惭愧。
  • 自己需要改进的地方

    • 快一点进入状态
    • 提一点学习效率
    • 多一点时间投入

问卷调查

  • 你平均每周投入到本课程多长时间?
    • 15-20小时。
  • 每周的学习效率有提高吗?
    • 真正学习的时间里效率差不多,只是后面不再是找时间学习,而是找时间做其他事,从这个角度上讲效率算是提高了。
  • 学习效果自己满意吗?
    • 前半段不是很满意。
  • 课程结束后会继续一周至少一篇博客吗?
    • 即使写了也不会公开可见。
  • 你觉得这门课老师应该继续做哪一件事情?
    • 基本都可以继续做。
  • 你觉得这门课老师应该停止做哪一件事情?
    • 基本都可以继续做。
  • 你觉得这门课老师应该开始做什么新的事情?
    • 讲实验。
    • 互评博客。
    • 所有评分表定期上传公开。
    • 细化并公开加分机制。

一点体会

关于课程

  • 比不学可怕的是学得半懂不懂,比学得半懂不懂更可怕的是花时间让老师觉得自己学了。且不说浪费时间,学习的认真程度是可以通过周考的分数反映出来的。本学期前几周我没好好学,其他同学都是4、5分,我是2、3分,这就是对我的学习状态的体现。我认为博客的知识点可以抄,怕的是花时间抄完之后看都不看直接提交,实践也非常重要,只摘录知识点不实践也是不行的。学期中后半段我及时的调整了自己的状态,分数有所提高,这也算是对我学习情况的一种正面反馈吧。

关于效率

  • 效率是非常重要的。高效地做事能使你在各种繁杂的事物间游刃有余而不沦陷在各种事情中无法脱身,重要的是可以在处理事情的间隙得以时间思考。deadline是第一生产力,这句话不无道理,我们总是在超前的时候寻找某种心理安慰或者转移工作重心致使学习工作拖沓低效,我的解决办法是每天给自己安排时间表,可能只是大致安排但是却可以让自己对今天的工作有更清楚的了解,做的时候有种deadline即将到来的感觉,或许可以提高效率。

关于背单词

  • 娄老师有句话我记得很清楚:如果为了加分每天打卡作假,用1分钟背100个单词,其实这样是耽误了自己最宝贵的东西——时间。短期内看似浑水摸鱼颇有成效,每天用1分钟的时间糊弄老师就可以得到加分,实则是用扇贝打卡填补自己空虚的成就感,浪费了时间、精力和耐心,殊不知最后到底糊弄了谁。
  • 如果每天背单词坚持不下来可以看扇贝新闻或者听力,只是保证一定的英文输入,能坚持下来我想也是有效果的。

几点建议

改位置值为计总分

  • 目前使用的分数计算方法是位置值,即每次计算规格化成绩,这种方法有利有弊,我想如果改为计总分,考虑到每次考试的题目数量和分值不同,计算方法应为最终得分=总得分之和/试卷最高分之和,或可增加公平性亦给予更多鼓励。

实验楼

  • 实验楼就像一个知识集散中心,里面有很多优质课程,建议把实验楼的有效学习时间作为考核的一项指标。

本文链接

原文地址:https://www.cnblogs.com/zy1111/p/6220531.html