信息安全系统设计与实现第一周:《Unix/Linux系统编程》第一、二章学习笔记

第一章 引言

1.Unix的历史介绍与Linux历史版本介绍

2.VMware虚拟机的安装

3.Linux与Ubuntu Linux的使用

安装Linux操作系统

Linux文件系统

Linux常用命令

Linux启动过程详解

Linux基本命令实践

第二章 编程背景

1.基于GUI的文本编辑器

2.程序开发的步骤

GCC

使用gcc将创建好的源文件转换为二进制可执行文件(a.out文件)

问题:gcc是什么?

gcc是一个程序 主要包含三个步骤:C源文件(.c)通过第一步编译器转换为汇编代码文件(.s),再通过第二步汇编器生成目标代码(.o),最后由链接器生成a.out。


参考到的博文

问题:a.out文件的内容?

  • 文件头:包含文件加载信息和大小
  • 代码段:包含程序的可执行代码,调用main函数
  • 数据段:包含初始化全局变量和初始化静态数据
  • 符号段(可选)

静态与动态链接

相比于静态链接将所有必要的库函数代码和数据放入a.out文件中,动态链接的有点有:

  • 可减小每个a.out文件的大小
  • 许多执行程序可在内存中共享相同的库函数(动态链接库DLL)
  • 修改库函数不需要重新编译源文件

程序执行

程序终止

3.C语言函数调用惯例与运行时堆栈的使用

参数传递、局部变量与栈帧

结构体

链表

树与二叉树

使用GDB工具调试C语言程序

该部分我个人阅读后感觉和大二上学期学习的数据结构有较强关联,知识要重在复习与应用。

posted @ 2021-09-12 15:29  20191308_chuuuuer  阅读(53)  评论(0编辑  收藏  举报