跳转到内容

安全架构与设计/计算机系统架构

来自维基教科书,开放的书籍,开放的世界

计算机系统架构

[编辑 | 编辑源代码]

计算机系统由不同类型的组件组成,例如硬件、软件、操作系统和固件。

最重要的和最常见的组件是

  • 硬件组件,如:CPU、存储设备、I/O 设备、通信设备
  • 软件组件,如:操作系统、应用程序
  • 固件

中央处理器 (CPU)

[编辑 | 编辑源代码]

概述

  • CPU 是计算机的大脑。
  • 它从内存中获取指令并执行它们
  • 每种 CPU 类型都有自己的指令集和架构

CPU 组件

  • 寄存器:是临时存储位置,可以存储对内存位置的引用、要执行的下一条指令等,还可以让 CPU 保持其状态信息。
  • 算术逻辑单元 (ALU):对数据执行实际的复杂数学函数和逻辑运算。
  • 控制单元:在执行不同的应用程序代码和操作系统指令时管理和同步系统。它获取代码、解释代码并监督不同指令集的执行。它决定要处理哪些应用程序指令以及优先级和时间片。它控制何时执行指令,而这种执行使应用程序能够处理数据。
  • 通用寄存器:用于在 ALU 执行其执行步骤时保存变量和临时结果。
  • 专用寄存器:(专用寄存器) 保持程序计数器、堆栈指针和程序状态字 (PSW) 等信息
    • 程序计数器 (PC):寄存器包含要获取的下一条指令的内存地址
    • 程序状态字 (PSW):保存不同的条件位。其中一位指示 CPU 应该在用户模式(也称为问题状态)还是特权模式(也称为内核或超级用户模式)下工作。
    • 堆栈指针:指示 CPU 下一个数据块的位置。
  • 地址总线:是系统中 RAM 芯片和各个 (I/O) 设备的硬连线连接。它被 CPU 用于指示要处理的指令的位置。
  • 数据总线:用于响应 CPU 对所请求位置的数据的请求,由内存或 I/O 设备发送数据。

概述

  • 存储设备是一种能够存储数据的硬件设备。
  • 存储设备可以分为 3 类
    • 主存储器或内存:CPU 可以直接访问,例如高速缓存内存 (L1、L2、L3)、主内存 (RAM)
    • 辅助存储器:永久性存储设备,如硬盘、软盘、CD、DVD、闪存、ZIP 驱动器等。
    • 三级存储 : 磁带

随机存取内存

  • RAM 由操作系统和应用程序程序临时存储数据和程序指令。
  • 它被称为易失性,因为如果计算机的电源供应中断,则此类内存中的所有信息都会丢失。
    • RAM 类型
      • 动态 RAM - 使用电容器,这些电容器必须定期刷新才能保持数据,速度慢。
        • 同步 DRAM (SDRAM) - CPU 的时序和内存活动的时序同步。一次只能访问一个块。
        • 扩展数据输出 DRAM (EDO DRAM) - 可以捕获下一个数据块,同时第一个数据块正在被发送到 CPU 进行处理,比 SDRAM 快。
        • 突发 EDO DRAM (BEDO DRAM) - 在 EDO DRAM 之上构建。它在少量时钟周期内读取和发送多达四个内存地址。
        • 双数据速率 SDRAM (DDR SDRAM) - 在时钟脉冲的上升沿和下降沿执行读取操作。速度是 SDRAM 的两倍
      • 静态 RAM - 使用更多晶体管,比 DRAM 快,贵,用于高速缓存。

只读存储器

  • ROM 是非易失性内存。存储在这些内存中的指令称为固件。
  • ROM 类型
    • 可编程只读存储器 (PROM) - 只可以在制造后编程一次。
    • 可擦除可编程只读存储器 (EPROM) - 可以擦除、修改和升级。
    • 闪存 - 一种特殊类型的内存,用于数码相机、BIOS 芯片、笔记本电脑的内存卡和视频游戏机。它更多地用作硬盘而不是内存。

