2018-2019-1 20165221 《信息安全系统设计基础》第一周学习总结

教材学习总结

有关vim

  • 打开方式:vim [文件名]
  • i会进入insert模式,可以对代码进行编辑
  • Esc会进入普通模式,此时可以使用快捷键进行编辑,编辑方式为:

    指令 对应操作
    h 向左移动光标
    l 向右移动光标
    j 向下移动光标
    k 向上移动光标
    w 移动到下一个单词
  • vim的退出与保存

保存并退出 不保存并退出
:wq+回车键 Esc+q!
Esc+Shift+zz

有关gcc

  • 明白编译过程
文本类型 作何处理 所用的gcc指令(当前文件类型指向待生成类型
hello.c源程序 预处理(cpp) gcc -E hello.c -o hello.i
hello.i修改过的源程序 编译处理(ccl) gcc -S hello.i -o hello.s
hello.s汇编程序 汇编处理(as) gcc -c hello.s -o hello.o
hello.o可重定位的二进制目标程序 链接(ld)

最终得到可执行的二进制目标程序hello

具体题目操作

题目一:vi

    1. 每个.c一个文件,每个.h一个文件,文件名中最好有自己的学号
    1. 用Vi输入图中代码,并用gcc编译通过
    1. 在Vi中使用K查找printf的帮助文档
    1. 提交vi编辑过程截图,要全屏,包含自己的学号信息

操作前准备:

  • 将头文件放在如下地址:

  • 文件脉络图:

  • .c文件放在src

    具体操作:

    键入的指令:gcc -I/home/tx20165221/gcc.include

选择生成静态库

键入指令 运行结果
gcc -c -I/home/tx20165221/gcc.include add.c sub.c mul.c div.c 生成.o文件
ar rcvs libmath.a add.o sub.o mul.o div.o 生成静态库
gcc main.c -omain -I/home/tx20165221/gcc.include -L. -lmath 生成可执行文件main
./main 运行文件

运行结果截图

遇到的问题

  • 问题一:找不到头文件的位置
  • 问题一解决办法:在后台找到头文件,右键查看其属性

  • 问题二:编译运行失败
  • 问题而解决方法:输入指令 gcc main.c -omain -I/home/tx20165221/gcc.include -L. -lmath漏掉了了L后的.

题目二:gcc测试

    1. 用gcc 进行预处理,编译,汇编,链接vi输入的代码
    1. 生成的可执行文件中要有自己的学号
    1. 提交预处理,编译,汇编,链接,运行过程截图,要全屏,包含自己的学号信息

具体操作

文本类型 作何处理 所用的gcc指令(当前文件类型指向待生成类型
hello.c源程序 预处理(cpp) gcc -E main.c -o main.i
main.i修改过的源程序 编译处理(ccl) gcc -S main.i -o main.s
main.s汇编程序 汇编处理(as) gcc -c main.s -o main.o
main.o可重定位的二进制目标程序 链接(ld)

键入./main运行

运行结果截图:

  • .o文件

  • 最终运行截图

题目三:gdb测试

    1. 用gcc -g编译vi输入的代码
    1. 在main函数中设置一个行断点
    1. 在main函数增加一个空循环,循环次数为自己学号后4位,设置一个约为学号一半的条件断点
    1. 提交调试过程截图(一定包含条件断点的),要全屏,包含自己的学号信息

      具体操作:

      设置断点

  • 函数:b 文件名.c:函数名
  • 行:b 行数
  • 条件:b 行数 if 表达式(例如:b 9 if == 12)
  • 临时:tb [文件名:]行号或函数名 <条件表达式>

实践过程

  • gcc -g *.c -o main
  • gdb main
  • b main
  • b 6 if i==5221
  • info break
  • r
  • q

    运行截图:

题目四:静态库的测试

    1. 除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.a静态库?main.c如何使用mymath.a?
    1. 提交静态库生成和调用过程截图(一定包含条件断点的),要全屏,包含自己的学号信息

实践过程

  • ar cr math.a add.o sub.o mul.o div.o
  • gcc main.c ./math.a -o main

运行截图:

题目五:共享库

    1. 除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.so共享库?main.c如何使用mymath.so?
    1. 提交共享库生成和调用过程截图(一定包含条件断点的),要全屏,包含自己的学号信息

具体操作

共享库的生成:

  • gcc -fPIC -c xxx.c
  • gcc -shared -o libxxx.so xxx.o

共享库的使用

  • gcc -o main main.c -L. -lxxx
实际操作:
  • 生成:
    gcc -fPIC -c add.c sub.c mul.c div.c

gcc -shared -o libmymath.so add.o sub.o mul.o div.o

使用:gcc -o main main.c -L. -lmymath

运行截图:

题目六:Makefile

  • 写出编译上面vi编辑代码的makefile,编译出来的目标文件为testmymath, 只用显式规则就可以.

  • 提交Make过程截图,要全屏,包含自己的学号信息

    具体操作

    makefile文件编写规则:
  • 目标文件 :由make创建,通常是目标文件或可执行文件

  • 依赖文件 :创建目标体所依赖的文件

  • 运行命令 :创建每个目标体时需要的运行命令,必须以tab键开头,格式为:目标文件:依赖文件列表 [tab键]各目标体运行命令(注意不是空格)

  • 使用make的格式:make目标文件

实际操作:
  • 入vim Makefile,输入i进入编辑模式,输入代码并保存
  • 输入 make, 进行自动化编译
  • 执行 ./testmymath 查看结果
  • 运行结果和编写的makefile截图:

代码统计

  • 上学期的statistics.sh被自己删了,在网上查找代码统计方法,键入sudo apt-get install cloc下载安装,即可。

转载于:https://www.cnblogs.com/0630tx/p/9692235.html

2018-2019-1 20165221 《信息安全系统设计基础》第一周学习总结相关推荐

  1. 信息安全系统设计基础第一周学习总结

    学习计时:共15小时 读书:1 代码:10 作业:13 博客:1 一.学习目标 1. 能够独立安装Linux操作系统 2. 能够熟练使用Linux系统的基本命令 3. 熟练使用Linux中用户管理命令 ...

  2. 20135323符运锦---信息安全系统设计基础第一周学习总结

    学习计时:共15小时 读书:1小时 代码:8小时 作业:4小时 博客:2小时 一.学习目标 1. 能够独立安装Linux操作系统   2. 能够熟练使用Linux系统的基本命令   3. 熟练使用Li ...

  3. 20135304刘世鹏——信息安全系统设计基础第一周学习总结

    第一节 Linux系统简介 一.Linux是一个操作系统 1. Linux 本身只是操作系统的内核.内核是使其他程序能够运行的基础. 它实现了多任务和硬件管理,用户或者系统管理员交互运行的所有程序 实 ...

  4. LINUX信息安全系统设计基础第一周学习总结

     Linux系统简介 一.实验内容 了解 Linux 的历史,Linux 与 Windows 的区别等入门知识. 二.实验要求 阅读linux简介与历史 三.实验步骤 二.Linux 与 Window ...

  5. 20135306-信息安全系统设计基础第一周学习总结

    第二周(9.14-9.20): 学习计时:共14小时 读书:2h 代码:4h 作业:4h 博客:4h 一.学习目标 1. 能够独立安装Linux操作系统 2. 能够熟练使用Linux系统的基本命令 3 ...

  6. 20135219洪韶武——信息安全系统设计基础第九周学习总结

    信息安全系统设计基础第九周学习总结 学习时间:7小时 学习内容:课本第十章 一.第十章知识点(1~6) 第一部分:文件的概念及相关操作 1.每个unix文件都是一个m字节的序列:所有I/O设备如网络. ...

  7. 信息安全系统设计基础第二周学习总结

    信息安全系统设计基础第二周学习总结 学习目标 1. 熟悉Linux系统下的开发环境    2. 熟悉vi的基本操作    3. 熟悉gcc编译器的基本原理    4. 熟练使用gcc编译器的常用选项 ...

  8. 信息安全系统设计基础第九周学习总结

    第十章 系统级I/O的实践 学习目标: 代码阅读理解: 1.编译运行代码 2.使用man学习理解相关系统调用, 理解参数.返回值的含义 3.会用grep -nr xxx /usr/include 查宏 ...

  9. 20135219洪韶武——信息安全系统设计基础第四周学习总结

    信息安全系统设计基础第四周学习总结 学习任务:教材第三章 学习时间:10小时 学习内容 一.教材知识梳理 1.程序编码与机器级代码 程序编码: gcc编译器,将源代码转化成可执行代码,C预处理器-汇编 ...

  10. 20135203齐岳 信息安全系统设计基础第四周学习总结

    20135203齐岳 信息安全系统设计基础第四周学习总结 学习计时:共17小时 读书:10 代码:1 作业:3 博客:3 一.学习目标 理解逆向的概念以及 掌握X86汇编基础,能够阅读(反)汇编代码 ...

最新文章

  1. 动画requestAnimationFrame
  2. 远程控制软件 TeamViewer | Windoes和Linux下teamviewer软件互连
  3. 图像传感器与信号处理——SFR算法/ISO 12233解读
  4. python给出数据点进行插值_Python对数据进行插值和下采样的方法
  5. C++相对路径下新建文件夹
  6. Azure 宕机 3 个小时:因人为配置 DNS 失误
  7. 程序开发——结对编程
  8. 百度文库收费文档下载方法
  9. 苹果手机录屏软件_手机录屏软件哪个好 好用的手机录屏软件推荐
  10. 关于紫猫插件的共享网络数据NetData系列搭建环境新版教程
  11. Jumpserver docker部署及踩坑
  12. vSphere Esxi 7.0打包网卡驱动
  13. 第二章:minio单机版,使用客户端备份文件
  14. OpenGL ES2.0 的三种变量类型(uniform,attribute和varying)
  15. 道阻且长,行则将至,行而不辍,未来可期
  16. 十种心态毁掉你的职场生涯
  17. 2023中国科学院大学计算机考研信息汇总
  18. 【大学】我的大学四年
  19. 语法俱乐部2:名词短语与冠词
  20. android画面传输到电视,直播时,怎么把手机画面投屏到电视机,大屏互动更方便?...

热门文章

  1. php ini 长连接秒数,php使用webSocket实现Echarts长连接自动刷新的解决方案(2):后端服务端代码返回json数据...
  2. 数据结构与算法————九九乘法表
  3. Jackson高级操作————流式API与JsonGenerator、JsonParser
  4. 信号的采样与恢复matlab实验报告,实验七 连续信号的采样与恢复
  5. 输出一个整数的逆序数
  6. java 定义和导入包
  7. 鼬电脑壁纸_火影忍者高清壁纸需要自取1080p
  8. 记一次win10下pycharm用tensorboard可视化不显示的问题解决
  9. creo外观库_Proe软件技巧,颜色库下载及其使用方法揭晓
  10. 《springcloud超级入门》微服务的概念和优缺点《一》