2017-2018-1 20155214 《信息安全系统设计基础》课程学习总结-程序员宅基地

2017-2018-1 20155214 《信息安全系统设计基础》课程学习总结

目录

  1. 每周作业汇总
  2. 课程学习感悟和思考
  3. 代码托管
  4. 课程收获与不足
  5. 给开学初的你和学弟学妹们的学习建议
  6. 问卷调查
  7. 关于本文

每周作业汇总

第1周学习总结

  • 简介
  1. 掌握静态库和动态库的生成与调用方法
  2. 了解链接的概念
  • 相关博客二维码

1071473-20171228195749178-406951877.png

第3周学习总结

  • 简介
  1. 理解二进制在计算机中的重要地位
  2. 掌握布尔运算在C语言中的应用
  3. 理解有符号整数、无符号整数、浮点数的表示
  4. 理解补码的重要性
  5. 进一步理解“信息=位+上下文”
  6. 熟悉makefile基本原理及语法规范
  • 相关博客二维码

1071473-20171228200559241-1568754812.png

第4周学习总结

  • 简介
  1. 用Linux IO相关系统调用编写myod.c 用myod XXX实现Linux下od -tx -tc XXX的功能,注意XXX是文件名,通过命令行传入,不要让用户输入文件名
  2. 查询及阅读源码技巧
  • 相关博客二维码

1071473-20171228201140897-323547864.png

第5周学习总结

  • 简介
  1. 理解逆向的概念
  2. 掌握X86汇编基础,能够阅读(反)汇编代码
  3. 了解ISA(指令集体系结构)
  4. 理解函数调用栈帧的概念,并能用GDB进行调试
  • 相关博客二维码

1071473-20171228201640866-993845753.png

第6周学习总结

  • 简介
  1. 了解异常及其种类
  2. 理解进程和并发的概念
  3. 掌握进程创建和控制的系统调用及函数使用:fork,exec,wait,waitpid,exit,getpid,getppid,sleep,pause,setenv,unsetenv,
  4. 理解数组指针、指针数组、函数指针、指针函数的区别
  5. 理解信号机制:kill,alarm,signal,sigaction
  6. 掌握管道和I/O重定向:pipe, dup, dup2
  • 相关博客二维码

1071473-20171228202128975-233438121.png

第7周学习总结

  • 简介
    1.了解ISA抽象的作用
  1. 掌握ISA,并能举一反三学习其他体系结构
  2. 了解流水线和实现方式
  • 相关博客二维码

1071473-20171228202444819-649718355.png

第8周学习总结

  • 简介
  1. 掌握三种并发的方式:进程、线程、I/O多路复用
  2. 掌握线程控制及相关系统调用
  3. 掌握线程同步互斥及相关系统调用
  • 相关博客二维码

1071473-20171228202719803-79385826.png

第9周学习总结

  • 简介
  1. 了解常见的存储技术(RAM、ROM、磁盘、固态硬盘等)
  2. 理解局部性原理
  3. 理解缓存思想
  4. 理解局部性原理和缓存思想在存储层次结构中的应用
  5. 高速缓存的原理和应用
  • 相关博客二维码

1071473-20171228203427788-873160026.png

第11周学习总结

  • 简介
  1. 理解虚拟存储器的概念和作用
  2. 理解地址翻译的概念
  3. 理解存储器映射
  4. 掌握动态存储器分配的方法
  5. 理解垃圾收集的概念
  6. 了解C语言中与存储器有关的错误
  • 相关博客二维码

1071473-20171228203705303-25265406.png

第13周学习总结

  • 简介
  1. 本章主要学习网络编程,重点研究 客户端-服务器编程模型 。
  2. socket服务器和客户端搭建
  3. daytime服务器
  4. echo服务器
  5. wc服务器
  6. 服务器迭代
  7. 服务器并发
  8. 服务器文件简单加密
  • 相关博客二维码

1071473-20171228204116209-1337622061.png

第14周学习总结

  • 简介
  1. 我们描述许多提高代码性能的技术。理想的情况是编译器能够接受我们编写的任何代码并产生尽可能高效的、具有指定行为的机器级程序
  2. 现代编译器采用了复杂的分析和优化方式而且变得越来越好,然而即使是最好的编译器也受到了妨碍优化因素的阻碍。程序员必须编写容易优化的代码,帮助编译器。
  • 相关博客二维码

1071473-20171228204733241-533920525.png

实验报告链接汇总

