安全架構與設計/計算機系統架構
外觀
< 安全架構與設計
計算機系統由不同型別的元件組成,例如硬體、軟體、作業系統和韌體。
最重要的和最常見的元件是
- 硬體元件,如:CPU、儲存裝置、I/O 裝置、通訊裝置
- 軟體元件,如:作業系統、應用程式
- 韌體
概述
- 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 快,貴,用於快取記憶體。
- 動態 RAM - 使用電容器,這些電容器必須定期重新整理才能保持資料,速度慢。
- RAM 型別
只讀儲存器
- 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 類別
- 虛擬機器根據其用途和與任何真實機器的對應程度,分為兩大類。
- 系統虛擬機器提供一個完整的系統平臺,支援執行完整的作業系統。
- 程序虛擬機器旨在執行單個程式,這意味著它支援單個程序。