乐趣区

关于linux:Linux系统编程训练营1Linux系统概要

再论计算机系统

  • 计算器零碎由”躯体 “和” 灵魂“两局部组成

    • ”躯体“:形成计算机系统的电子设备(硬件)
    • ”灵魂“:指挥”躯体“实现”动作“的指令序列(软件)
  • ”躯体“外围:中央处理器(CPU)
  • ”灵魂“外围:操作系统(OS)
计算机系统的诞生是为了执行数据处理(计算)工作。那么,如何获取计算工作,并反馈工作执行后果?

数据输出与输入是计算机系统不可获取的局部

计算工作执行流程

  • 通过交互设施或网络向计算机系统发动申请
  • 依据申请将工作指令加载进入内存
  • CPU 从内存中取指令,并逐条执行
  • 计算工作的最终后果暂存入内存
  • 内存数据通过交互设施或网络设备进行反馈

操作系统与过程概要

  • 什么是程序?

    • 程序的实质是指令和数据的汇合

      • 指令:批示 CPU 执行动作的命令
      • 数据:CPU 执行动作的操作指标
  • 程序的分类

    • 应用程序:用户可间接应用,为用户提供间接帮忙的程序
    • 程序中间件:少数应用程序的通用性能,用于辅助应用程序的运行
    • 操作系统:间接操作硬件设施,并为应用程序与程序中间件提供运行环境

当代计算机系统架构图

过程 - 程序的执行

  • 通常状况下,程序在操作系统上以过程为单位运行
  • 每个程序运行后由一个或多个过程形成
  • 过程是操作系统工作的根本单元,也是系统资源的根本调配单位
  • 程序是”死“的,过程是”活“的

    • 程序的实质只是二进制数据,不加载执行没有任何价值
    • 过程是计算机系统对程序的一次加载执行,即:执行计算工作的过程

程序 VS 过程

深入浅出驱动程序

应用程序与外部设备

  • 少数状况下,应用程序须要借助外部设备能力实现计算工作
  • 外部设备:除 CPU 与内存之外的其它计算机硬件(如:硬盘,网卡,显卡)

应用程序设施拜访

  • 间接拜访

    • 开发成本高:应用程序必须相熟各类外设的硬件个性
    • 开发周期长:业务逻辑 + 设施逻辑
    • 利用场景难:其它应用程序可能同时拜访外设
  • 间接拜访

    • 应用程序通过软件层(驱动程序)接口以对立形式拜访外设

设施驱动程序

  • 设施驱动程序是外设拜访接口,对应用程序提供对立的外设拜访形式

Linux 设施驱动模型

  • 形象各种外设的个性,简化设施驱动开发方式
  • 设施类型:字符设施,块设施,网络设备,等
  • 对于对立类型的设施,能够通过对立接口进行拜访

Linux 零碎工作模式

Linux 设施驱动模型

存在问题

设施驱动程序并非惟一拜访外设的形式

如何限度过程必须依照规定通过驱动程序拜访外部设备?

Linux 零碎工作模式

内核职责:以对立的形式有序的调配硬件资源,保障用户工作依照冀望的形式执行。
  • 用户模式(User Mode)

    • 执行应用程序公有代码,受限制的拜访内存,无奈间接拜访外部设备
  • 内核模式(Kernel Mode)

    • 执行内核代码,可拜访所有硬件资源,可立刻暂停过程的执行(过程治理)
    • 绝大多数设施驱动程序执行于内核模式

工作模式与零碎调用

Linux 零碎的工作模式:零碎调用(System Call)

  • 应用程序与操作系统内核的间接接口(表现形式为函数)
  • 零碎调用决定了应用程序如何与内核打交道
  • 为什么须要零碎调用

    • 系统资源无限,须要对立有序的调度
    • 多个过程可能拜访同一资源,进而产生抵触
    • 一些特定的性能必须有操作系统内核实现(如:准确延时)
    • 。。。
  • 过程零碎调用后,由用户模式切换到内核模式(执行内核代码)
  • 工作模式的转变通常由中断触发(不同于一般函数调用)
  • 用户过程通过零碎调用申请内核实现资源分配,硬件拜访等操作
  • 所有过程申请集中到内核,内核可对立调度解决,协调过程的执行

Linux 零碎编程概要

Linux 零碎的工作模式

计算机系统缩影

Linux 零碎编程

波及的内容

退出移动版