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

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

每周作业链接汇总

第0周作业

了解课程上课方式、做好心理预期、快速翻阅一下课本、使用虚拟机VirtualBox安装Linux系统,安装Ubuntu或/各Federa、预习Linux基础入门

20145321 《信息安全系统设计基础》课程总结_第1张图片

第1周作业

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

20145321 《信息安全系统设计基础》课程总结_第2张图片

第2周作业

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

20145321 《信息安全系统设计基础》课程总结_第3张图片

第3周作业

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

20145321 《信息安全系统设计基础》课程总结_第4张图片

第5周作业

理解逆向的概念、掌握X86汇编基础,能够阅读(反)汇编代码、了解ISA(指令集体系结构)、理解函数调用栈帧的概念,并能用GDB进行调试

20145321 《信息安全系统设计基础》课程总结_第5张图片

第6周作业

了解ISA抽象的作用、掌握ISA,并能举一反三学习其他体系结构、了解流水线和实现方式

http://www.cnblogs.com/5321z/p/5982600.html

20145321 《信息安全系统设计基础》课程总结_第6张图片

http://www.cnblogs.com/5321z/p/5991035.html

20145321 《信息安全系统设计基础》课程总结_第7张图片

第7周作业

了解常见的存储技术(RAM、ROM、磁盘、固态硬盘等)、理解局部性原理、理解缓存思想、理解局部性原理和缓存思想在存储层次结构中的应用、高速缓存的原理和应用

20145321 《信息安全系统设计基础》课程总结_第8张图片

期中总结

复习 Linux常用命令、复习 教材1-7章

20145321 《信息安全系统设计基础》课程总结_第9张图片

第9周作业

掌握系统编程和系统调用的概念、掌握系统编程错误处理的方式、掌握Unix/Linux系统级I/O:open close read write seek stat、掌握RIO、掌握I/O重定向的方法

20145321 《信息安全系统设计基础》课程总结_第10张图片

第10周作业

掌握系统编程和系统调用的概念、掌握系统编程错误处理的方式、掌握Unix/Linux系统级I/O:open close read write seek stat、掌握RIO、掌握I/O重定向的方法

20145321 《信息安全系统设计基础》课程总结_第11张图片

第11周作业

了解异常及其种类、理解进程和并发的概念、掌握进程创建和控制的系统调用及函数使用:fork,exec,wait,waitpid,exit,getpid,getppid等,理解数组指针、指针数组、函数指针、指针函数的区别、理解信号机制:kill,alarm,signal,sigaction、掌握管道和I/O重定向:pipe, dup, dup2

20145321 《信息安全系统设计基础》课程总结_第12张图片

第12周作业

第九周代码检查、第十周代码检查、第十一周代码检查、项目

20145321 《信息安全系统设计基础》课程总结_第13张图片

第13周作业

掌握三种并发的方式:进程、线程、I/O多路复用、掌握线程控制及相关系统调用、掌握线程同步互斥及相关系统调用

20145321 《信息安全系统设计基础》课程总结_第14张图片

第14周作业

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

20145321 《信息安全系统设计基础》课程总结_第15张图片

实验报告链接汇总

实验一 开发环境的熟悉

熟悉linux开发环境;学会基于 S3C2410 的 linux 开发环境的配置和使用;使用linux的armv4l-unknown-linux-gcc编译;使用基于NFS方式的下载调试,了解嵌入式开发的基本过程;正确使用连接线等实验仪器,并注意保护实验箱。

20145321 《信息安全系统设计基础》课程总结_第16张图片

实验二 固件设计

掌握程序的烧写方法;能够实现Bootloader;实现密码学中常见算法的固化

20145321 《信息安全系统设计基础》课程总结_第17张图片

实验三 实时系统的移植

掌握uC/OSII(uCLinux…)的移植过程;掌握C语言,汇编的混合编程。

20145321 《信息安全系统设计基础》课程总结_第18张图片

实验四 驱动程序设计

掌握实时系统应用和驱动程序的编写、选择某个接口电路

20145321 《信息安全系统设计基础》课程总结_第19张图片

实验五 网络通信

掌握在ARM开发板实现一个简单的WEB服务器的过程。学习在ARM开发板上的SOCKET网络编程。学习Linux下的signal()函数的使用。

20145321 《信息安全系统设计基础》课程总结_第20张图片

代码托管

代码拖管链接

20145321 《信息安全系统设计基础》课程总结_第21张图片

git log --pretty=format:"%h - %an, %ar : %s" 截图

20145321 《信息安全系统设计基础》课程总结_第22张图片

代码量汇总

20145321 《信息安全系统设计基础》课程总结_第23张图片

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

  • 虽然没有将代码驱动的学习做到最好,但是学到了很多上学期没做到的东西,比如tree的建立、commit的方法等。

加点代码,改点代码是理解的最好方式,谈谈你的心得

  • 增加、修改代码能让我们深入理解代码的原理和它是怎样运作的,如果仅仅是照着原本的代码敲一遍然后运行,其实对学习没多大用处,不能将其掌握。

实践上有什么经验教训

  • 善用搜索引擎,很多问题能解决,还有不要因为某些代码调不通就放弃了

回答一下第0周作业中自己提出的总题

第一章 系统硬件由什么组成?

  • 系统的硬件由总线、I/O设备、主存、处理器组成。

