首页 > 其他分享 >《信息安全系统设计与实现》第一周学习笔记

《信息安全系统设计与实现》第一周学习笔记

时间:2023-09-10 16:45:21浏览次数:33  
标签:可执行文件 编程 第一周 信息安全 笔记 源文件 Unix Linux out

第一章 引言

  • 关于本书

    • 本书是一部研究Unix/Linux系统编程的专注
  • 系统编程的作用

    • 系统编程是计算机科学和计算机工程教育不可或缺的一部分
  • 本书目标

    • 强化学生变成背景知识

    • 动态数据结构的应用

    • 进程概念和进程管理

    • 并发编程

    • 定时器和定时功能

    • 信号、信号处理和进程间通信

    • 文件系统

    • TCP/IP和网络编程

  • Unix

    • Unix是一种通用操作系统

    • AT&T Unix

    • Berkeley Unix

    • HP Unix

    • IBN Unix

    • Sun Unix

  • Linux

    • Linux是一个类Unix系统

    • Debian Linux

    • Ubuntu Linux

    • Linux Mint

    • 基于RPM的Linux

    • Slackware Linux

  • 虚拟机上的Linux

    • VirtualBox

    • VMware

    • 双启动Slackware和Ubuntu Linux

  • Unix/Linux命令

  • Ubuntu Linux系统管理

    • 用户账户

    • 添加新用户

    • sudo命令

第二章 编程背景

  • Linux中的文本编辑器

    • vim
      命令模式:用于输入命令
      插入模式:用于输入和编辑文本
      末行模式:用于保存文件并退出
      相关命令:

    • gedit

    • emacs

      • 一款强大的文本编辑器,可在多个不同的平台上运行
  • 程序开发步骤

    • 创建源文件

    • gcc把源文件转成二进制可执行文件

    • gcc三个步骤

      • 将源文件转换为汇编代码
      • 将汇编代码转换成目标代码
      • 将目标代码转换成二进制可执行文件
    • 苏格拉底挑战:
      以下是关于程序开发步骤的苏格拉底挑战

      以下是关于gcc三个步骤的苏格拉底挑战

  • 静态和动态链接

    • 动态链接
      • 可以减小每个a.out文件大小

      • 许多执行程序可以在内存中共享相同库函数

      • 修改库函数不需要重新编译源文件

  • 可执行文件格式

    • 二进制可执行平面文件

      • 仅包含可执行代码和初始化数据
    • a.out可执行文件

      • 传统的a.out文件包含文件头、代码段、数据段、bss段、符号表
    • ELF可执行文件

      • 可执行的链接格式文件,包含一个或多个程序段,每个程序段均可可加载至特定的内存地址。在Linux中,默认的二进制可执行文件为ELF文件
  • 程序执行过程

    • 读取a.out文件头(如TotalSize = _brk + stackSize

    • sh从大小中分配一个内存区给执行对象

    • 放弃旧映像,开始执行新映像

    • 执行从crt0.o开始,调用main(),将argc和argv作为参数传递给main(),可以写成int main( int argc,char *argv[] ){ .... }

  • 程序终止

    • 正常终止

      • 如果程序执行成功,main()最终会返回到crt0.out,调用库函数exit(0)来终止进程
    • 异常终止

      • 遇到错误,如无效地址,非法指令,越权等

      • 按下ctrl+C可以产生硬件中断

      • 使用命令kill -s signal_number pid 或者 #signal_number=1 to 31向通过pid识别的目标进程发送信号

标签:可执行文件,编程,第一周,信息安全,笔记,源文件,Unix,Linux,out
From: https://www.cnblogs.com/wjdnmx/p/17691183.html

相关文章

  • 【学习笔记】折半搜索 Meet In The Middle
    点击查看目录目录算法实现杂题乱写[CEOI2015Day2]世界冰球锦标赛题单oi-wiki算法实现我们正常的搜索应该是一个指数级的:\(2^n\)。然而我们可以把这个搜索拆成两半,设小于整张图的限制\(limit\)为合法:对于上半搜索,我们有若干符合限制的答案\(sum_1\),对于下半搜索,我......
  • 《信息安全系统设计与实现》第一周学习笔记
    《信息安全系统设计与实现》第一周学习笔记第一章关于本书介绍Unix/Linux的功能,着重探讨了编程实践,让学生通过实践来练习系统编程,涵盖Unix/Linux的所有基本组件,包括进程管理、并发编程、定时器和时钟服务、文件系统、网络编程和MySQL数据库系统。系统编程的作用系统编......
  • springcloud学习笔记
    一、 微服务注册中心Eureka1. Eureka介绍  SpringCloud Eureka是微服务的注册中心,可以管理数据提供者和消费者  说明:    ① Eureka Server是服务端,负责管理各个微服务的注册和发现    ② 需要在Eureka Client中添加响应Eureka配置或代码,微服务启动时就会找到......
  • springcloud学习笔记
    一、 微服务注册中心Eureka1. Eureka介绍  SpringCloud Eureka是微服务的注册中心,可以管理数据提供者和消费者  说明:    ① Eureka Server是服务端,负责管理各个微服务的注册和发现    ② 需要在Eureka Client中添加响应Eureka配置或代码,微服务启动时就会找到......
  • 【刷题笔记】46. Permutations
    题目Givenacollectionof distinct integers,returnallpossiblepermutations.Example:Input:[1,2,3]Output:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]题目大意给定一个没有重复数字的序列,返回其所有可能的全排列。解题思路求出一......
  • LeetCode刷题笔记
    算法1.差分数组+前缀和1589.所有排列中的最大和-力扣(LeetCode)对于每一次遍历都有m个数需要加1,如果对这些数遍历,则需要O(m)复杂度,此时可以记录这m个数的差分数组:​ 这样就可以把时间复杂度缩小到O(1),之后求前缀和就可以得到原来的数组。2.线性筛(欧拉筛)求素数2601.质数减法......
  • 学习linux系统中的一些笔记(持续更新)
    快捷键: CTRL+ALT+T 打开终端 CTRL+SHIFT+T 新建标签页 ALT+数字N 终端中切换到第N个标签页 TAB 终端中命令补全,输入开头补全 上下键盘 切换命令历史 CTRL+C 中断程序运行Linux命令 命令格式:command[option][arguments](选项和参数) 其中选项(option)是......
  • 二分笔记
    二分优点,加快在有序数列中,蓝红区域的扩展,朴素算法缓慢进行.如何扩展,用灰色区域的中点来判断,然后扩展颜色区域,灰色区域会不断减少,只要logn次就能把灰色区域长度缩小为0  l在哪里,哪里就是蓝色,r同理,假设没有蓝色区域,赋值0(保留了一个位置)会导致,扩展过程中,红色......
  • CMU15721 笔记:Project 1 - Foreign Data Wrapper
    CMU15-721Project1-ForeignDataWrapperPre2003年,SQL标准中增加了一个访问远程数据的规范,称为外部数据的SQL管理(SQL/MED)。从9.1版开始,PostgreSQL就开始开发这个特性来实现SQL/MED的一部分。在SQL/MED中,远程服务器上的表称为外部表。PostgreSQL的外部数据包裹......
  • 第一、二章学习笔记
    Unix/Linux系统编程学习笔记第一章、第二章知识点归纳以及最有收获的内容一.进程与线程Unix/Linux系统中,进程是程序的执行实例,而线程是进程内的执行单元。进程之间通常是独立的,而线程共享进程的资源。最大的收获是理解了进程与线程之间的区别,以及它们如何协同工作。进程(Proc......