实验一 开发环境的熟悉

  • 简介
  1. 建立实验目录"mkdir linux_组员1学号_组员2学号"。
  2. 在实验目录中编写“hello word”程序,另外补充几行打印所有组员的学号姓名。
  3. 分别用gcc和交叉编译器arm-none-linux-gnuenbi-gcc编译hello.c,用gcc编译的可执行文件命名linuxhello:gcc hello.c -o linuxhello; 用arm-none-linux-gnuenbi-gcc编译的命名为armhello: /usr/local/toolchain/toolchain4.3.2/bin/arm-none-linux-gnuenbi-gcc hello.c -o armhello。
  4. 分别运行linuxhello,armhello。
  • 相关博客二维码

1071473-20171228205634756-1590360173.png

实验二 固件程序设计

  • 简介
  1. 注意不经老师允许不准烧写自己修改的代码
  2. 两人(个别三人)一组
  3. 参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.1-1.5安装MDK,JLink驱动,注意,要用系统管理员身分运行uVision4,破解MDK(破解程序中target一定选ARM)
  4. 提交破解程序中产生LIC的截图
  5. 提交破解成功的截图
  • 相关博客二维码

1071473-20171228210010209-1798640016.png

实验三 实时系统

  • 简介
  1. 学习使用Linux命令wc(1)
  2. 基于Linux Socket程序设计实现wc(1)服务器(端口号是你学号的后6位)和客户端
  3. 客户端传一个文本文件给服务器
  4. 服务器返加文本文件中的单词数
  5. 使用多线程实现wc服务器并使用同步互斥机制保证计数正确
  6. 上方提交代码
  7. 下方提交测试
  8. 对比单线程版本的性能,并分析原因
  9. 交叉编译多线程版本服务器并部署到实验箱中
  10. PC机作客户端测试wc服务器
  • 相关博客二维码

1071473-20171228210346709-795816745.png

实验四 外设驱动程序设计

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

1071473-20171228210836334-495282683.png

实验五 通讯协议设计

  • 简介
  1. 在Ubuntu中完成 http://www.cnblogs.com/rocedu/p/5087623.html 中的作业
  2. 在Ubuntu中实现对实验二中的“wc服务器”通过混合密码系统进行防护
  3. 运行实验箱中,ARM调用Z32算法的实验,提交实验截图.用Z32的国密算法重新改写“wc服务器”的混合密码系统防护
  • 相关博客二维码

1071473-20171228211141475-1482406354.png

其他(感悟、思考)

这学期倏忽间就过去了,《信息安全系统设计基础》这门课让我学到了很多。CSAPP是一本很好的教材,值得反复阅读。即使是浅尝辄止,也已经让我受益匪浅。

在学习这条道路上,惰性总会让我们偏安一隅。学习新技术,用逻辑语言将所学所得表述出来是一件不简单的事。这也是博客的难点之一。但一旦跨出了限制自身的区域。知识又是无穷无尽,寻找到自己的源动力应该是学习的根本。

vim学习,git版本控制,gdb调试,查看man文档,这些都是基础技能。当我们扎稳篱笆,其他知识的学习就像是填白。

代码托管

  • besti155214

https://gitee.com/besti155214/BESTI.IS.ISSDB.20155214

  • 码云链接二维码

1071473-20171228213610116-1212647618.png

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

第1周作业中提出的问题比较偏向框架概念,抓住了学习重点。

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

  • 问题1:Unix和Linux之间的区别?

    解决方案:通过搜索引擎初步了解,Unix侧重商业版,由封闭团队开发,注重对现有BSD做修改以适合80386系统。Linux作为免费软件,开放开发,使用类Unix内核的Minix作为模板研发,提供完整的Unix接口。

  • 问题2:命令行和shell,虚拟终端Terminal的联系?

    解决方案:shell解读并执行处理命令行,实行人机交互,执行脚本等。Terminal作为虚拟终端为shell提供命令行用户界面。

  • 问题3:如何理解“每个I/O设备,包括磁盘、键盘、显示器,甚至是网络都可以视作文件(字节序列)?

    解决方案:将Linux中的事物阐释为字节流,文件是对I/O的抽象,那么所有的输入输出都可以通过相同的Linux工具进行读写。主要分为普通文件特殊文件目录文件

  • 问题4:并发和超线程的区别?

    解决方案:当有多个线程在操作时,如果系统只有一个CPU,则它根本不可能真正同时进行一个以上的线程,它只能把CPU运行时间划分成若干个时间段,再将时间 段分配给各个线程执行,在一个时间段的线程代码运行时,其它线程处于挂起状。采用超线程即是可在同一时间里,应用程序可以使用芯片的不同部分,可以使芯片在任一时刻同时进行不冲突的多线程处理,使芯片性能得到提升。

  • 问题5:重定位和重定向的区别?

    解决方案:通过链接器将符号引用指向新生成的对应存储器,称为重定位数据节。重定向通过管道将父进程的标准输入与子进程的标准输出相连接。

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

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

