1 / 127

Ch. 2 Windows 系統總述

Ch. 2 Windows 系統總述. Team 1 995202072 施政延 995202076 張雅晴 995202091 黃俊凱 995292098 朱慶翔 985302024 黃郁偉 965302018 蔣念慈 995202068 張逸文 995202093 薛宇翔. Introduction. Windows 系統的基本架構 WRK ( Windows Research Kernel ) Windows 基本概念 Windows 核心公用管理設施 Windows 的啟動過程. Outline.

kamal
Télécharger la présentation

Ch. 2 Windows 系統總述

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Ch. 2 Windows 系統總述 Team 1 995202072 施政延 995202076 張雅晴 995202091 黃俊凱 995292098 朱慶翔 985302024 黃郁偉 965302018 蔣念慈 995202068 張逸文 995202093 薛宇翔

  2. Introduction Windows系統的基本架構 WRK(Windows Research Kernel) Windows基本概念 Windows核心公用管理設施 Windows的啟動過程

  3. Outline 2.1 現代作業系統的基本架構 2.2Windows系統架構 2.3 關於Windows研究核心 2.4Windows核心的基本概念 2.5 核心中的公用管理設施 2.6 啟動過程

  4. Outline 2.1 現代作業系統的基本架構 2.2Windows系統架構 2.2.1 Windows核心架構 2.2.2 Windows核心中的關鍵元件 • HAL • 核心

  5. 現代作業系統的基本架構 • 作業系統屬於軟體的範疇 • 提供一層抽象介面 • 負責硬體資源的管理和分配

  6. IPC IPC 應用環境 應用 應用 應用 系統服務 系統核心 系統擴充 系統環境 驅動程式 驅動程式 驅動程式 驅動程式 硬體抽象 硬體設備 鍵盤/滑鼠 顯示器 硬碟 網路 圖2.1現代作業系統的基本架構

  7. 應用環境 應用 應用 應用 系統服務 系統核心 系統擴充 系統環境 驅動程式 驅動程式 驅動程式 驅動程式 硬體抽象 硬體設備 鍵盤/滑鼠 顯示器 硬碟 網路 圖2.1現代作業系統的基本架構

  8. 應用環境 應用 應用 應用 系統服務 系統核心 系統擴充 系統環境 驅動程式 驅動程式 驅動程式 驅動程式 硬體抽象 硬體設備 鍵盤/滑鼠 顯示器 硬碟 網路 圖2.1現代作業系統的基本架構

  9. 應用環境 應用 應用 應用 系統服務 系統核心 系統擴充 系統環境 驅動程式 驅動程式 驅動程式 驅動程式 硬體抽象 硬體設備 鍵盤/滑鼠 顯示器 硬碟 網路 圖2.1現代作業系統的基本架構

  10. Windows系統架構 • 擴充性 • 安全性 • 雙模式 • 使用者模式 • 核心模式 • 支援多環境子系統

  11. 系統和服務行程 用戶應用程式 設備驅動程式 Windows子系統行程 系統DLL NTDLL.DLL 使用者模式 核心模式 執行體 (Executive) Windows子系統核心模組 核心 (或微核心) 硬體抽象層 (HAL) 圖2.2 Windows系統架構圖

  12. 子系統DLL NTDLL.DLL 裝置驅動程式 使用者模式 系統服務 核心模式 子系統服務 Windows子系統 視窗管理 圖形介面 執行體API 記憶體管理員 行程和緒程管理員 即插即用管理員 安全參照監視器 快取管理員 本地程序呼叫(LPC) 組態管理員(登錄) I/O管理員 檔案系統 網路 物件管理員 圖形驅動程式 核心 (或微核心) 硬體抽象層 (HAL) 圖2.3 Windows核心組成架構圖

  13. Windows核心架構(#1) • 執行體 API 函式會接收來自各應用程式的參數 • 參數的有效性 • 指標指向可存取的記憶體 • 在函式開頭檢查參數

  14. Windows核心架構(#2) PreviousMode = KeGetPreviousMode ( ); if ( PriviousMode != KernelMode ) { try { ProbeForWrite ( InputInformation, InputInformaitonLength, sizeof ( ULONG )); if ( ARGUMENT_PRESENT ( ReturnLength ) { ProbeForWriteUlong (ReturnLength ) ; } } except ( EXCEPTION_EXECUTE_HANDLER ) { return GetExceptionCode ( ) ; } }

  15. Windows核心架構(#3) 0xffffffff 系統位址空間 Kernel mode 4GB 0x7fffffff 不可存取 <= 64KB 0x7fff0000 行程位址空間 User mode 2GB 0x00000000

  16. Windows核心中的關鍵元件(#1) • HAL (硬體抽象層) • 使Windows更容易被移植到不同硬體平台上 • 獨立的動態連結程式庫

  17. Windows核心中的關鍵元件(#2) • 核心 (或微核心) • ntoskrnl.exe的下層部分 • 緒程排程和中斷、例外的處理 • 在multi-processor中 => 同步處理器之間的行為 • C語言、組合語言為主 • 先佔式緒程排程機制 • 基本優先順序值 • 動態優先順序值 • 物件導向 • 發送器物件 • 控制物件

  18. Outline 2.2Windows系統架構 2.2.2 Windows核心中的關鍵元件 • 執行體 2.5 核心中的公用管理設施 2.5.1 Windows 核心中的物件管理

  19. 執行體 API(executive) • 執行體是內核模組ntoskrnl.exe的上層部分,目的在於提供一些可供上層應用程式或內核驅動程式直接調用的功能和語意。 • 包含5種類型的函數: • 被導出的、可在用戶模式下調用的函數 • 雖已被導出並且可在用戶模式下調用,但無法通過任何一個Windows API 來調用的函數 • 只能在內核模式下調用的導出函數,並且在 Windows DDK 中有關於這些函數的文檔 • 供執行體元件之間相互調用,但未被文檔化的函數 • 屬於一個元件的內部函數

  20. 執行體組件 進程和線程管理器 記憶體管理器 安全引用監視器(SRM) I/O管理器 緩存管理器 配置管理器 即插即用管理器 電源管理器

  21. 4組主要的支援函數(#1) • 物件管理器 • 創建、管理和刪除Windows 執行體物件,以及用於表達操作系統資源的抽象資料類型,比如進程、線程和各種同步物件。 • LPC設施 • 創建、管理和刪除Windows 執行體物件,以及用於表達操作系統資源的抽象資料類型,比如進程、線程和各種同步物件。 • RPC (Remote ProcedureCall) 的優化版本。

  22. 4組主要的支援函數(#2) • 一組運行時庫函數 • 功能廣泛,涵蓋字串處理、算術運算、資料類型轉換以及安全結構處理等。 • 執行體支援常式 • 系統記憶體分配(換頁記憶體池和非換頁記憶體池)、互鎖的記憶體訪問,以及對兩種特殊類型同步物件(資源和互斥體)的支援。

  23. Windows 核心中的公用管理設施 物件管理員 組態管理員 Windows事件追蹤 (ETW,Event Tracing for Windows) 安全性管理

  24. Windows 核心中的物件管理 • 執行體中的元件,主要管理執行體物件。 • 基本設計目的: • 為執行體的資料結構提供一種統一而又可擴充的定義和控制機制。 • 提供一致的安全存取機制。 • 在無需修改已有系統程式碼的情況下,加入新的物件型別。 • 提供一組標準的API 來對物件執行各種操作。 • 提供一種命名機制,與檔案系統的命名機制整合在一起。

  25. 執行體物件 由物件標頭和物件主體構成 物件標頭:包含了物件管理所需要的基本資訊,包括物件名稱、型別、引用計數以及安全描述項等資訊。

  26. Outline 2.2Windows系統架構 2.2.2 Windows核心中的關鍵元件 • 裝置驅動程式 • PE檔案格式 • 檔案系統/儲存管理

  27. 裝置驅動程式 • 裝置驅動程式是可以動態地載入核心模式的模組 • 副檔名為.sys • 標準的PE檔案格式

  28. 裝置驅動程式與硬體 驅動程式中的程式碼執行在核心模式下,它們不直接操縱硬體,而是呼叫HAL中的函式與硬體打交道。 驅動程式通常使用C(有時用C++)語言來撰寫,從而方便地在Windows所支援的系統架構之間進行原始碼層次上的移植。

  29. 裝置驅動程式的基本類型 隨插即用驅動程式 (也稱為WDM驅動程式) 核心擴充驅動程式 (也稱為非隨插即用驅動程式) 檔案系統驅動程式

  30. 隨插即用驅動程式 這一類驅動程式通常是為了驅動硬體裝置而由硬體廠商提供,它們與Windows的I/O管理員、PnP管理員和電腦管理員合作。 Windows自身附帶了大量此類驅動程式,用於支援各種常見的儲存裝置、視訊卡、網路介面卡、輸入裝置等。

  31. 核心擴充驅動程式 • 這一類驅動程式擴充核心的功能,或者提供了存取核心模式程式碼和資料的一種途徑。它們並沒有整合到PnP管理員和電腦管理員的框架中。 • 在引入隨插即用管理機制以前開發的驅動程式都屬於這一類型。現在仍有大量的核心擴充驅動程式。

  32. 檔案系統驅動程式 這一類驅動程式接收針對檔案的請求,再進一步將請求轉變成真正對於儲存裝置或網路裝置的I/O請求,從而滿足原始的檔案請求。

  33. Windows Driver Model(WDM) • Windows 2000增加功能如下: • 隨插即用 (Plug-and-Play) • 電源選項 (Power Options) • 擴充Windows NT驅動程式模組 所以稱為Windows Driver Model(WDM)。 • Windows 2000與後面版本能運作原有的Windows NT 4驅動程式,不過這些驅動程式不支援隨插即用與電源選項,系統運行這些驅動程式將減少這兩方面的能力。

  34. WDM驅動程式的類型 • 從WDM的觀點,驅動程式可分為三種類型: • 匯流排驅動程式 (Bus Driver) • 功能驅動程式( Function Driver ) • 篩選器驅動程式( Filter Driver )

  35. WDM驅動程式間的互動關係 Upper-level class filter driver 5 Upper-level device filter driver Function Driver 4 Lower-level class filter driver 3 Lower-level device filter driver Device drivers Bus drivers Bus Filter Driver 2 Bus Driver 1

  36. 匯流排驅動程式 匯流排驅動程式為匯流排控制器(bus controller)、轉接器(adapter)、或橋接器(bridge)提供服務。 微軟一般會提供常用的匯流排驅動程式,而常見的匯流排有PCI、SCSI、USB與FireWire。 為了支援新的匯流排,每家軟體供應商能夠撰寫所需的匯流排驅動程式,像是VMEbus、 Multibus與Futurebus。

  37. 功能驅動程式 功能驅動程式是主要的裝置驅動程式,而且為該裝置提供操作介面。 它是必須的驅動程式,除非該裝置是使用原始的模式(藉由匯流排與任何篩選器驅動程式完成的I/O,像是SCSI PassThru)。 功能驅動程式的定義是,驅動程式知道關於特定裝置的大部分事情,而且通常只有它可以存取裝置特定的暫存器。

  38. 篩選器驅動程式 • 篩選器驅動程式是用來 • 增加裝置(或現存驅動程式)的功能 or • 修改從其他驅動的I/O請求或回應(且通常用來解決硬體提供關於資源請求的錯誤訊息)。 • 篩選器驅動程式是非必須的,且可存在任何數量,它位在 • 功能驅動程式的上層或下層 and • 匯流排驅動程式的上層。 • 通常是由 • System Original Equipment Manufactures (OEMs) or • Independent Hardware Vendors (IHVs) 來提供篩選器驅動程式。

  39. PE檔案的緣由 PE(Portable Executable)是在WindowsNT設計之初,為了建立一種可移植的、能夠適應32位元作業系統需要的可執行檔格式而設計的。 “可移植”的目的是指當初WindowsNT可在多種處理器(x86、MIPS、Alpha等 )上執行。 雖然至今Windows僅支援Intel處理器,但是非Windows NT核心的作業系統Windows 9x系列也使用PE檔案格式,因此,PE仍然是一種可移植的可執行檔格式。

  40. PE檔案的簡介 PE格式擴充了COFF(Common Object File Format),這是Unix中引入的用於描述二進位目的檔的格式規格。 在Windows平台上,可執行檔(.exe)、目的檔(.obj) 、動態連結程式庫(.dll)以及裝置驅動程式(.sys)等多種檔案類型使用了PE檔案格式。 隨著64位元的到來,PE檔案格式也對應地有一個擴充版本,稱為PE32+;原來32位元PE格式稱為PE32,本書中僅涉及32位元PE格式。

  41. PE檔案的基本架構 檔案偏移0 DOS標頭 PE標頭開始 “PE\0\0” COFF標頭 PE標頭 PE可選標頭 資料目錄 區段表開始 區段表 區段資料開始 區段資料 檔案大小(FileSize)-1

  42. 檔案系統(1/3) I/O請求 I/O請求 檔案系統 外部儲存裝置 將請求轉變成更低層的對於外部儲存裝置的I/O請求。 • 檔案系統是外部儲存裝置的標準介面,它為應用程式使用這些裝置中的資料提供了統一的抽象,多個應用程式和系統本身可以共享使用這些裝置。 • 檔案系統的介面部分由I/O管理員定義和實作,但實作部分位於專門的一類驅動程式中。 • 檔案系統處理I/O請求的過程如下:

  43. 檔案系統(2/3) • Windows常見的檔案系統格式 • NTFS (New Technology File System) • 提供了安全性、可靠性、大容量支援、長檔名支援,以及可復原性等一系列高階特性,目前廣泛應用於Windows系統。 • FAT (File Allocation Table) • 這是從DOS時代發展起來的檔案系統格式,格式規格相對比較簡單,目前仍在使用中,主要用於相容老版本的作業系統,以及用於行動裝置以便跨作業系統傳送資料。

  44. 檔案系統(3/3) • 在Windows中,每個檔案系統實體構成了它自己的裝置堆疊,因而透過篩選器驅動程式可以過濾檔案I/O請求。 • Windows支援兩種形式的篩選器驅動程式: • 直接插入到裝置堆疊中,從而能夠看到每一個經過裝置堆疊的檔案I/O請求。 • 基於Windows提供篩檢程式管理驅動程式(FltMgr)的I/O過濾框架,稱為檔案系統小篩選器驅動程式,不出現在檔案系統裝置堆疊中,而是以回呼方式來回應FltMgr的事件。

  45. 儲存管理(1/3) • 檔案系統的底層是儲存裝置的管理。 • 大型儲存裝置以磁碟分割(partition)與磁碟區(volume)來管理整個儲存空間。 • 磁碟分割是指儲存裝置上連續的儲存區域(連續的磁區),而磁碟區是指磁區的邏輯集合。

  46. 儲存管理(2/3) 一個磁碟區內部的磁區可能來自一個磁碟分割,也可能來自多個磁碟分割,甚至來自不同的磁碟。檔案系統則是磁碟區內部的邏輯架構。 因此,Windows的儲存管理形成了一個儲存堆疊,最接近於應用系統的是檔案系統,接下來是磁碟區管理的部分,最接近於儲存裝置的是磁碟分割管理和磁碟驅動程式。

  47. 儲存管理(3/3) 負責通知PnP管理員目前磁碟上有那些磁碟分割 磁碟分割管理員的驅動程式 裝置堆疊 匯流排驅動程式 磁碟裝置是典型的隨插即用裝置,它的裝置堆疊和驅動程式符合WDM模型,由PnP管理員在裝置列舉過程中建立起每個儲存裝置的裝置堆疊。 完整的儲存堆疊

  48. Outline 2.2Windows 系統架構 2.2.2 Windows 核心中的關鍵元件 • 網路 2.2.3 Windows 子系統 • 視窗管理 • 圖形裝置介面

  49. 網路 大多數 Windows 系統的標準配置 Windows 為應用程式提供了多種網路 API,允許應用軟體設計人員根據他們的需求適當選擇。

  50. 網路 API • 主要的網路 API • Windows 通訊端,簡稱Winsock。 • WinInet ,這是一個高層網路 API,它支援多個協議。 • 具名管道(named pipe)和郵件槽(mailslot)。 • 提供了使用者模式的動態連結程式庫(DLL),當應用程式透過這些DLL發出了網路I/O請求時,他們必須將接收到的請求傳遞給核心模式的相關驅動程式。

More Related