---
# System prepended metadata

title: 硬體保護(Hardware protection)

---

是一種在計算機系統中使用的保護機制，旨在保護系統的硬體資源免受非授權訪問、損壞或不正確使用。

* 雙模式作業 (Dual-Mode Operation)

* 輸入/輸出保護 (I/O Protection)
* Memory保護 (Memory Protection)

* CPU保護 (CPU Protection)

## 雙模式作業(Dual-Mode Operation)
要保護什麼？
> 共享系統資源需要OS保證一個不正確的程序不能導致其他程序錯誤執行

提供硬件支持以區分至少兩種作業模式

1. 用戶模式（User Mode） - 代表用戶執行
2. 監控模式 (Monitor mode)（也可以是核心模式 (Kernel mode)或系統模式 (System mode)） - 代表作業系統執行
    * 用戶模式（User Mode）
    * 核心模式（Kernel Mode，也稱為監控模式或特權模式）。
    
**每個模式具有不同的特權和對系統資源的存取權限。**

* 用戶模式（User Mode）：
    * CPU以受限特權運行，對系統資源的存取有限。
    * 確保用戶應用程序無法干擾關鍵系統功能或直接存取敏感資源。

* 監控模式 (Monitor mode)(核心模式（Kernel Mode）)：
    * Monitor mode允許操作系統執行特權操作，如訪問硬件設備、管理Memory和處理中斷。
    * Monitor mode提供了必要的特權，用於控制和管理整個系統。

![](https://hackmd.io/_uploads/Bkm_sOId2.png)

* 特權指令（Privileged Instructions）
    * 僅在監視模式下執行
    * 用戶請求需 **System calls**
        
        * **System Call** 是作業系統提供給應用程序的一種介面，用於執行特定的系統功能或訪問受保護的系統資源。應用程序通過系統呼叫向操作系統發出請求，以完成需要特權或系統級別權限的操作。

### 總的來說，特權指令的目的是提供一組有限的指令和操作，僅限於操作系統核心執行，以保護系統資源、確保系統運作的穩定性和安全性

## I/O保護（Input/Output Protection）

所有I/O指令均為特權指令
> 任何I/O設備在用戶之間共享
必須確保用戶程序永遠無法在 Monitor mode 下獲得對計算機的控制（即，用戶程序作為其執行的一部分，在中斷向量中存儲新地址）

## Memory保護（Memory Protection）

Memory 保護
保護每個進程或應用程序的Memory，防止其他進程干擾或未經授權地存取Memory。

* 硬件支持：兩個用於確定合法地址的寄存器：
    * 基址寄存器 — 保存最小的合法物理內存地址
    * 限制寄存器 - 包含範圍的大小

* 超出定義範圍的 Memory 則會被 protected 判定無效


![](https://hackmd.io/_uploads/ryPkkqUd2.png)

## CPU保護（CPU Protection）

防止 User 程序不返回控制權
> 陷入無限循環
> 不調用系統服務

硬件支持：Timer 在指定時間段中斷計算機
> 計時器在每個時鐘週期內遞減
> 當定時器到達值0時，發生中斷

Timer常用來實現 time sharing
加載 Timer 是一條特權指令