第4周学习总结

  • 相关博客二维码

1071473-20171228201140897-323547864.png

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

本项无。

课程收获与不足

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

操作系统的框架有了深入理解,对C语言实现流程更加清楚了。

自己需要改进的地方

个人在文档编辑,PPT制作方面亟需提升,还需要对代码的牢固性进行完善。

如果有结对,写一下你提供的帮助或接受了什么帮助,并对老师提供参考建议

结对同学在进行试验箱操作时,对我的动手能力有很大帮助。

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

如果重新学习这门课,怎么做才可以学的更好

深入学习确实是一件很累的事情,特别是在挖掘自己的思维亮点这件事上,不必强求,但也不要因为惰性而限制自己的能力。

课程学习中学到的很多工具对当前,或是日后的学习工作都很有帮助,一定要好好掌握。

问卷调查

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

    教材学习4个小时,代码实现6个小时,博客撰写4个小时。

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

    在熟悉学习流程的基础下,学习效率略有提高,但相比上学期,有创造性的想法减少了。

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

    主动写专业博客的话会有压力。或许日志和学习博客穿插会比较好些。任课老师对博客的看法也会有影响。

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

    课后练习对于能力提升来说确实不错,而且还会减少课上练习由于各种原因无法完成的压力。

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

    结对学习对我而言并没有起到良性作用,或许会在帮助解决他人问题上重复强化解决某一具体问题的经验,但并不会产生思维亮点,感觉就像重复工作。

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

    我觉的可以设立一些3人小组设计的大作业,弥补个人的能力不足,产生更多的思维碰撞。

参考资料

  • 关于本文

2017-2018-1 20155214 《信息安全系统设计基础》课程学习总结

  • 二维码
    1071473-20171228230950256-904053400.png

转载于:https://www.cnblogs.com/besti155214/p/8137884.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/NavyJhon2015/article/details/101715144

智能推荐

艾美捷Epigentek DNA样品的超声能量处理方案-程序员宅基地

文章浏览阅读15次。空化气泡的大小和相应的空化能量可以通过调整完全标度的振幅水平来操纵和数字控制。通过强调超声技术中的更高通量处理和防止样品污染,Epigentek EpiSonic超声仪可以轻松集成到现有的实验室工作流程中,并且特别适合与表观遗传学和下一代应用的兼容性。Epigentek的EpiSonic已成为一种有效的剪切设备,用于在染色质免疫沉淀技术中制备染色质样品,以及用于下一代测序平台的DNA文库制备。该装置的经济性及其多重样品的能力使其成为每个实验室拥有的经济高效的工具,而不仅仅是核心设施。

11、合宙Air模块Luat开发:通过http协议获取天气信息_合宙获取天气-程序员宅基地

文章浏览阅读4.2k次,点赞3次,收藏14次。目录点击这里查看所有博文  本系列博客,理论上适用于合宙的Air202、Air268、Air720x、Air720S以及最近发布的Air720U(我还没拿到样机,应该也能支持)。  先不管支不支持,如果你用的是合宙的模块,那都不妨一试,也许会有意外收获。  我使用的是Air720SL模块,如果在其他模块上不能用,那就是底层core固件暂时还没有支持,这里的代码是没有问题的。例程仅供参考!..._合宙获取天气

EasyMesh和802.11s对比-程序员宅基地

文章浏览阅读7.7k次,点赞2次,收藏41次。1 关于meshMesh的意思是网状物,以前读书的时候,在自动化领域有传感器自组网,zigbee、蓝牙等无线方式实现各个网络节点消息通信,通过各种算法,保证整个网络中所有节点信息能经过多跳最终传递到目的地,用于数据采集。十多年过去了,在无线路由器领域又把这个mesh概念翻炒了一下,各大品牌都推出了mesh路由器,大多数是3个为一组,实现在面积较大的住宅里,增强wifi覆盖范围,智能在多热点之间切换,提升上网体验。因为节点基本上在3个以内,所以mesh的算法不必太复杂,组网形式比较简单。各厂家都自定义了组_802.11s

线程的几种状态_线程状态-程序员宅基地

文章浏览阅读5.2k次,点赞8次,收藏21次。线程的几种状态_线程状态

stack的常见用法详解_stack函数用法-程序员宅基地

