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

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

每周做业连接汇总

第一周

简要内容

  • 第一章:
    计算机系统由硬件和系统软件组成,二者共同运做以运行应用程序。内部信息被表示为一组组的位,位依据上下文有不一样的解释方式。
    程序被其余翻译程序翻译成不一样形式,开始是被翻译成ASCII文本,而后被翻译成计算机可执行的二进制文本。若是是用Code::Blocks等编译软件编译,则在编译完成后自动生成可执行文本;如果用vim,则必须手动完成翻译工做。
    处理器经过读取并解释二进制指令来运行程序。
  • 第七章:
    连接能够在编译时依靠静态编译器完成,也能够在加载时靠动态连接器完成。连接器的目标文件只有二进制文件一种。
    连接器主要任务有二:符号解析和从新定义。
    GCC编译器在工做过程当中调用获得的连接器为静态连接器,其余编译驱动程序亦是如此。
    与编译位置无关的代码的共享库能够加载到任何地方,亦能够在运行中被多个进程共享。html

    二维码

第三周

简要内容

计算机将信息编码为比特,一般组织成字节序列。
有不一样的编码方式来表示整数、实数和字符串。
现代计算机绝大多数是64位字长机,便是本计算机的虚拟地址空间为16EB,大约是1.8410^19字节。然而个人笔记本电脑是32位字长机,其虚拟地址空间只有4GB,刚超过410^9字节。
计算机内一个字节八个比特,值域00000000~11111111。用十进制表示为0~255,十六进制是00~FF,或是0x00~0xFF。
计算机用16位ASCII值表示全部字符。
布尔代数用于逻辑计算,布尔数只有0和1两个数,结果也只有0和1两种,逻辑运算符只有~(非)、&(与)、|(或)、^(非或)。
二进制小数表示方法是依据小数点后几位来表示对应的2的负几回方,如二进制小数0.001表示十进制小数0.125,不过这种表示方法只能在表示x/2^n时能十分精确,形如十分之一这类分母不是2的几回方的小数,计算机只能经过二进制小数来近似表示。这类小数在不一样的计算机容易引发没必要要的偏差。
IEEE 754标准是由美国电气电子工程师学会(IEEE)计算机学会旗下的微处理器标准委员会(Microprocessor Standards Committee, MSC)发布。java

二维码

第四周

简要内容

  • 第十章
    Linux提供了一些基于UnixI/O模型的系统级函数,它们容许应用程序打开、关闭、读写文件,提取文件元数据,以及执行I/O重定向。
    使用读写函数时容易出现不足值,处理不足值的方法有两种:要么本身编写程序时就预先对这些不足值进行处理,要么应用RIO包,这个包反复读写直到传送完全部请求数据都读取完毕,而后自动处理不足值。
    标准I/O库是基于UnixI/O库实现的,并提供一组强大的高级I/O例程。标准I/O比UnixI/O更简洁,可是对于网络应用程序,Unix的更适合。
  • 错误处理
    附录内有三种错误风格报告函数:void unix_error(char msg)、void posix_error(int code,char msg)、* void gai_error(int code,char msg)。这些错误报告函数对应的风格就是Unix的错误、Posix的错误及GAI错误。还有一个void add_error(char msg)*,这个只是一个用来反馈错误的函数,并非报告错误的函数。git

    二维码

第五周

简要内容

  • 逆向工程
    逆向工程则是先获取已有的成品,而后经过反向分析推导出完成该产品所需的大部分数据。在计算机编程当中,使用逆向工程一般指的是对已有软件进行反汇编(反向开大日代码……),经过汇编代码来获得目标软件的设计思路及实现方式。
  • 指令集体系结构
    ISA(指令集体系结构)包含如下四种: 复杂指令集运算(Complex Instruction Set Computing,CISC);精简指令集运算(Reduced Instruction Set Computing,RISC) ;显式并行指令集运算(Explicitly Parallel Instruction Computing,EPIC);超长指令字指令集运算(VLIW)。算法

    二维码

第七周

简要内容

  • ISA(指令集体系结构)抽象的做用
  • ISA
  • 流水线
  • Y86-64指令
  • HCL语言
  • Y86-64执行模式编程

    二维码

第八周

简要内容

  • 进程
  • I/O多路复用
  • 线程vim

    二维码

第九周

简要内容

  • 常见的存储技术
  • 局部性
  • 缓存
  • 局部性原理和缓存思想在存储层次结构中的应用缓存

    二维码

第十一周

简要内容

  • 虚拟存储器
  • 地址翻译
  • 存储器映射
  • 动态存储器分配的方法
  • 分配算法
  • 垃圾收集
  • C语言中与存储器有关的错误安全

    二维码

第十三周

简要内容

对我认为重要的第十二章从新学习过一遍,并把我认为的重点写上去。服务器

二维码

第十四周

简要内容

我第八章学习得不行,便从新学习一遍,一并将错过或误解的内容附上去。网络

二维码

实验报告连接汇总

实验一——开发环境的熟悉

  • 交叉编译环境
  • 目标机宿主机联通
  • 目标机运行程序
  • 目标机模块分解
  • 清理工做

    二维码

实验二——固件程序设计

  • MDK
  • LED
  • UART
  • SM2,SM3,SM4
    -SM1加密解密实验

    二维码

实验三——实时系统

  • 实验一
    学习使用Linux命令wc(1)
    基于Linux Socket程序设计实现wc(1)服务器(端口号是你学号的后6位)和客户端
  • 实验二
    使用多线程实现wc服务器并使用同步互斥机制保证计数正确

    二维码

