zoukankan      html  css  js  c++  java
  • 信息安全系统设计基础 期中总结

    期中总结

    一、常用命令

    • man -k;grep;cheat;find;locate;apt-get.

    二、正则表达式

    • 查找匹配、检索、替换

    • 常用符号

      + 表示前面的字符必须出现至少一次(1次或多次)
      
      ? 表示前面的字符最多出现一次(0次或1次)
      
      * 星号代表前面的字符可以不出现,也可以出现一次或者多次(0次、或1次、或多次)
      
    • 字符描述

        将下一个字符标记为一个特殊字符、或一个原义字符。例如,“n”匹配字符“n”。“
      ”匹配一个换行符。序列“\”匹配“”而“(”则匹配“(”。
      
      ^  匹配输入字符串的开始位置。
      
      $  匹配输入字符串的结束位置。
      
      {n}  n是一个非负整数。匹配确定的n次。例如,“o{2}”不能匹配“Bob”中的“o”,但是能匹配“food”中的两个o。
      
      {n,}  n是一个非负整数。至少匹配n次。例如,“o{2,}”不能匹配“Bob”中的“o”,但能匹配“foooood”中的所有o。“o{1,}”等价于“o+”。“o{0,}”则等价于“o*”。
      
      {n,m}  m和n均为非负整数,其中n<=m。最少匹配n次且最多匹配m次。例如,“o{1,3}”将匹配“fooooood”中的前三个o。“o{0,1}”等价于“o?”。请注意在逗号和两个数之间不能有空格。
      
      *  匹配前面的子表达式零次或多次。例如,zo*能匹配“z”、“zo”以及“zoo”。*等价于{0,}。
      
      +  匹配前面的子表达式一次或多次。例如,“zo+”能匹配“zo”以及“zoo”,但不能匹配“z”。+等价于{1,}。
      
      ?  匹配前面的子表达式零次或一次。例如,“do(es)?”可以匹配“do”或“does”中的“do”。?等价于{0,1}。当该字符紧跟在任何一个其他限制符(*,+,?,{n},{n,},{n,m})后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。例如,对于字符串“oooo”,“o+?”将匹配单个“o”,而“o+”将匹配所有“o”。
      
      .  匹配除“
      ”之外的任何单个字符。要匹配包括“
      ”在内的任何字符,请使用像“(.|
      )”的模式。
      
      (pattern)  匹配pattern并获取这一匹配的子字符串。该子字符串用于向后引用。要匹配圆括号字符,请使用“(”或“)”。
      
      x|y  匹配x或y。例如,“z|food”能匹配“z”或“food”。“(z|f)ood”则匹配“zood”或“food”。
      
      [xyz]  字符集合(character    class)。匹配所包含的任意一个字符。例如,“[abc]”可以匹配“plain”中的“a”。其中特殊字符仅有反斜线保持特殊含义,用于转义字符。其它特殊字符如星号、加号、各种括号等均作为普通字符。脱字符^如果出现在首位则表示负值字符集合;如果出现在字符串中间就仅作为普通字符。连字符 - 如果出现在字符串中间表示字符范围描述;如果如果出现在首位则仅作为普通字符。
      
      [^xyz]  排除型(negate)字符集合。匹配未列出的任意字符。例如,“[^abc]”可以匹配“plain”中的“plin”。
      
      [a-z]  字符范围。匹配指定范围内的任意字符。例如,“[a-z]”可以匹配“a”到“z”范围内的任意小写字母字符。
      
      [^a-z]  排除型的字符范围。匹配任何不在指定范围内的任意字符。例如,“[^a-z]”可以匹配任何不在“a”到“z”范围内的任意字符。
      

    ## 三、工具

    • vim编辑器:

      普通切换到插入: i 
      
      插入切换到普通: Esc 
      
      普通切换到命令行: :
      
      命令行切换到普通:Esc
      
    • gcc

      预处理: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 
      
    • gdb

      gdb programm(启动GDB)
      
      b 设断点(要会设4种断点:行断点、函数断点、条件断点、临时断点)
      
      run 开始运行程序
      
      bt 打印函数调用堆栈
      
      p 查看变量值
      
      c 从当前断点继续运行到下一个断点
      
      n 单步运行
      
      s 单步运行
      
      quit 退出gdb
      
      • 使用disassemable配合b设置断点可以查看该程序的汇编代码

    四、课本主要内容

    第二章  信息的表示和处理

    • 浮点数运算不会溢出,但是计算的结果是一个大致的范围,并不十分精确,不同的计算过程会有不同的计算值。

      • 二进制小数:权值2^(-w)(w为小数点右边第几位)

      • IEEE浮点表示:符号、尾数、阶码 规格化的值、非规格化的值、特殊值

      • 浮点运算:加法:不具有结合律,满足单调性

      • c语言的浮点数:float、double

    第三章  程序的机器级表示

    • 汇编命令:

      mov —— 传送数据
      
      add —— 加
      
      sub —— 减
      
      imul —— 乘(有符号)
      
      xor —— 异或
      
      or —— 或
      
      and —— 与
      
      leal —— 传送地址
      
      inc —— 加一
      
      dec —— 减一
      
      neg —— 取补
      
      not —— 取负
      
      sal (shl)—— 左移
      
      sar —— 算术右移
      
      shr —— 逻辑右移
      
      loop —— 循环
      

    第四章  处理器体系结构

    • Y86的顺序实现:取指、译码、执行、访存、写回、更新PC

    第六章  存储器结构层次

    • RAM/ROM/磁盘

      • RAM有SRAM和DRAM,特点和应用

      • ROM有PROM,EPROM,E2PROM,FLASH

      • 磁盘结构:盘片、磁道、扇区、间隙、柱面;磁盘驱动器

      • 磁盘容量

      • 访问时间:寻道、旋转、传送

      • 逻辑磁盘块:内存可以看成字节数组、磁盘可以看成块数组

      • 总线:数据总线、控制总线、地址总线 系统总线、存储总线、I/O总线

    • 局部性原理:时间局部性、空间局部性

      • 数据引用局部性

      • 取指令局部性

    • 存储层次结构:系统观(1+1>2)

      • 中心思想:每层存储设备都是下一层的“缓存”
    • 高速缓存结构(S,E,B,m):高速缓存组、高速缓存行、块

      • 映射

      • 命中

      • 缓存管理

    参考资料:

    • 实验:正则表达式基础

    • 2至7周blog

    • 《深入理解计算机系统》实验

    期中总结体会:

       在这次期中总结中,纠正了许多平时看书不认真导致的错误理解。知识点要平时一点一滴地消化,不然积累起来就会有很大的知识漏洞。比如:对于浮点数表示方式和计算方法,当初似是而非地学习,觉得自己搞懂了,结果期中总结时发现还是有很多不懂的东西。诸如此类的例子还有挺多的。
    
       平时通过课后练习题加深理解课程内容也是一个不错的方式,但重点还是要将课本看一遍,不看书光看题很容易犯低级错误,问一些不明所以的问题。不仅是课后习题,今后对于家庭作业我也要重视起来。前面由于时间问题没能完成家庭作业,今后要多做一点来提高自己对课本的理解程度。
    
       可能排版还是有问题吧,今后尝试使用markdown来写一下blog。
    
       现在尝试了一下markdown,感觉还是不错的,就是操作还是有点生疏。
  • 相关阅读:
    使用InternalsVisibleTo给assembly添加“友元assembly”
    从.snk文件导出密钥
    解决Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COER
    MySQL max_allowed_packet设置及问题
    MySQL导入sql脚本错误:2006
    执行nova-manage db sync时出错,提示’Specified key was too long; max key length is 1000 bytes’
    MySQL编码latin1转utf8
    微软为何选择在 Github 上开源 .NET 核心?
    In House打包流程
    GetBuiltProjectOutputRecursive error running Xamarin Forms iOS on Visual Studio
  • 原文地址:https://www.cnblogs.com/whyfarrell/p/4928765.html
Copyright © 2011-2022 走看看