文章浏览阅读4.2w次,点赞124次,收藏688次。stack翻译为栈,是STL中实现的一个后进先出的容器。要使用 stack,应先添加头文件include<stack>,并在头文件下面加上“ using namespacestd;"1. stack的定义其定义的写法和其他STL容器相同, typename可以任意基本数据类型或容器:stack<typename> name;2. stack容器内元素的访问..._stack函数用法

2018.11.16javascript课上随笔(DOM)-程序员宅基地

文章浏览阅读71次。<li> <a href = "“#”>-</a></li><li>子节点:文本节点(回车),元素节点,文本节点。不同节点树:  节点(各种类型节点)childNodes:返回子节点的所有子节点的集合,包含任何类型、元素节点(元素类型节点):child。node.getAttribute(at...

随便推点

layui.extend的一点知识 第三方模块base 路径_layui extend-程序员宅基地

文章浏览阅读3.4k次。//config的设置是全局的layui.config({ base: '/res/js/' //假设这是你存放拓展模块的根目录}).extend({ //设定模块别名 mymod: 'mymod' //如果 mymod.js 是在根目录,也可以不用设定别名 ,mod1: 'admin/mod1' //相对于上述 base 目录的子目录}); //你也可以忽略 base 设定的根目录,直接在 extend 指定路径(主要:该功能为 layui 2.2.0 新增)layui.exten_layui extend

5G云计算:5G网络的分层思想_5g分层结构-程序员宅基地

文章浏览阅读3.2k次,点赞6次,收藏13次。分层思想分层思想分层思想-1分层思想-2分层思想-2OSI七层参考模型物理层和数据链路层物理层数据链路层网络层传输层会话层表示层应用层OSI七层模型的分层结构TCP/IP协议族的组成数据封装过程数据解封装过程PDU设备与层的对应关系各层通信分层思想分层思想-1在现实生活种,我们在喝牛奶时,未必了解他的生产过程,我们所接触的或许只是从超时购买牛奶。分层思想-2平时我们在网络时也未必知道数据的传输过程我们的所考虑的就是可以传就可以,不用管他时怎么传输的分层思想-2将复杂的流程分解为几个功能_5g分层结构

基于二值化图像转GCode的单向扫描实现-程序员宅基地

文章浏览阅读191次。在激光雕刻中,单向扫描(Unidirectional Scanning)是一种雕刻技术,其中激光头只在一个方向上移动,而不是来回移动。这种移动方式主要应用于通过激光逐行扫描图像表面的过程。具体而言,单向扫描的过程通常包括以下步骤:横向移动(X轴): 激光头沿X轴方向移动到图像的一侧。纵向移动(Y轴): 激光头沿Y轴方向开始逐行移动,刻蚀图像表面。这一过程是单向的,即在每一行上激光头只在一个方向上移动。返回横向移动: 一旦一行完成,激光头返回到图像的一侧,准备进行下一行的刻蚀。

算法随笔:强连通分量-程序员宅基地

文章浏览阅读577次。强连通:在有向图G中,如果两个点u和v是互相可达的,即从u出发可以到达v,从v出发也可以到达u,则成u和v是强连通的。强连通分量:如果一个有向图G不是强连通图,那么可以把它分成躲个子图,其中每个子图的内部是强连通的,而且这些子图已经扩展到最大,不能与子图外的任一点强连通,成这样的一个“极大连通”子图是G的一个强连通分量(SCC)。强连通分量的一些性质:(1)一个点必须有出度和入度,才会与其他点强连通。(2)把一个SCC从图中挖掉,不影响其他点的强连通性。_强连通分量

Django(2)|templates模板+静态资源目录static_django templates-程序员宅基地

文章浏览阅读3.9k次,点赞5次,收藏18次。在做web开发,要给用户提供一个页面,页面包括静态页面+数据,两者结合起来就是完整的可视化的页面,django的模板系统支持这种功能,首先需要写一个静态页面,然后通过python的模板语法将数据渲染上去。1.创建一个templates目录2.配置。_django templates

linux下的GPU测试软件,Ubuntu等Linux系统显卡性能测试软件 Unigine 3D-程序员宅基地

文章浏览阅读1.7k次。Ubuntu等Linux系统显卡性能测试软件 Unigine 3DUbuntu Intel显卡驱动安装,请参考:ATI和NVIDIA显卡请在软件和更新中的附加驱动中安装。 这里推荐: 运行后,F9就可评分,已测试显卡有K2000 2GB 900+分,GT330m 1GB 340+ 分,GT620 1GB 340+ 分,四代i5核显340+ 分,还有写博客的小盒子100+ 分。relaybot@re...

推荐文章

热门文章

相关标签