高速缓存内存

  • 高速缓存内存是一种更小、更快的内存,它存储来自最常使用的主内存位置的数据副本。
  • 高速缓存级别
    • L1 高速缓存 - 位于 CPU 内
    • L2 高速缓存 - 位于 CPU 和主内存 (RAM) 之间
    • L3 高速缓存 - 可以是具有比 RAM 更快访问时间的外部管理内存。
  • 高速缓存类型
    • 预取高速缓存 (P-Cache) - 用于存储作为预取操作结果而带来的数据
    • W-Cache - 充当存储数据的暂存站。
    • 指令高速缓存 - 用于存储指令。
    • 数据高速缓存 - 存储数据
    • 转换旁路缓冲器 (TLB) - 存储虚拟页面地址到有效物理地址的转换地址。
  • 高速缓存组织 - 描述行组织和替换策略
    • 直接映射 - 进入的高速缓存行的 (虚拟或物理) 内存地址控制将使用哪个高速缓存位置。会导致抖动。
    • 全相联 - 基于 LRU 策略,其中替换 LRU 行。
    • 组相联 - 使用多个直接映射高速缓存或组。高速缓存控制器决定行将进入哪个组。在组内,使用直接映射方案来分配高速缓存中的一个槽。

虚拟内存

  • 虚拟内存是一种逻辑内存,它让应用程序程序认为它拥有一个连续的工作内存。
  • VM 通过分配一个称为交换空间的硬盘空间的单独部分,在逻辑上扩展了 RAM 的功能。

操作系统

[编辑 | 编辑源代码]

概述

  • 操作系统为应用程序和用户提供了一个工作环境。
  • 它负责管理底层硬件组件、内存管理、I/O 操作、文件系统、进程管理以及提供系统服务
  • 操作系统架构
    • 单片操作系统架构 - 主要由各种过程组成,这些过程可以以杂乱无章的方式相互调用,只提供单层安全性。例如,DOS。
    • 分层操作系统 - 将系统功能划分为分层层次,提供数据隐藏,提供多层安全性。例如,Unix。
      • 第 0 层控制对处理器的访问并提供多道程序功能
      • 第 1 层执行内存管理
      • 第 2 层提供进程间通信
      • 第 3 层处理 I/O 设备,以及
      • 第 4 层是应用程序所在的地方
    • 基于微内核 - 操作系统功能被划分为在用户模式而不是内核模式下运行的多个不同进程。进程在 C/S 模型中进行通信。服务器进程被称为子系统,为用户进程和其他操作系统进程提供服务。例如,Windows 2000。

进程管理

  • 进程是正在执行的程序,由操作系统加载和启动。它包含一组指令和分配的资源。
  • 创建进程时,操作系统会为其分配资源,例如内存段、CPU 时间段(中断)、对系统应用程序编程接口 (API) 的访问以及要交互的文件。
  • 进程状态:进程可以在运行状态(CPU 正在执行其指令和数据)、就绪状态(等待向 CPU 发送指令)或阻塞状态(等待输入数据,例如来自用户的按键)下运行。
  • 进程表:一个数据结构,包含每个单独进程的状态、堆栈指针、内存分配、程序计数器以及正在使用的打开文件的状况。
  • 线程:线程是程序执行的单位。相反,进程是单个执行线程。线程由单个指令集和 CPU 需要处理的数据组成。一个进程的所有线程共享创建它们的进程的资源。
  • 进程调度:管理不同进程之间如何通信(或同步),以克服死锁条件。

内存管理

  • 内存管理的主要目标是
    • 为程序员提供抽象级别
    • 在可用内存有限的情况下最大限度地提高性能
    • 保护加载到内存中的操作系统和应用程序
  • 内存管理器有五项基本职责
    • 重新定位
      • 根据需要将内容从 RAM 交换到硬盘
      • 如果应用程序的指令和内存段已移至主内存中的其他位置,则为应用程序提供指针
    • 保护
      • 限制进程仅与分配给它们的内存段进行交互
      • 提供对内存段的访问控制
    • 共享
      • 使用复杂的控制措施来确保进程需要使用相同的共享内存段时的完整性和机密性
      • 允许许多具有不同访问级别的用户与在同一个内存段中运行的同一个应用程序进行交互
    • 逻辑组织
      • 允许共享特定的软件模块,例如动态链接库 (DLL) 过程
    • 物理组织
      • 将物理内存空间细分为应用程序和操作系统进程

