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

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

每周作业链接汇总

  • 第1周作业
    • Linux快捷键复习,信息=位+上下文,程序的生命周期,链接
    • 二维码
  • 第3周作业
    • 程序是一个字节序列,布尔代数的运算,零扩展和符号扩展
    • 二维码
  • 第5周作业
    • 程序的机器级表示,反汇编
    • 二维码
  • 第6周作业
    • 异常及其种类,进程和并发,系统调用函数
    • 二维码
  • 第7周作业
    • Y86,ISA
    • 二维码
  • 第8周作业
    • 客户端&服务器,网络和协议,并发程序
    • 二维码
  • 第9周作业
    • 存储器,RAM和ROM,磁盘
    • 二维码
  • 第11周作业
    • 物理和虚拟寻址
    • 二维码
  • 第13周作业
    • 学习自己觉得最重要的一章,我学习的是第十章,UnixI/O和标准化I/O
    • 二维码
  • 第14周作业
    • 学习自己觉得最不会的一章,我学习的是第六章,内在的存储设备及磁盘构造
    • 二维码
  • 第15周作业
    • 课程总结
    • 二维码

实验报告链接汇总

  • 实验一 开发环境的熟悉
    • 简要内容
      • 交叉编译
      • 宿主机与目标机
      • NFS
      • 超级终端
      • file命令
    • 二维码
  • 实验二 固件程序设计
    • 简要内容
      • MDK
      • LED
      • UART
      • 国密算法
      • SM1
    • 二维码
  • 实验三 实时系统
    • 简要内容
      • wc(1)
      • 实现wc(1)服务器(端口号是你学号的后6位)和客户端
      • 客户端传一个文本文件给服务器
      • 服务器返加文本文件中的单词数。
    • 二维码
  • 实验四 外设驱动程序设计
    • 简要内容
      • 学习资源中全课中的“hqyj.嵌入式Linux应用程序开发标准教程.pdf”中的第十一章
      • 在Ubuntu完成资源中全课中的“hqyj.嵌入式Linux应用程序开发标准教程.pdf”中的第十一章的test试验
    • 二维码
  • 实验五 通讯协议设计
    • 简要内容
      • 基于Socket实现TCP通信,一人实现服务器,一人实现客户端
      • 研究OpenSSL算法,测试对称算法中的AES,非对称算法中的RSA,Hash算法中的MD5
      • 选用合适的算法,基于混合密码系统实现对TCP通信进行机密性、完整性保护。
    • 二维码

课下作业补交及加分项目链接汇总

代码托管链接和二维码:

  • 截图 git log --pretty=format:"%h - %an, %ar : %s" 的结果
  • 代码量汇总提交statistics.sh的支持截图
  • 代码驱动的学习做到没有?

没有在做完每次修改之后马上git,导致每一次git的时间间隔的都比较久。

  • 加点代码,改点代码是理解的最好方式,参考编程的智慧,谈谈你的心得

我觉得加点代码、改点代码同样也是调试的过程。在学习的过程中,我先敲书上的代码,然后在遇到问题的时候通过修改部分代码调试。

  • 实践上有什么经验教训

实践才会发现问题,要多实践。

整体评价一下第1周作业中自己提出的问题是不是抓住了学习重点

有些可能是对学习重点的疑问,有些可能只是看书过程中不理解的地方,不一定是重点。

回答一下第1周作业中自己提出的问题

  • 第1章:我们输入的命令,计算机是如何将其转换为计算机的语言?

计算机的设计者通过计算机的硬件结构赋予计算机识别二进制的功能,我们输入的命令用二进制储存,传给计算机的就是二进制的机器指令。

  • 第2章:计算机在计算的过程中产生溢出要如何保证计算的精确度?

不同进制的有限小数之间转换并不能总是精确地一一对应,只能说结果是标准的,不能说是完全准确的。

  • 第3章:即时编译的时候,如果输错了命令只能从头开始吗?有其他的办法吗?

即时编译是一种动态编译,边运行边编译,错了只能从头再来。

  • 第4章: 处理器是如何跟踪每一条命令的?又是如何分配每一条命令的空间的?

在CPU中跟踪下一条指令的地址,一般不同的IC的指令的内存空间都不同,那是由制造IC的人早就在IC内部有定义或者硬件处理了的。

  • 第5章:既然程序可以分块,那么,模块被其他程序调用修改值的时候,是不是会有专门的区域存储修改的值?

可以定义专门的区域存储修改的值。

  • 第6章:一个程序只要满足了高速缓存是不是就可以称作是高效率的程序呢?

不是。

  • 第7章:链接器在使用的时候有什么限制吗?

没有限制,有静态链接也有动态链接。

  • 第8章:fork函数与之前java中的catch有什么区别?

fork()函数用于新建子进程,子进程具有与父进程相同的用户级虚拟地址空间,包括文本/数据/bss段/堆/用户栈,子进程可以读写任意父进程打开的文件,catch是处理异常用的。

  • 第9章:虚拟内存与动态分配的malloc有冲突吗?两者是什么关系?

malloc只是申请了一块线性区,不使用物理内存页。

  • 第10章:Unix I/O与标准I/O函数之间的关系是什么?两者要如何互换?

Unix I/O每个文件都是一个m字节的序列,标准I/O函数将文件模型化为一个流,也就是一个指针。两者不能自动互换,要借助不同的函数。

  • 第11章:linux下的网络编程有什么优势?

更便捷,不需要像codeblock之类的编程软件,命令行操作快。

  • 第12章:线程化的程序中如何找到最适合最高效的函数?

系统先使用常用的,再通过不断使用进行比较。

你有什么项目被加分,谈谈你的经验

你有什么项目被扣分,谈谈你的教训

无扣分项目

课程收获与不足

  • 自己的收获(投入,效率,效果等)

学习的时候感觉比之前吃力,任务重,上课的时候经常交不上实践项目,还是应该多动手,从“做中学”。总体来说收获还是挺大的,对一些之前一知半解的知识有了新的看法,学会从不同的角度看问题,比如文件的读取、数据的存取方式等等,对自己以后设计代码也比较有帮助。

  • 自己需要改进的地方

在学习的时候,还是应该多敲代码多实践。

给开学初的你和学弟学妹们的学习建议

  • 如果重新学习这门课,怎么做才可以学的更好
  1. 认真做好学习计划
  2. 安排好学习这门课与其他课的时间
  3. 多动手,多思考

问卷调查

  • 你平均每周投入到本课程多长时间?

30小时。

  • 每周的学习效率有提高吗?

没有特别明显的提高。

  • 学习效果自己满意吗?

一般。

  • 课程结束后会继续一周至少一篇博客吗?(如果能做到,毕业时我把你的博客给你集结成一本书送给你作纪念)

会尝试坚持。

  • 你觉得这门课老师应该继续做哪一件事情?

在课堂上继续讲解课本内容,解决同学的疑问。

  • 你觉得这门课老师应该停止做哪一件事情?

没有,所有的安排都很好。

  • 你觉得这门课老师应该开始做什么新的事情?

上课的时候多讲一些具体的例子,巩固同学们的知识。

本文链接和二维码:

posted @ 2017-12-31 17:41  20155315庄艺霖  阅读(325)  评论(0编辑  收藏  举报