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

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

教材学习内容总结

Linux下C语言开发基础

  • 熟悉vi的基本操作
    • vim是一个非常好的文本编辑器
    • 通过vim大冒险学习VIM
      886442-20160925212431429-1089470064.png

    • 输入vimtutor,跟着教程练习
      886442-20160925212524886-76406817.png

  • 启动vim后,vim在Normal模式下,进入insert模式请按i(形式和记事本一样),想返回Normal模式,按ESC键
  • 利用vim来编写hello.c文件
    886442-20160925214024949-1971365849.png

886442-20160925214106030-982751690.png

886442-20160925214133813-944938948.png

886442-20160925214158268-139418631.png

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

    gcc

  • gcc能够编译用c、c++等语言编译的程序
  • gcc优点
    • Linux下的默认使用的c语言编译器是gcc
    • 便于控制编译过程
    • 与gdb调试工具结合使用
    • gcc提供灵活强大的代码优化功能
    • 提供警告信息和扩展
  • gcc的交叉编译平台
  • 编译格式
    • gcc[选项]要编译的文件[选项] [目标文件]
      886442-20160925214234974-1045751976.png
  • 常用选项

  • 可以把编译过程分成四步
    • 预处理: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”来886442-20160925215156357-465209540.png

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

  • 目录选项
    • “-I 目录”选项表示在头文件搜索路径中添加需要的目录
    • “-L 目录”的功能是在库文件的搜索路径中添加用户定义的搜索的目录名
  • gcc编译性能分析
    • 程序性能测试工具gprof
    • gprof[选项]用户应用程序gmon.out
      886442-20160925215309565-1308323027.png
  • 将之前的代码用gcc进行编译
    886442-20160925224120363-518440248.png

  • 编译通过后即可把hello文件运行出来
    886442-20160925224150302-1215598714.png

  • 编写四组运算代码
    886442-20160925224214898-1141299843.png

  • 将代码链接到main中
    886442-20160925224247587-1487538706.png

  • 完成
    886442-20160925224328637-637946240.png

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后,输入一行代码按回车后总是有“没有符号被读取”

代码托管

886442-20160925224626587-2118954146.png

心得体会与总结

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

学习进度条

代码行数(新增/累积)博客量(新增/累积)学习时间(新增/累积)重要成长
目标5000行30篇400小时
第一周0/002/220/20
第二周200/2002/418/38

转载于:https://www.cnblogs.com/20145330swx/p/5907318.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值