信息安全系统设计与实现第一周:《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语言程序
该部分我个人阅读后感觉和大二上学期学习的数据结构有较强关联,知识要重在复习与应用。