第二章 有符号数与无符号数之间怎么转换?

  • 无符号数转换为有符号数 看无符号数的最高位是否为1,如果不为1(即为0),则有符号数就直接等于无符号数;如果无符号数的最高位为1,则将无符号数取补码,得到的数就是有符号数。

    有符号数转换为无符号数 看有符号数的最高位是否为1,如果不为1(即为0),则无符号数就直接等于有符号数;如果有符号数的最高位为1,则将有符号数取补码,得到的数就是无符号数。

第三章 C程序与机器代码如何转换的?

  • 预处理:gcc –E hello.c –o hello.i

    编 译:gcc –S hello.i –o hello.s

    汇 编:gcc –c hello.s –o hello.o

    链 接:gcc hello.o –o hello 

第四章 处理器体系结构是?

  • 一个处理器支持的指令和指令的字节级编码称为它的指令集体系结构。

第五章 程序性能如何优化?

  • 利用好局限性,消除循环的低效率,减少过程调用,消除不必要的存储器引用等。

第六章 存储器的层次结构是怎样的?

20145321 《信息安全系统设计基础》课程总结_第24张图片

 

第七章 链接如何做到重定位?

  • 一旦链接器完成了符号解析这一步,它就把代码中的每个符号引用和确定的一个符号定义联系起来。这时可开始重定位,将合并输入模块,并为每个符号分配运行时地址。重定位由两步组成:重定位节和符号定义;重定位节中的符号引用。

第八章 异常有哪些?

20145321 《信息安全系统设计基础》课程总结_第25张图片

第九章 虚拟存储器有什么用?

  • 虚拟存储器是硬件异常、硬件地址翻译、主存、磁盘文件和内核软件的完美交互,它为每个进程提供了一个大的、一致的和私有的地址空间。通过一个很清晰的机制,虚拟存储器提供了三个重要的能力:

    1. 它将主存看成是一个存储在磁盘上的地址空间同,主存中只保存活动区域,并根据需要在磁盘和主存之间来回传送数据,通过这种方式,它高效地使用了主存。
    2. 它为每个进程提供了一致的地址空间,从而简化了存储器管理。
    3. 它保护了每个进程的地址空间不被其他进程破坏。

第十章 Unix I/O是什么?

  • 输入/输出(I/O)是在主存和外部设备之间拷贝数据的过程。

第十一章 套接字接口是什么,有什么用?

  • 套接字接口是一组函数,它们和Unix I/O函数结合起来,用以创建网络应用。

第十二章 不同的并发有什么区别?

  • 现代操作系统提供了三种基本的构造并发程序的方法:

    -进程。每个逻辑控制流都是一个进程,由内核来调度和维护。因为进程 有独立的虚拟地址空间,想要和其他流通信,控制流必须使用某种显式的进程间通信(IPC)机制。

    -I/O 多路复用。在这种形式的并发编程中,应用程序在一个进程的上下文中显式地调度它们自己的逻辑流。逻辑流被模型化为状态机,数据到达文件描述符后,主程序显式地从一个状态转换到另一个状态。因为程序是一个单独的进程,所以所有的流都共享同一个地址空间。

    -线程。线程是运行在一个单一进程上下文中的逻辑流,由内核进行调度。是其他两种方式的混合体,像进程流一样由内核进行调度,而像I/O 多路复用流一样共享同一个虚拟地址空间

你有什么项目被加/扣分,谈谈你的经验/教训

  • 没有什么加分项目,只有一篇优秀博客……其实老师给的加分项目有很多,如果当时做上那么几个也不会在及格边缘了。还有像扇贝打卡,这个不仅有加分,还能督促我们每天背单词,对四六级也很有帮助,可惜我没能坚持下去。
  • 没有回复老师的评论被扣了几分。还是要积极回复老师的评论,不仅能让老师了解学习情况,也能认识到自己学习中的不足。

待及格管理制度的优缺点

待及格期间多发的博客列表

http://www.cnblogs.com/5321z/p/5958027.html

20145321 《信息安全系统设计基础》课程总结_第26张图片

http://www.cnblogs.com/5321z/p/5982600.html

20145321 《信息安全系统设计基础》课程总结_第27张图片

http://www.cnblogs.com/5321z/p/5991035.html

20145321 《信息安全系统设计基础》课程总结_第28张图片

优缺点

挺好的……如果没有老师督促估计现在还没及格。

课程收获与不足

自己的收获

首先是端正了自己的学习态度,从一开始的排斥转变为正确对待课程的学习。然后也渐渐完成了从完全依靠老师授课到自学的转型,在自学中能获取知识其实也是非常有成就感的,是一件快乐的事。

自己需要改进的地方

第一是实践还不够多,加点代码、改点代码没有做多少;第二是拖延症还是没能改好,还是比较拖沓。

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

好好跟着老师的要求完成学习任务,如果前面偷懒而没有做好某些内容,后面就会像滚雪球一样,会更加累地去补前面的知识。

问卷调查

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

  • 15-20小时。

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

  • 前面几周效率比较低,后面还是有提高的。

学习效果自己满意吗?

  • 虽然挺高兴还是学到一些东西,但还是不太满意,因为自己还不够努力。

课程结束后会继续一周至少一篇博客吗?

  • 尽量会写博客,但可能写的不一定都跟课程内容有关。

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

  • 每周检测的讲解。

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

  • 没有想到。

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

  • 可以试着把扇贝的分值分一部分出来,做一些新内容的加分项,比如读书感悟博客或练字进步分等。

给出你的总结的链接和二维码

http://www.cnblogs.com/5321z/p/6220123.html

20145321 《信息安全系统设计基础》课程总结_第29张图片

你可能感兴趣的:(20145321 《信息安全系统设计基础》课程总结)