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语言程序

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

  • 相关阅读:
    小程序模板template问题记录
    datepicker 组件 的坑
    js实现 throttle 和 debounce
    vuex简单使用
    webpack 打包图片 缺失问题
    invalid prop `current` of type `string` supplied to `pagination`, expected `
    HTML5自定义属性之data-*
    vue组件传值方式介绍
    解决github.com 打不开问题
    git密令使用
  • 原文地址:https://www.cnblogs.com/ckx1212-20191308/p/15258269.html
Copyright © 2011-2022 走看看