zoukankan      html  css  js  c++  java
  • 20145330 第2周《信息安全系统设计基础》

    20145330 第2周《信息安全系统设计基础》

    教材学习内容总结##

    Linux下C语言开发基础

    • 熟悉vi的基本操作

      • vim是一个非常好的文本编辑器

      • 通过vim大冒险学习VIM

      • 输入vimtutor,跟着教程练习

    • 启动vim后,vim在Normal模式下,进入insert模式请按i(形式和记事本一样),想返回Normal模式,按ESC键

    • 利用vim来编写hello.c文件

    • GUN环境包括EMACS编辑器、GCC编译器、GDB调试器、汇编器连接器、处理二进制文件的工具以及其他一些部件。

    gcc

    • gcc能够编译用c、c++等语言编译的程序

    • gcc优点

      • Linux下的默认使用的c语言编译器是gcc
      • 便于控制编译过程
      • 与gdb调试工具结合使用
      • gcc提供灵活强大的代码优化功能
      • 提供警告信息和扩展
    • gcc的交叉编译平台

    • 编译格式

      • gcc[选项]要编译的文件[选项] [目标文件]
    • 常用选项

    • 可以把编译过程分成四步

      • 预处理:gcc-E hello.c--o hello.i;gcc-E调用cpp
        • .i预处理后的C文件
      • 编译:gcc-S hello.i--o hello.s;gcc-S调用ccl
        • .s汇编语言程序
      • 汇编:gcc-c hello.s--o hello.o;gcc -c 调用as
        • .o目标文件程序
      • 链接:gcc hello.o--o hello;gcc -o调用ld
    • 优化选项

      • 通过“-On”来

    控制优化配置,其中n是一个代表优化级别整数,n值越大优化效果越好

    • 目录选项

      • “-I 目录”选项表示在头文件搜索路径中添加需要的目录
      • “-L 目录”的功能是在库文件的搜索路径中添加用户定义的搜索的目录名
    • gcc编译性能分析

      • 程序性能测试工具gprof
      • gprof[选项]用户应用程序gmon.out
    • 将之前的代码用gcc进行编译

    • 编译通过后即可把hello文件运行出来

    • 编写四组运算代码

    • 将代码链接到main中

    • 完成

    gdb

    • gdb是GNU开源组织发布的一个强大的UNIX下调试程序工具
    • 一般来说,主要完成四方面功能
      • 启动程序,按照自定义随心所欲的运行程序
      • 可以让调试程序在你所指定的位置的断点处停止
      • 当程序停止时,可以检查此时你程序中所发生的事情
      • 动态的改变你程序的执行环境

    makefile工程管理器

    • 管理含有多个文件的工程工具
    • makefile文件有编译、连接的规则和语法,也有自己的书写格式、关键字、函数以及语法结构
    • Make工作时其工作过程通常如下
      • 读取Makefile
        • 根据执行选项,查找当前的目录或者其他目录的Makefile
      • 初始化Makefile
        • 将制定的Makefile中的变量进行替换,如果该Makefile中包含其他的文件,则将其加载
      • 解释规则
        • 将Makefile中的执行规则进行解析,为创建目标建立关系链
      • 分析变更
      • 执行
        • 执行Makefile中的命令

    系统的硬件组成

    • 总线
      • 贯穿整个系统的是一组电子管道,称作总线
      • 通常总线被设计成传送定长的字节块,也就是字
    • I/O设备
      • 输入/输出设备是系统与外部世界的联系通道
      • 每个I/O设备都通过一个控制器或适配器与I/O总线相连,他们的功能都是在I/O总线和设备之间传递信息
    • 主存
      • 主存是一个临时存储设备,在处理器执行程序时,用来存放程序和程序处理的数据。
    • 处理器
      • 中央处理单元(CPU),简称处理器,是执行存储在主存中指令的引擎
      • CPU在指令的要求下可能会执行以下操作
        • 加载
        • 存储
        • 操作
        • 跳转

    信息的表示和处理

    • 研究三种最重要的数字表示
      • 无符号
        • 编码基于传统的二进制表示法,表示大于或等于零的数字
      • 补码
        • 编码是表示有符号整数的最常见的方式,就是可以为正或为负的数字
      • 浮点数
        • 编码是表示实数的科学记数法的以二为基数的版本

    代码调试中的问题和解决过程

    • 在启动gdb环境中,并没有讲解中的代码调试功能,gdb test启动GDB后,输入一行代码按回车后总是有“没有符号被读取”

    代码托管

    心得体会与总结

    • 这周的博客学习内容量较为大,基本上每天都有在看一点,但还是很很吃力,感觉书上的内容和实验楼与视频的不太好同步看,刚开始学习时是很没有头绪的,不知道应该先看哪个,感觉资料一多反而无从下手,只能自己慢慢缕慢慢看,希望可以快点进入学习效率高点的状态

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 0/00 2/2 20/20
    第二周 200/200 2/4 18/38
  • 相关阅读:
    mobx的一个记录
    前端模块规范AMD/UMD/CommonJs
    CSS3字体大小单位的认识px/em/rem
    各浏览器之间的字号检测
    react整理一二(初入React世界)
    Node.js中实现套接字服务
    闲来无事,把node又拾起来看看
    判断类型
    html5 搜索框
    CSS 设置placeholder属性
  • 原文地址:https://www.cnblogs.com/20145330swx/p/5907318.html
Copyright © 2011-2022 走看看