实验四—— 外设驱动程序设计

  • 任务一
    学习资源中全课中的“hqyj.嵌入式Linux应用程序开发标准教程.pdf”中的第十一章
    提交康奈尔笔记的照片
  • 任务二
    在Ubuntu完成资源中全课中的“hqyj.嵌入式Linux应用程序开发标准教程.pdf”中的第十一章的test试验
    提交编译,加载模块,卸载模块,测试运行的截图(要多张,全屏,体现学号信息)

    二维码

实验五——通信协议设计

  • 任务一
    在Ubuntu中完成 http://www.cnblogs.com/rocedu/p/5087623.html 中的做业。
    与他人协做,测试同一个OpenSSL包的加密算法。测试加密算法:AES、RSA、MD5。通过测试各算法的确有效。
    通讯服务器和客户端须要相互确认。因此基于此,加密通讯只能使用公钥加密算法RSA,进行通讯以前先生成密钥文件。
  • 任务二
    在Ubuntu中实现对实验三中的“wc服务器”经过混合密码系统进行防御。

    二维码

代码托管

托管二维码

代码提交日志

代码总量

代码驱动的学习作到没有?

答:在部分上作到了。只是在对多线程多进程上,还有尝试理解不占用内存的编码方式上用过,其余状况就只是看着每行代码去对着课本学习。

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

从原有代码当中添加一些本身新学习的代码,是一个颇有效的学习方法,至少我不用考虑怎么从新搭建一个大框架以学习一小片的代码。目前我还不能搭建出成百上千行的大规模代码,最多就是东拼西凑,可能不能很好地实现“高内聚,低耦合”的编码理念。

实践上有什么经验教训

也许我应该在每个代码里面添加计时功能,有时候我并不知道哪类代码结构更快出结果。

总体评价一下第1周做业中本身提出的问题是否是抓住了学习重点

有些有,有些没有。我并无作到通读每一章,基本上除了第一和第七章是彻底读过学过而没有疑惑,其余章节就是看了每章最后的总结就提问了。

回答一下第1周做业中本身提出的问题

  • 第二章:计算机有32位与64位之分,分别何在?两种计算机所存数据相互交换,会出现什么状况?
    32位和64位指的是计算机最大的无符号整型数据的最大值,32位指的是最大无符号整型数为2^32-1,64位则是2^64-1。64位机的数据传输给32位机,若是不提早作好准备的话有可能32位机会出现溢出;64位得到32位机的数据则不会出现溢出。
  • 第三章:条件控制来实现条件分支和条件传送来实现条件分支有何实质性区别?
    条件控制方式所消耗的内存资源比条件传送的要多,实现起来,条件控制比条件传送要低效的多。
  • 第四章:到底什么系统会用到Y86-64代码?
    就目前来看,Y86-64代码只是一个对X86-64代码的翻译。Y86-64代码比X86-64代码要更容易被人读懂。
  • 第五章:怎么样的代码是没必要要的引用内存?
    每次循环都是将内存中取值再将递增的值传回内存的代码就是没必要要的引用内存。
  • 第六章:“高速缓存存储器”与“内存”有何相关?
    高速缓存存储器通常能够说就是内存。
  • 第八章:有何种异常种类能够是经过代码故意实现的?
    除了由于设备引发的异常以外,绝大部分异常均可以经过代码故意引发。
  • 第九章:Linux虚拟机怎么调用我宿主机的i7核?
    Linux是把全部程序都当作文件对待,所以Linux虚拟机想用个人i7核,只用将i7核的相关信息转换成文件,Linux就可调用。
  • 第十章:Unix的I/O和Java的I/O有何区别?
    Unix的I/O使用起来不须要太多的准备工做,而Java的须要。
  • 第十一章:客户端和服务器怎么相互链接?
    不管是基于TCP协议仍是UDP协议,客户端和服务器的链接须要传输彼此的IP地址。
  • 第十二章:目录所说起的三种并发模式,其优势和缺点有什么?
    进程并发实现起来最简单,可是不能及时将内存资源腾出给新的进程。
    I/O多路复用能够很好的利用系统资源,可是代码复杂度随预计访问量的上升而上升。
    线程并发有上二者的优势,可是必须依靠信号量来解决竞争冲突。

    课程收获与不足

  • 收获:
    学习到一个开放式操做系统的运行结构和体系,学会使用不一样的方法看待问题。
  • 不足:
    永远是超过计划用时地学习,有时还将学习时间调的太高,致使没有给其余科目留下时间来完成。

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

    都%¥#给我滚去早点看书、早点学习,别成天处处晃悠!

    问卷调查

    你平均每周投入到本课程多长时间?
    8.2小时。
  • 每周的学习效率有提升吗?
    感受很像正弦曲线。
  • 学习效果本身满意吗?
    确定不满意!无用功作得太多。
  • 课程结束后会继续一周至少一篇博客吗?(若是能作到,毕业时我把你的博客给你集结成一本书送给你做记念)
    能作到一周一/多篇,可是内容就可能不多涉及本课程了,有可能还不必定是学习的内容,到时候就不用留做记念了,内容太乱我本身都看得心烦。
  • 你以为这门课老师应该继续作哪一件事情?
    叫学生经过写博客记录本身的学习过程。
  • 你以为这门课老师应该中止作哪一件事情?
    之后实验报告博客叫每一个同窗都写,实验还分不分组无所谓,可是不能说谁苦劳多谁的搭档来写报告,这不是一个好主意。
  • 你以为这门课老师应该开始作什么新的事情? 玩玩在线视频教学,在没开学的时候?

相关文章
相关标签/搜索