I/O 设备管理

  • I/O 设备通常被认为是块设备或字符设备。
  • 块设备以固定大小的块处理数据,每个块都有其唯一的地址。例如,磁盘驱动器。
  • 字符设备(例如打印机、网络接口卡或鼠标)以字符流的形式工作,不使用任何固定大小。此类型的数据不可寻址
  • 操作系统可以管理软件 I/O 过程的不同方式。
    • 程序化 I/O - CPU 将数据发送到 I/O 设备并轮询设备以查看它是否准备好接受更多数据。如果设备尚未准备好接受更多数据,则 CPU 会浪费时间等待设备准备好。非常慢
    • 中断驱动的 I/O - CPU 将字符/块发送到设备,然后转而处理另一个进程的请求。当设备完成其工作时,它会向 CPU 发送中断。CPU 停止正在执行的操作,发送下一个块/字符,然后继续执行,直到设备处理完整个作业。大量的中断处理开销。
    • 使用 DMA 的 I/O - DMA 控制器将字符从内存馈送到设备,而不打扰 CPU。此方法有时称为未映射 I/O。

操作系统保护机制

  • CPU 模式
    • CPU 模式也称为处理器模式或 CPU 特权级别,是某些计算机体系结构的中央处理单元的操作模式,对当前在 CPU 中运行的进程可以执行的操作施加限制。这种设计允许操作系统以不同的特权级别运行,例如内核模式、用户模式、主模式等。
  • 保护环
    • 保护环是同心圆环,为在每个环中工作的进程可以访问的内容及其可以成功执行的操作提供严格的边界和定义。
    • 在内环中运行的进程比在外环中运行的进程具有更多特权,因为内环只允许最受信赖的组件和进程在其中运行。
    • 保护环支持多任务操作系统可用性、完整性和机密性要求。
    • 最常用的体系结构提供四个保护环
      • 环 0 操作系统内核
      • 环 1 操作系统的剩余部分
      • 环 2 I/O 驱动程序和实用程序
      • 环 3 应用程序和用户活动
  • 内存保护
    • 限制进程仅与分配给它们的内存段进行交互
    • 提供对内存段的访问控制
  • 进程隔离
    • 确保进程不会“踩到彼此的脚趾”,不会影响彼此的生产力,从而以不安全的方式进行通信。
    • 进程隔离的方法
      • 对象封装 - 任何其他进程都不了解或与进程的内部编程代码交互。
      • 共享资源的时间复用 - 允许进程以时间共享的方式使用相同的资源。
      • 命名区别 - 不同的进程有自己的名称或标识值,称为 PID
      • 虚拟映射 - 每个进程都有自己的虚拟内存地址空间。
    • 域定义为主体能够访问的一组对象。
    • 域可以是用户可以访问的所有资源、程序可用的所有文件、进程可用的内存段或应用程序可用的服务和进程。
    • 驻留在特权域中的进程需要能够执行其指令并处理其数据,同时确保不同域中的程序不会对其环境产生负面影响。这称为执行域
    • 信任级别越高,可用的资源或对象数量就越大

概述

  • 固件是嵌入硬件设备中的计算机程序
  • 与软件一样,它是由微处理器或微控制器执行的计算机程序。但它也与硬件紧密相连,在硬件之外几乎没有意义。

BIOS

  • BIOS 指的是个人计算机在首次通电时运行的固件代码。
  • BIOS 的主要功能是识别和初始化组件硬件(如硬盘、软盘和光盘驱动器)。这是为了准备机器,以便存储在各种介质上的其他软件程序可以加载、执行并接管 PC 的控制权。此过程称为引导或启动,它是引导的简写形式。

ROM 映像

  • ROM 映像或简称为 ROM 是一个计算机文件,其中包含来自只读存储器芯片(通常来自视频游戏卡带、计算机固件或街机游戏的主板)的数据副本。
  • 该术语通常用于模拟的上下文中,其中较旧的游戏或计算机固件被复制到现代计算机上的 ROM 文件中,并且可以使用称为模拟器的软件在较新的计算机上运行。

虚拟机

[编辑 | 编辑源代码]

概述

  • 虚拟机 (VM) 是机器(计算机)的软件实现,它像真实机器一样执行程序
  • 虚拟机的基本特征是,内部运行的软件仅限于虚拟机提供的资源和抽象 - 它无法突破其虚拟世界

VM 类别

  • 虚拟机根据其用途和与任何真实机器的对应程度,分为两大类。
    • 系统虚拟机提供一个完整的系统平台,支持执行完整的操作系统。
    • 进程虚拟机旨在运行单个程序,这意味着它支持单个进程。
华夏公益教科书