zoukankan      html  css  js  c++  java
  • 20155339 《信息安全系统设计基础》课程总结

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

    每周作业链接汇总

    第一周作业

    • 简要内容:课本第一章《计算机系统漫游》、第七章《链接》,简要的Linux下的编程,了解了程序翻译的步骤,gcc、vim等的学习。

    • 二维码

    第三周作业

    • 简要内容:学习信息的表示和处理。
    • 二维码

    第四周作业

    • 简要内容:教材第十章,学习head和tail的使用,实现myod.c。
    • 二维码

    第五周作业

    • 简要内容:掌握程序的机器级表示,练习获得代码的汇编表示。
    • 二维码

    第六周作业

    • 简要内容:了解异常及其种类,理解进程和并发的概念,学习fork、wait、waitpid、exec、pipe等函数。
    • 二维码

    第七周作业

    • 简要内容:学习处理器体系结构,在实验楼构建YIS,Y86模拟器安装和学习。
    • 二维码

    第八周作业

    • 简要内容:学习网络编程以及并发编程,实践daytime服务器分别用多进程和多线程实现成并发服务器并测试。
    • 二维码

    第九周作业

    • 简要内容:学习存储器层次结构。
    • 二维码

    第十一周作业

    • 简要内容:学习虚拟存储器。
    • 二维码

    第十三周作业

    • 简要内容:回顾这一学期所学内容,深入学习了自己觉得比较重要的并发编程,完成了课后习题。
    • 二维码

    第十四周作业

    • 简要内容:对自己薄弱的系统级I/O进行了再次深入的学习,完成了课后习题。
    • 二维码

    第十五周作业

    • 简要内容:课程总结。
    • 二维码

    实验报告链接汇总

    实验一 开发环境的熟悉

    • 简要内容:学习了交叉编译,file命令,目标机与宿主机的区分。
    • 二维码

    实验二 固件程序设计

    • 简要内容:安装MDK,JLink驱动,破解MDK,完成LED实验,完成UART发送与中断接收实验,学习国密算法,完成SM1加密实验。
    • 二维码

    实验三 实时系统

    • 简要内容:单线程和多线程实现wc功能。
    • 二维码

    实验四 外设驱动程序设计

    • 简要内容:学习资源中全课中的“hqyj.嵌入式Linux应用程序开发标准教程.pdf”中的第十一章,完成了其中的test测试。
    • 二维码

    实验五 通讯协议设计

    • 简要内容:基于Socket实现TCP通信,研究OpenSSL算法,测试对称算法中的AES,非对称算法中的RSA,Hash算法中的MD5,对实验三中的“wc服务器”通过混合密码系统进行防护。
    • 二维码

    课下补交以及加分作业的链接

    第四周课堂测试、Makefile以及myod

    • 简要内容:vi测试、gcc测试、gdb测试,静态库的测试,共享库的测试,Makefile的学习,myod的实现。
    • 二维码:

    《信息安全系统设计基础》第六周课堂实践博客

    • 简要内容:未完成课堂实践,缓冲区溢出漏洞实验,教材p97的家庭作业。
    • 二维码

    第八周课下作业

    • 简要内容:实现daytime(13)服务器,多进程实现daytime。
    • 二维码

    第十一周加分项Linux下Mypwd的实现

    • 简要内容:学习pwd命令,实现并测试mypwd。
    • 二维码

    课堂测试(ch06)

    • 简要内容:对第六章课堂测试进行了分析。
    • 二维码

    第七周加分项目 mybash的实现

    • 简要内容:学习fork,exec,wait等函数,实现mybash
      完成了伪代码,产品代码和测试代码的编写。
    • 二维码

    第十周课下作业-IPC

    • 简要内容:学习了共享内存,管道,FIFO,信号,消息队列。
    • 二维码

    代码托管

    截图 git log --pretty=format:"%h - %an, %ar : %s" 的结果
    代码量汇总提交statistics.sh的支持截图

    • 代码驱动的学习做到没有?
    • 刚开始是有的,但是有几周虚拟机坏了,代码没有git上去,一直尝试各种方法,想将原来虚拟机里的东西弄出来,一直不成功。
    • 加点代码,改点代码是理解的最好方式,参考编程的智慧,谈谈你的心得。
    • 的确,尤其对于刚刚接触到的一些新的知识点,说实话,想要一接触就能够自己编出点什么对我来说是难了些,所以加点代码,改点代码这个学习方法还是很不错的,之前从学习c语言开始就尝试了这种方法,当真正的自己思考的去改点代码,加点代码,还是很有用的。
    • 实践上有什么经验教训。
    • 实践之后有些东西还是很容易忘却的,所以多多动手,非常重要。

    关于第一周提出的为问题的评价和解答

    • 整体评价一下第1周作业中自己提出的问题是不是抓住了学习重点。
    • 有些可能把握住了写重点,有些就只是没有思考的产物。
    • 回答一下第1周作业中自己提出的问题
      1.计算机系统由那些主要的组件,各个组件之间有什么关系。
      答:计算机系统由计算机硬件和软件两部分组成。硬件包括中央处理机、存储器和外部设备等;软件是计算机的运行程序和相应的文档。硬件和软件互相依存,无严格界线,协同发展。
      2.有符号数和无符号数转化的意义是什么。
      答:因为计算机使用补码来存放数据,计算时,需要进行转化。
      3.编程时怎样有效预防缓冲区溢出攻击。
      答:编写严格的代码,禁止执行堆栈数据段,利用程序编译器的边界检查,进行指针完整性检查。
      4.Y86-64和X86-64有什么区别。
      答:与x86-64相比,Y86-64指令集的数据类型、指令和寻址方式都要少一些。它的字节级编码也比较简单,机器代码没有相应的x86-64代码紧凑。
      5.怎样优化程序。
      答:消除不必要的内容,利用处理器提供的指令级并行能力,可同时执行多条指令,使代码高效。
      6.存储器的结构如何。
      答:存储器系统是一个具有不同容量、成本和访问时间的存储设备的层次结构。
      7.静态和动态链接各有什么优劣。
      答:在静态链接程序中,所有的程序代码包好在一个可执行模块中。因为库程序静态连接到应用程序中,库的引用效率更高。静态连接增加应用程序文件的大小,如果系统同时还运行其他的应用程序时,静态连接也会增加内存中代码的大小。动态链接减少程序大小,但通常会影响程序的性能,动态链接还可以减少加载时间,减少了缺页故障的发生,在应用程序装载后,库中的程序是动态而不是静态地连接到应用程序中。但是从性能的角度看,可执行程序访问共享存储段需要“粘联代码”,当应用程序有限引用库中的过程时,包含引用程序的库中的每一个页面必须分别到入内存中。
      8.异常控制流的作用是什么呢。
      答:响应处理器状态中的某些变化,当有异常发生时,处理器会通过异常表,进入异常处理程序。
      9.虚拟内存有什么特性?
      答:虚拟内存将用户逻辑内存和物理内存分开,基于局部性原理,将程序一部分装入就开始运行,需要某部分时就将它调入内存,不需要时再调出内存。
      10.系统级I/O的局限性有哪些?
      答:系统i/o不带缓冲区,操作不方便。
      11.如何编写一个简单的客户端和服务器?
      答:学习了socket编程之后,现在可以编写一些单进程多进程的客户端和服务器了。
      12.进程线程有何区别?
      答:(1)地址空间:进程内的一个执行单元;进程至少有一个线程;它们共享进程的地址空间;而进程有自己独立的地址空间; (2)资源拥有:进程是资源分配和拥有的单位,同一个进程内的线程共享进程的资源
      (3)线程是处理器调度的基本单位,但进程不是.
      (4)二者均可并发执行.

    加分项

    • 你有什么项目被加分,谈谈你的经验
      优秀作业

    课程收获与不足

    • 自己的收获(投入,效率,效果等)
      • 虽然学习了c语言,但比起上学期新学的一门java语言来比较,投入的时间并没有变少,反而更多,这个学期学到的东西还是比较深入的,但是效率上可能还是有待提高。
    • 自己需要改进的地方
      • 需要更进一步对一些知识点进行思考学习。
    • 如果有结对,写一下你提供的帮助或接受了什么帮助,并对老师提供参考建议。
      • 本学期的结对最主要在实验的时候提高了效率,互相讨论,完成实验,平时对于教材和代码上的问题也有与结对对象进行讨论。
    • 给开学初的你和学弟学妹们的学习建议,如果重新学习这门课,怎么做才可以学的更好?
      • 无论是什么学习实践还是尤为重要的,尤其在学习一门语言,并且想把一门语言学好,那么实践就非常重要了。除此之外对于一周的学习千万不能放到临近deadline才开始着手,吸取了上个学期学习java每周手忙脚乱的教训,这个学期在这上面做了改进,总的来说算是略微得心应手了。

    问卷调查

    • 你平均每周投入到本课程多长时间?
      20小时以上。
    • 每周的学习效率有提高吗?
      相比较刚开始这种自学式的学习期间,有所提高。
    • 学习效果自己满意吗?
      一般。
    • 你觉得这门课老师应该继续做哪一件事情?
      蓝墨云班课。感觉还是比较方便获取老师发布的资源的。
    • 你觉得这门课老师应该停止做哪一件事情?
      觉得现在做的都比较有意义。
    • 你觉得这门课老师应该开始做什么新的事情?
      都很棒了。
  • 相关阅读:
    linux下配置java环境及问题
    Chrome工具使用
    Ibatis的resultMap和查询数据的对应关系
    spring mvc接收数组
    PowderDesign的使用
    Android Runtime Stats
    [原创]ASM动态修改JAVA函数之函数字节码初探
    [原创]WB Android客户端架构总结:发WB工作队列设计
    [原创]Android Studio的Instant Run(即时安装)原理分析和源码浅析
    [原创]Android系统中常用JAVA类源码浅析之HashMap
  • 原文地址:https://www.cnblogs.com/pingcpingcuo/p/8145087.html
Copyright © 2011-2022 走看看