20155208 2017-2018-1 《信息安全系统设计基础》第三周学习总结

教材学习内容总结

课上知识点及实践

  • 知识种类:50%元知识+10%20%硬知识+30%40%软知识
  • 打开命令快捷键:control+Alt+T
  • ls指令:

ls:打开当前文件夹,我们可以用ls -a .显示当前目录中的所有内容,包括隐藏文件和目录。其中“-a” 就是选项,改变了显示的内容。如图所示:

  • man命令:

man命令可以查看帮助文档,如 man man :

  • gcc命令(重点):

    GCC相关概念:GNU CC(简称为gcc)是GNU项目中符合ANSI C标准的编译系统,能够编译用C、C++和Object C等语言编写的程序。

    gcc--编译

    gcc -E hello.c -o hello.i -- 编译预处理

    gcc -S hello.i -o hello.s -- 汇编代码

    gcc -C hello.o -o hello.o -- 转变成机器码

    gcc hello.o -o hello -- 编译指定程序

** 简述简单编译流程:**

第一步gcc会调用预处理程序cpp,由它负责展开在源程序中定义的宏(上例:#include <stdio.h>),向其中插入#include语句所包含的内容(原地展开stdio.h包含的代码)

第二步,将hello.i编译为目标代码,gcc默认将.i文件看成是预处理后的C语言源代码,因此它会直接跳过预处理,开始编译过程。

第三步,gcc连接器将目标文件链接为一个可执行文件,一个大致的编译流程结束。

断点的设置 : 设置断点

  • break 命令用来设置断点

  • 通过行号设置断点

  • break 行号,断点设置在该行开始处,注意:该行代码未被执行。

  • break 文件名 : 行号,适用于有多个源文件的情况。

  • 通过函数设置断点

  • break 函数名,断点设置在该函数的开始处,断点所在行未被执行。

  • break 文件名 : 函数名,适用于有多个源文件的情况

教材学习中的问题和解决过程

问题: 按照老师要求,在虚拟机中运行简单的C语言程序,开始时不知道怎么运行hello.c程序。

解决过程: 后来使用./a.out hello进行运行,运行成功如下:

其他(感悟、思考等,可选)

又到了新一个学期的学习,上个学期的java学习让我学到了一些东西,并且后来的java实习也让我进一步巩固了这些知识,我懂得了无论什么样的学习,都要付诸于实践,我要告诉我自己,这个学期一定要多动手,多实践,只有这样才能真正掌握知识。

学习进度条

 代码行数(新增/积累)博客量(新增/积累学习时间(新增/累积)
目标 5000行 30篇 400小时
第一周 5/5 1/1 8/8

参考资料

《深入理解计算机系统V3》学习指导