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

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

    (按顺序)每周作业链接汇总

    • 第一周作业:虚拟机中linux的vim的使用以及gcc编译器和gdb调试

    • 第三周作业:第二章 信息的表示与存储,linux的who命令

    • 第四周作业:课堂 fork,exic,wait函数学习以及编写MyOD的实现考试补写博客

    • 第五周作业:第三章 程序的机器级的表示

    • 第六周作业:考试fork,exic,wait函数实现mybash

    • 第七周作业:Y86程序以及指令的学习

    • 第九周作业:存储技术,缓存以及存储器的学习

    • 第十周作业:mypwd的实现和测试(加分)

    • 第十一周作业:地址和虚拟存储器的学习

    • 第十三周作业:第十章 系统级I/O

    • 第十四周作业:地址物理寻址以及虚拟存储器的学习

    (按顺序)实验报告链接汇总

    • 实验一 开发环境的熟悉
      实验内容
    熟悉 linux 开发环境,学会基于 S3C2410 的 linux 开发环境的配置和使用。
    使用linux的armv4l-unknown-linux-gcc编译,使用基于NFS方式的下载调试,
    了解嵌入式开发的基本过程
    

    • 实验二 固件程序设计
      实验内容
    实验箱及虚拟机的MDK LED配置和使用
    

    • 实验三 实时系统
      实验内容
    学习使用Linux命令wc,完成可以进行字数统计客户端服务器。
    

    • 实验四 外设驱动程序设计
    学习资源中全课中的“hqyj.嵌入式Linux应用程序开发标准教程.pdf”中的第十一章
    在Ubuntu完成资源中全课中的“hqyj.嵌入式Linux应用程序开发标准教程.pdf”中的第十一章的test试验
    提交编译,加载模块,卸载模块,测试运行的截图
    

    • 实验五 通信协议设计
    OpenSSL安装测试
    任务要求:在Ubuntu中完成 http://www.cnblogs.com/rocedu/p/5087623.html 中的作业
     混合密码系统防护
    在Ubuntu中实现对实验二中的“wc服务器”通过混合密码系统进行防护
    

    代码托管链接和二维码:

    代码链接

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

    • 代码量汇总提交statistics.sh的支持截图

    • 加点代码,改点代码是理解的最好方式
      编程最重要的就是实践,我觉得这句话真的很对,纸上得来终觉浅,烂笔头永远是你可以真正进步的良招,编程不能只看概念知识而不去动手写代码改代码编写程序,那样的学习只能是纸上谈兵,真正需要的时候却什么都做不出来什么都完不成。

    • 实践经验
      老师给了我们很多很好很方便的实践经验,比如说老师经常在蓝墨云发布一些代码要求大家改为正确的,还有总要把自己的代码量统计一下,并且传送到码云上,这样不仅可以给同学们一个共享和共同进步的平台,也会促进我们更努力的学习。还有老师经常对我们课上课下所做的代码进行验收进行查阅,老师这种鼓励大家学习的行为也是我们很需要学习的经验,我们以后可以自己在一段时间的学习过后进行验收和个人检查,所谓一日三省吾身嘛哈哈哈。

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

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

    • 第一章
      什么是计算机系统?它包括什么?研究它有什么意义?
      答:计算机系统由计算机硬件和软件两部分组成。硬件包括中央处理机、存储器和外部设备等;软件是计算机的运行程序和相应的文档。计算机系统具有接收和存储信息、按程序快速计算和判断并输出处理结果等功能。
    • 第二章
      计算机中的数据和平常我们生活中的数据有什么异同?
      答:在计算机系统中,各种字母、数字符号的组合、语音、图形、图像等统称为数据,数据经过加工后就成为信息。
    • 第三章
      为什么要学习汇编?
      答:用高级程序语言编程时,机器屏蔽了程序的细节,抽象级别高,而汇编代码可以很好的规避这一点,帮助我们更好的分析代码中隐藏的低效率。
    • 第四章
      ISA是什么?
      答:ISA即指指令集架构(Instruction Set Architecture)是与程序设计有关的计算机架构的一部分,包括本地数据类型、指令、寄存器、地址模式、内存架构、中断和意外处理和外部 I/O 。一个 ISA 包括一系列 opcodes(机器语言)的一个规格,本地命令由一个特定的 CPU 设计来实现。
    • 第五章
      如何优化程序性能?
      答:第一,消除不必要的内容,包括函数调用、条件测试和存储器引用。第二,利用处理器提供的指令级并行能力,同时执行多条指令。
    • 第六章
      存储系统层次结构分为什么?
      答:高速缓冲存储器、主存储器、辅助存储器。
    • 第七章
      链接是如何进行的?
      答:将各种代码和数据部分收集起来并组合成为一个单一文件,由链接器自动执行。
    • 第八章
      常见异常怎么解决?
      答:
      1.使用标准C库提供了abort()和exit()两个函数,它们可以强行终止程序的运行,其声明处于<stdlib.h>头文件中。
      2.使用assert(断言)宏调用,位于头文件<assert.h>中,当程序出错时,就会引发一个abort()。
      3.使用errno全局变量,由C运行时库函数提供,位于头文件<errno.h>中。
      4.使用goto语句,当出错时跳转。
      5.使用setjmp,longjmp进行异常处理。
    • 第九章
      虚拟存储器如何工作?它有什么特性?
      答:虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。
    • 第十章
      Unix I/O是什么?
      答:Unix下共有五种I/O模型
    a. 阻塞I/O 
    b. 非阻塞I/O 
    c. I/O复用(select和poll) 
    d. 信号驱动I/O(SIGIO) 
    e. 异步I/O(Posix.1的aio_系列函数)
    
    • 第十一章
      网络编程步骤?
      答:客户端:
    1、通过socket函数获取一个socket文件描述符。程序通过这个文件描述符与内核的tcp/ip架构通讯联系。
    
    2、通过该描述符请求与服务器的连接(connect函数),此时需要事先知道服务器的ip和服务器上的应用程序的端口
    
    3、当connect函数成功返回,则表示连接达成,则可通过该文件描述符或者recv,send该文件描述符,即可实现与某服务器端的通信
    

    服务器端:

    1、通过socket函数获取一个socket文件描述符。程序通过这个文件描述符与内核的tcp/ip架构通讯联系。
    
    2、绑定端口(bind函数),端口人为设置,本机IP自动获取即可(端口和IP设置通过sockaddr_in结构体实现)。
    
    3、监听socket函数返回文件描述符(listen函数)
    
    4、当listen函数返回时,表示有请求,则使用accept获取请求,accept函数产生一个新的文件描述符,用于和该请求通信。
    
    5、读写该文件描述符或者recv,send该文件描述符,即可实现与某客户端的通信
    
    6、服务器端还可以继续监听socket文件描述符,接受其他端口的请求
    
    • 第十二章
      并发编程是什么?
      答:并发编程是指在一台处理器上“同时”处理多个任务。并发是在同一实体上的多个事件。多个事件在同一时间间隔发生。

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

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

    • 第十周作业:mypwd的实现和测试(加分)

    博客链接

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

    无扣分项目
    ...

    课程收获与不足

    • 自己的收获(投入,效率,效果等)
      在这学期的学习中,我清晰的感受到了效率、投入的重要性。刚开始,可能是由于刚过完假期,我一直不太能进入状态,效率很低,收获也寥寥无几,感觉老师的要求太多了,而自己却完全觉得是在浪费时间。后来,我逐渐进入了状态,学习效率大大提高,也更加能体会到老师的每一项要求的意义所在,于是,读书、理解、做练习题,读代码、理解、编译运行,这一个体系下来,觉得自己对于这门课的知识得到了掌握,而使用的时间也没有比之前更长。所以,不得不说,有付出才会有收获,效率高才能在有限的时间内收获更多。

    • 自己需要改进的地方
      这学期因为很多周的学习没有代码,所以没有周周进行码云的提交,之前养成的每周每天学习代码后就提交的习惯也有很多松懈而没有像之前一样。所以我觉得习惯养成就一定要保持住,还要培养新的良好习惯,因为这样可以鼓励自己编写代码,积极的实践,把课堂学到的知识真正转换为自己的。才能更好的提高自己。

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

    • 帮助:我和20155311高梓云结对做了这学期的5个实验,我们一共去了实验室3次,实验一主要是我在进行操作,实验二和实验四和实验五主要是共同在进行操作,实验三我们每人操作了一次,这样,我们每个人都可以做一次实验环境配置,难度也比较相当,大家的动手能力都在实验中得到了锻炼。在实验中有一些在预习时自己忽略的东西也会被队友指出,效率更高。

    • 建议:我觉得有一些组别分工合理,互相帮助,共同进行实验,而另一些则存在不太好的行为,自己完全不做,只依靠队友,解决办法还没想出。

    给学弟学妹们的学习建议

    如果重新学习这门课,怎么做才可以学的更好
    我觉得我的最大问题就是进入状态太慢,我最开始的几周学习效率太低了,每周的博客都要做很久很久,收获却不大。如果重新学习的话,我应该想办法让自己尽快进入这种学习模式,尽量从假期进入到学习中去,提高学习效率。

    问卷调查

    • 你平均每周投入到本课程多长时间?
      25小时左右,平时课下有时间就看看书、画下来重点,周末把它们总结成一篇博客,并进行实践操作。
    • 每周的学习效率有提高吗?
      相比于刚开学有了很大提高。
    • 学习效果自己满意吗?
      刚开学的几周很不满意,觉得自己效率太低,学了很长时间却收获很小。后来逐渐进入了学习状态,学习效率提高了,在加上有之前知识做基础,学习效果相对来说较为满意。
    • 课程结束后会继续一周至少一篇博客吗?(如果能做到,毕业时我把你的博客给你集结成一本书)
      我很希望自己能保持这个习惯,也会努力去做到。
    • 你觉得这门课老师应该继续做哪一件事情?
      每周写博客,扇贝打卡,多理解、运行代码,期末、期中总结。
    • 你觉得这门课老师应该停止做哪一件事情?
      感觉所有项目都有其存在的价值和意义,没有什么应该停止的。
    • 你觉得这门课老师应该开始做什么新的事情?
      实验闭卷考试,我感觉实验更多的是在培养一种能力,应该化为自己的知识储备,不用查找就能运用,开卷更适用于考课本上的概念这类知识性的死记硬背的东西。

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

  • 相关阅读:
    xpath教程-逐层检索和全局检索 转
    xpath教程-通过ID和Class检索 转
    minianaconda3安装
    爬取表情
    进程线程(转)
    centos 安装docker方法2
    关于Dockerfile
    根据指定规则生成游戏选项编码实战
    分布式对象存储 读书笔记
    muduo 的windows下的编译
  • 原文地址:https://www.cnblogs.com/20155305ql/p/8124043.html
Copyright © 2011-2022 走看看