2021-2022-1 20191315《信息安全系统设计与实现(上)》学习笔记1

第一章 引言

系统编程

本书目标

  • 强化编程背景知识
  • 动态数据结构应用:C结构、指针、链表、链树
  • 进程概念和进程管理
  • 并行计算:线程
  • 定时器和定时功能
  • 信号、信号处理和进程间通信
  • 文件系统
  • TCP\IP和网络编程:TCP\IP协议、套接字API、UDP和TCP套接字编程,以及网络计算中的服务器-客户机模型

Unix

  • AT&T Unix
  • Berkeley Unix
  • HP Unix
  • IBM Unix
  • Sun Unix

Linux

  • Debian Linux
  • Ubuntu Linux
  • Linux Mint
  • 基于RPM的Linux
  • Slackware Linux

虚拟机上的Linux

  • VirtualBox
  • VMware
  • 双启动的Slackware和Ubuntu Linux

使用linux

  • Linux内核映像:vmlinuz-generic-VERSION_NUMBER *一个可启动的内核映像有三部分组成:|BOOT|SETUP|linux kernel|
  • 启动程序:GRUB LILO HD
  • 启动
  • 运行级别:单用户模式启动
  • 登录进程:三个文件流stdin、stdout、stderr,等待用户登录
  • 命令执行:执行命令解释程序sh,后者将提示用户执行命令

使用Ubuntu Linux

  • Unix\Linux文件系统组织
    树形组织结构

  • 命令

  • 手册页

Ubuntu Linux系统管理

  • 用户账户
  • 添加新用户:sudo adduer username
  • sudo命令

第二章 编程背景

文本编辑器

  • vim
  • gedit
  • emacs

程序开发

开发步骤

  1. 创建源文件
  2. 用gcc把源文件转换成二进制可执行文件a.out

什么是gcc

一个程序,包含三个步骤:将源文件转换为汇编代码文件;把汇编代码转换成目标代码;链接

静态与动态链接

创建二进制可执行文件的方式有两种:静态链接和动态链接分别使用静态库和共享库。

可执行文件格式

  • 二进制可执行平面文件
  • a.out可执行文件
  • ELF可执行文件

a.out文件的内容

  • 文件头、代码段、数据段、符号表

程序执行过程

  1. 读取a.out文件,一标记字符串作为命令行参数
  2. sh从总大小中分配一个内存区给执行映像
  3. sh放弃旧映像,开始执行新映像
  4. 执行从crt0.o开始,调用main,将argc和argv作为采纳数传递给main

程序终止

  • 正常终止
  • 异常终止

链接库

  • 静态链接库
  • 动态链接库

makefile

make工具是一个程序,它按照顺序读取makefile,以自动有选择的执行编译链接

  • 格式
    make文件有一系列目标项、依赖项和规则组成

  • 程序
    当make程序读取makefile时,通过比较依赖项列表中源文件的时间戳来确定要构建哪些目标项

GDB调试工具

C语言相关知识

  • 函数调用
  • 结构体指针
  • 链表处理
  • 树、二叉树
posted @ 2021-09-12 20:05  绒绒的欧嘛harper  Views(62)  Comments(0Edit  收藏  举报
*/