20145325张梓靖 《信息安全系统设计基础》课程总结

  • 每周作业链接汇总

    • 第0周作业:为《信息安全系统设计基础》课程学习做好准备,了解本学期该课程的学习任务与方法

    • 第1周作业:学习Linux各类命令,重点掌握其核心常用的命令(例,find/cheat/grep/man等),了解Linux操作系统,初步尝试Linux下的C语言的编码、编译、调试、运行
    • 第2周作业:学习教程第一章、第七章;进一步学习Linux系统下的C语言的编码(vim)、编译(gcc)、调试(gdb/cgdb)、运行,掌握动态库、静态库的生成与使用,学习makefile编译的语法并理解其优越性
    • 第3周作业:学习教程第二章;掌握各种基础的计算机信息表示知识,理解有符号整数与无符号整数的区别与转换,掌握浮点数的表示
    • 第5周作业:学习教程第三章;掌握X86汇编基础(注意ATT与Intel汇编代码格式的不同),了解ISA,理解栈帧的使用与作用,学会用GDB进行栈帧的调试,观察栈帧的变化
    • 第6周作业:学习教程第四章;掌握ISA,了解CPU硬件(ALU、寄存器、时钟信号)、逻辑门,理解处理一条指令的序列以及SEQ的时序,了解流水线的特性;学会使用Y86模拟器,在YIS环境下对汇编文件进行汇编
    • 第7周作业:学习教程第六章;理解并掌握局部性原理,了解各类存储技术,理解高速缓存的运作;对git内容格式进行调整
    • 期中总结:对上半学期学习内容的重点进行总结,并总结上半学期对该课程的学习收获与不足
    • 第9周作业:学习教程第十章;使用man -kgrep -nr XXX /usr/include学习有关I/O的系统调用,掌握RIO、I/O重定向以及3种风格的错误处理
    • 第10周作业:结合代码,深入学习系统级 I/O,重点掌握open close/read/write/seek/stat的使用方法与作用
    • 第11周作业:学习教程第八章;理解进程与并发,了解异常处理与其类别,明白上下文切换、信号以及非本地跳转的概念;结合代码,深入学习进程创建和控制的系统调用及函数使用(fork/exec/wait/waitpid/exit/getpid/getppid/sleep/pause/setenv/unsetenv)
    • 第12周作业:理解数组指针、指针数组、函数指针、指针函数的区别;结合代码,深入学习信号机制函数调用(kill/alarm/signal/sigaction),并掌握管道和I/O重定向函数(pipe/dup/dup2)
    • 第13周作业:学习教程第十一章;了解网络编程的基础知识,掌握三种并发方式:基于进程的并发编程、基于I/O多路复用的并发编程、基于I/O多路复用的并发事件驱动服务器;理解线程的概念,学习相关的系统调用;理解信号量,并可以将其运作到线程中,实现同步互斥
    • 第14周作业:学习教程第九章;理解虚拟存储器的概念与作用,清楚Linux缺页异常处理,了解存储器映射,掌握动态存储器分配的方法;结合代码,深入理解线程与进程的区别,以及线程相关的系统调用的使用
  • 实验报告链接汇总
    • 实验一 开发环境的熟悉:使用 Redhat Linux 9.0 操作系统环境,安装 ARM-Linux 的开发库及编译器。创建一个新目录,并在其中编写 hello.c 和 Makefile 文件。学习在 Linux 下的编程和编译过程,以及 ARM 开发板的使用和开发环境的设置。下载已经编译好的文件到目标开发板上

    • 实验二 固件设计:了解多线程程序设计的基本原理。学习 pthread 库函数的使用
    • 实验三 实时系统的移植:使用ADS、GIVEIO驱动、JTAG驱动进行实时系统的移植
    • 实验四 外设驱动程序设计:学习在 LINUX 下进行驱动设计的原理。掌握使用模块方式进行驱动开发调试的过程
    • 实验五 简单嵌入式WEB服务器实验:掌握在 ARM 开发板实现一个简单 WEB 服务器的过程。学习在 ARM 开发板上的 SOCKET 网络编程。学习 Linux 下的 signal()函数的使用
  • 代码托管链接和二维码
    • 代码托管
    • 截图 git log --pretty=format:"%h - %an, %ar : %s" 的结果:

    • 代码量汇总:

    • 代码驱动的学习做到没有?:基本上做到了
    • 加点代码,改点代码是理解的最好方式,谈谈你的心得:
      • 要能够更好的理解各种系统调用以及函数的作用与区别,最好的方法就是先对其进行理论上、含义上的理解,然后再通过代码进一步实践判断之前自己对其的理解是否正确,如果要检验是否自己已经真正的理解且能灵活运用的话,就需要自己加点代码,看最后实践出来的效果是不是同之前自己加代码时预料的结果一样,如果一样,那么才能说明自己对其确实是已经基本上算是掌握了。加点代码,这确实很好的检验是否理解的方式
    • 实践上有什么经验教训:
      • 在实验之前,一定要将与实验相关的函数等等提前学习且认真思考后再进行实验,只有当带着自己的理解进行实践时,才可以快速的领悟。当然,最好是先自己将代码看一遍,自己先理解代码的意思与用途,然后估摸一下实践的结果,这样,在完成实践后,能够明显判断知道自己理解的对错,以及当猜测的与结果不一致时,可快速知晓自己理解的偏差在哪儿
  • 第0周作业中提出的问题
    • 第一章 并发与并行的区别:并发,多个进程看起来是同时发生的(对于一个CPU),实际上是有先后顺序调度的,只是调度的频繁,宏观上给人的感觉是同时进行;并行,确实是不同的进程同时被执行(多个CPOU同时作用不同的进程)
    • 第二章 B2Uw与B2Tw表示什么:B2Uw,w位2进制转换为无符号数;B2Tw,w位2进制转换为有符号数
    • 第三章 如何访问条件码:条件码通常不会直接读取,常用使用方法有三:
      • 可根据条件码的某个组合,将一个字节设置为0或1
      • 可条件跳转到程序的某个其他部分
      • 可有条件地传送数据
    • 第四章 YIS与Y86的关系是什么:YIS的目的是模拟Y86机器代码程序的执行,而不去试图模拟任何具体处理器实现的行为
    • 第五章 延迟界限有什么含义:当一系列操作必须按照严格顺序执行时,因为在下一条指令开始之前,这条指令必须结束,这就是所说的延迟界限
    • 第六章 DRAM与SRAM存储器的特性有什么区别:DRAM,非持续的,敏感的,应用于主存和帧缓冲区;SRAM,持续的,非敏感的,应用于高速缓存存储器
    • 第七章 连接器如何处理多重定义的符号:
      • 规则1:不允许有多个强符号
      • 规则2:如果有一个强符号和多个弱符号,那么选择强符号
      • 规则3:如果有多个弱符号,那么从这些弱符号中任意选择一个
    • 第八章 故障时如何处理的:
      • 当前指令导致一个故障
      • 控制传递给处理程序
      • 故障处理程序运行
      • 处理程序要么重新执行指令,要么终止
    • 第九章 虚拟页面的集合:1)未分配的 2)缓存的 3)为缓存的
    • 第十章 标准I/O库提供什么:提供fopen、 fclose、 fread、 fwrite、 fgets、 fputs、 scanf、 printf
    • 第十一章 协议软件需要的基本能力:1)命名机制 2)传送机制
    • 第十二章 Posix线程是什么:是在C程序中处理线程的一个标准接口
  • 评价第0周作业中提出的问题
    • 大部分还是抓住了每章学习的重点,但都是一些浅显的问题,这也与还没有开始真正的学习每一部分的知识有关,所以对于某些细节过程没有经过思考,所提出的问题也就先得浅显及没有不要。但不管怎么说,提出疑问总是会激起解决问题的欲望的
  • 项目加分项
    • 优秀作业

      • 第2周作业:学习教程第一章、第七章;进一步学习Linux系统下的C语言的编码(vim)、编译(gcc)、调试(gdb/cgdb)、运行,掌握动态库、静态库的生成与使用,学习makefile编译的语法并理解其优越性
        *

        • 第3周作业:学习教程第二章;掌握各种基础的计算机信息表示知识,理解有符号整数与无符号整数的区别与转换,掌握浮点数的表示

      • 第6周作业:学习教程第四章;掌握ISA,了解CPU硬件(ALU、寄存器、时钟信号)、逻辑门,理解处理一条指令的序列以及SEQ的时序,了解流水线的特性;学会使用Y86模拟器,在YIS环境下对汇编文件进行汇编
        *

      • 期中总结:对上半学期学习内容的重点进行总结,并总结上半学期对该课程的学习收获与不足
        *

        • 第10周作业:结合代码,深入学习系统级 I/O,重点掌握open close/read/write/seek/stat的使用方法与作用

        • 第11周作业:学习教程第八章;理解进程与并发,了解异常处理与其类别,明白上下文切换、信号以及非本地跳转的概念;结合代码,深入学习进程创建和控制的系统调用及函数使用(fork/exec/wait/waitpid/exit/getpid/getppid/sleep/pause/setenv/unsetenv)
    • 教程
      • 家庭作业

      • GDB堆栈跟踪与汇编调试
  • 没有项目被扣分

  • 课程收获与不足
    • 自己的收获

      • 经过这门课程的学习,使我基本明白计算机的内部原理,不管是CPU、存储器、虚拟内存、I/O设备,还是各类的系统调用,组成了我对于计算机的基本认识:知道了在计算机中是如何存储大量数据的,是如何协调各部分的运行效率以达尽可能的高效处理的,CPU是如何一步一步执行命令的。每周投入到该课程的时间是不定的,但学习的量是一定得保证的,我不能说自己学习的效率很高,但我能肯定的说,只要是当周学习的,都是我明白且理解的,至于运用上,不能说每周都有所实践,但如若是遇上无法理解的地方,那么实践是必须的。真心希望自己能做到学一门精一门,但在精之前,还是得先保证自己学一门知一门
    • 自己需要改进的地方
      • 学一门知一门,是基础。怎么才能做到完全的知也是需要花大工夫的,需要更多的投入精力、更多的坚持、更多的学习。在这方面,我不得不承认自己目前缺少持续的行动。尽管自己知道只有坚持才能得到更大的收获,就像所说的日久见人心,不久,怎么能把知识看透、学透,怎么可能做到全知,怎么有肯能达到精。所以,坚持吧,试着坚持做一事,试着去耐心等待,试着等待到体会成就的一天,那时候,坚持也就是一种习惯成自然的事了吧。
  • 给开学初的你和学弟学妹们的学习建议
    • 如果重新学习这门课,怎么做才可以学的更好

      • 深入理解计算系统,里面有很多其他学科的知识,比如有汇编的内容,有Java Web的知识。所以说,知识是融会贯通的,想要更好的、轻松的学习这门课,就得对任何课都认真学习。当然,如果说肯提前下功夫,提前学习的话,那么就会越学越轻松,越学越有意思。最重要的是,一定要学一点知识就理解一点,不要略过,因为前面的知识是后面学习的铺垫,略过的话,只会让学习起来越发困难与厌倦
  • 问卷调查
    • 你平均每周投入到本课程多长时间?

      • 20个小时左右
    • 每周的学习效率有提高吗?
      • 有,前期大量时间都花费在教材的阅读上面,后来则是先在网上学习本周相关内容的知识点,然后再结合老师给的代码进行更深入的理解,最后再翻阅教材,对细节进行查看与学习
    • 学习效果自己满意吗?
      • 对于学习的效果比较满意,虽然总是会对学过的内容有所遗忘,但是毕竟当时学得很辛苦,很深刻,所以只要稍稍的翻阅查看一下,就会又回忆起该学习内容的重点
    • 课程结束后会继续一周至少一篇博客吗?
      • 当然,我会继续坚持。将自己的想法写下来是很有趣的自我对话,也是未来的自己回忆以前的自己的一种途径。多写写总是好的
    • 你觉得这门课老师应该继续做哪一件事情?
      • 继续坚持锻炼学生的自主学习能力,学会看书,书上看不懂就上网查,网上查不到就问同学,同学也解决不了的就问老师,总是有办法的(图书馆查阅也是好的,但我觉得,如果仅仅只为解决一个疑问,而不是学习一门新的技能,那图书馆查阅还是很低效率的)
    • 你觉得这门课老师应该停止做哪一件事情?
      • 暂时没有想到需要停止做的事
    • 你觉得这门课老师应该开始做什么新的事情?
      • 暂时没有想到还需要做的,我觉得现在挺好的
  • 本文链接和二维码
    • 链接:http://www.cnblogs.com/zzjzzjzzj/p/6219752.html
      *

