zoukankan      html  css  js  c++  java
  • 信息安全系统设计与实现第一周:《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语言程序

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

  • 相关阅读:
    numpy基础篇-简单入门教程4
    杭电oj 多项式求和
    杭电oj 素数判定
    杭电oj 水仙花数
    杭电oj 求数列的和
    杭电oj 数值统计
    杭电oj 平方和与立方和
    杭电oj 求奇数的乘积
    杭电 oj 第几天?
    杭电 oj 成绩转换
  • 原文地址:https://www.cnblogs.com/ckx1212-20191308/p/15258269.html
Copyright © 2011-2022 走看看