转载于:https://www.cnblogs.com/zzjzzjzzj/p/6219752.html

20145325张梓靖 《信息安全系统设计基础》课程总结相关推荐

  1. 20145325张梓靖 《信息安全系统设计基础》第13周学习总结

    20145325张梓靖 <信息安全系统设计基础>第13周学习总结 教材学习 客户端--服务器编程模型 每个网络应用都是基于客户端--服务器模型的.一个应用是由一个服务器进程和多个客户端进程 ...

  2. 20145325张梓靖 《信息安全系统设计基础》第2周学习总结

    20145325张梓靖 <信息安全系统设计基础>第2周学习总结 教材学习内容总结 vim :set nu 显示行号::set ai 自动缩行::set ts=4 设置一个 TAB 键等于几 ...

  3. 2016-2017-1 《信息安全系统设计基础》课程总结

    2016-2017-1 <信息安全系统设计基础>课程总结 课程改革的详细作法参见去年的2015-2016-1 <信息安全系统设计基础>课程总结. 教学方法上,课程提倡老师做教练 ...

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

    20145223 <信息安全系统设计基础>课程总结 每周作业链接汇总 •第0周作业: •简要内容:学会了安装虚拟机VirtualBox和Linux系统,预习了Linux基础入门,对课程的内 ...

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

    20155328 <信息安全系统设计基础> 课程总结 每周作业链接汇总 第1周作业:学习教材第一章与第七章"链接" 第2周作业:补充课堂提交,学习静态库与共享库,编写m ...

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

    20155308 <信息安全系统设计基础>课程总结 每周作业链接汇总 第一周作业:第一章<计算机系统漫游>第七章<链接> 第二周作业:第二周课上+课下测试 第三周作 ...

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

    20145307<信息安全系统设计基础>课程总结 每周作业链接汇总 第0周 浏览课本内容,结合每一章提出自己想知道的问题,安装虚拟机. 20145307 <信息安全系统设计基础> ...

  8. 20145324 20145325 《信息安全系统设计基础》实验三

    20145324 20145325 <信息安全系统设计基础>实验三 实验报告链接地址:http://www.cnblogs.com/zzjzzjzzj/p/6081109.html 转载于 ...

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

    20155330 <信息安全系统设计基础>课程总结 每周作业链接汇总 第一周作业:使用gcc编译器的常用选项.使用gdb调试技术.makefile基本原理及语法规范 第二周作业:vi测试. ...

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

    每周作业链接汇总 第0周作业:http://www.cnblogs.com/20145201lzx/p/5862104.html 师生关系 每章问题 虚拟机安装 第一周作业:http://www.cn ...

最新文章

  1. 《JAVA课程设计》实训第四天——《猜猜看》游戏
  2. java io流大全_Java IO流系统整理
  3. 1月24日学习内容整理:Django的admin组件源码分析及流程
  4. 大学计算机课程第六章答案,大学计算机网络课程第六章.ppt
  5. 如何在视图中启用thymeleaf
  6. VUE3.x(v-for)循环遍历指令
  7. 交互进CMU后可以学计算机吗,转专业必看!申请计算机的先修课要求,以CMU为例...
  8. spyder python下载_spyder下载
  9. 【毕业设计】基于Android的家校互动平台开发(内含完整代码和所有文档)——爱吖校推(你关注的,我们才推)...
  10. PHP时间戳与日期之间转换
  11. javascript实现常用的设计模式
  12. 云计算IaaS-Pssa-Saas(云计算的基本架构)
  13. 程序员需要知道的97件事情之 ------- 谋定而后动
  14. 向大家推荐一本学统计学的书
  15. 乐符识别matlab,基于DPP的自动音符切分识别研究
  16. Linux基础篇(五):远程操作
  17. 你家的wifi安全么?
  18. 实验五—JEPG 原理分析及 JPEG 解码器的调试
  19. 图片上的遮挡物怎么去除?
  20. chromium 37 chrome Native messaging 本地消息机制

热门文章

  1. newifi路由器 php,newifi路由器有线桥接教程
  2. OA开发很简单,OA实施很复杂!
  3. 应届生面试应答需要注意哪些事项及技巧?
  4. 测试用例的设计方法_场景设计法
  5. (MATLAB/C)高斯拟合法求光斑中心
  6. 做IT精英还是IT民工? 从事IT只是个体力活
  7. 【Beta】 第三次Daily Scrum Meeting
  8. 【Alpha】第四次Daily Scrum Meeting
  9. java集合根据条件筛选数据
  10. Android 常见的抓log方法总结