1 / 202

Chapter 2 Windows 系統總述

Team 1 (page 17 ~ page 56 ) 100522084 劉書銘 100522030 蔡昀昇 100522011 楊善雯 100522045 宋貫綸 100522037 黃惠慈 100522006 賀振坤 100522017 賴佑東 100582012 陳禹任 100582013 張閎翰 100522608 陳書瑜 100522033 馬萬鐸 100522072 萬惠雯. Chapter 2 Windows 系統總述.

amory
Download Presentation

Chapter 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. Team 1 (page 17 ~ page 56) 100522084 劉書銘 100522030 蔡昀昇 100522011 楊善雯 100522045 宋貫綸 100522037 黃惠慈 100522006 賀振坤 100522017 賴佑東 100582012 陳禹任 100582013 張閎翰 100522608 陳書瑜 100522033 馬萬鐸 100522072 萬惠雯 Chapter 2Windows 系統總述

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

  3. 目 錄 2.1 現代作業系統的基本架構 2.2 Windows 系統架構簡介 2.2.1Windows 核心架構 2.2.2 Windows 核心中的關鍵元件 2.2.3 Windows 子系統 2.3 關於 Windows 研究核心 2.4 Windows 核心的基本概念 2.5 Windows 核心中的功用管理設備

  4. 現代作業系統的基本架構 • 屬於軟體的範疇 • 提供一層抽象介面 • Windows、Linux : 可動態載入驅動程式或專門的擴充介面

  5. 現代作業系統的基本架構 • 應用程式透過一層介面呼叫系統服務 • 應用程式之間則用IPC ( inter-process communication行程間通訊)交互操作 • 硬體裝置透過驅動程式,與電腦核心進行通訊

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

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

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

  9. 目 錄 2.1 現代作業系統的基本架構 2.2 Windows 系統架構 2.2.1Windows 核心架構 2.2.2 Windows 核心中的關鍵元件 2.2.3 Windows 子系統 2.3 關於 Windows 研究核心 2.4 Windows 核心的基本概念 2.5 Windows 核心中的功用管理設備

  10. 現代作業系統的基本架構 用戶應用程式 系統DLL Window 子系統行程 系統和服務行程 NTDLL.DLL User mode Kernel mode 執行體(Executive) Window 子系統核心模組 核心(或微核心) 設備驅動 程式 硬體抽象層(HAL)

  11. Hardware Abstraction Layer(HAL) • (Micro)Kernel Layer • Executive Layer • 物件管理員

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

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

  14. Windows核心架構 PreviousMode = KeGetPreviousMode(); If(PreviousMode != KernelMode){ try{ ProbeForWrite(InputInformation, InputInformationLength, sizeof(ULONG)); if(ARGUMENT_PRESENT(ReturnLength)){ ProbeForWriteUlong(ReturnLength); } } except(EXCEPTION_EXECUTE_HANDLER){ return GetExceptionCode(); } } 判斷輸入資料是否可寫 Takes an argument pointer and return FALSE if the pointer is NULL 看參數是否可寫

  15. Windows核心架構 0xffffffff 系統位址空間 Kernel mode 4GB 0x7fffffff 特殊區間 64KB 不可存取 0x7fff0000 行程位址空間 User mode 2GB 0x00000000

  16. 目 錄 2.1 現代作業系統的基本架構 2.2 Windows 系統架構 2.2.1Windows 核心架構 2.2.2 Windows 核心中的關鍵元件 (HAL、核心、執行體 ) 2.2.3 Windows 子系統 2.3 關於 Windows 研究核心 2.4 Windows 核心的基本概念 2.5 Windows 核心中的功用管理設備

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

  18. Windows 核心中的關鍵元件 • 硬體抽象層 (HAL) • 將硬體的差別隱藏起來,提供一個抽象且一致的硬體 • 資源模型。 • 不同平台的移植。 • 獨立的動態連結程式庫 • 透過HAL來存取硬體 表 2.1 Windows Server 2003 的 HAL 列表 (Intel x86 處理器)

  19. Windows核心中的關鍵元件 • B. 核心 (或微核心) • 最接近於HAL層 • 負責緒程排程和中斷、例外處理 • C語言為主 (包含一部分組合語言) • 先佔式緒程 • 基本優先 • 動態優先 • 物件導向 • 發送器物件 (dispatcher object) • event, mutant, semaphore, process, thread, queue, gate 及 timer • 控制物件 (Control object) • APC, DPC 及中斷物件

  20. Windows核心中的關鍵元件 • C. 執行體 (Executive) API • 位於核心模組(ntoskrnl.exe)的上層 • 目的為提供可供上層應用程式或內核驅動程式條用的功能 • 五種不同類型的函式 (執行體內部的元件) • 被匯出且可在使用者模式下呼叫的函式。 • 滿足 1)但無法呼叫任何一個 Windows API。 • 只能在核心模式下被呼叫的匯出函式,並且在Windows DDK 中有相關的文件。 • 可供執行體元件相互呼叫,但未被文件化的函式。 • 屬於一個元件的內建函式。

  21. Windows核心中的關鍵元件 • C. 執行體 (Executive) API (續) • 執行體包含以下元件 • 行程和緒程管理員 • 建立或中止行程和緒程 • 記憶體管理員 • 為每一個行程提供一個私有空間 • 安全引用監視器 (SRM) • 強制在電腦上實施安全性原則 • I/O 管理員 • 實作與裝置無關的輸入(輸出) 功能 • 快取管理員 • 駐留磁碟資料於主記憶體中

  22. Windows核心中的關鍵元件 • C. 執行體 (Executive) API(續) • 物件管理員 (續) • 組態管理員 • 系統登入的實作與管理。 • 隨插即用管理員 • 列舉裝置為每個列舉道的裝置確定哪些裝置是必須的載入並初始化這些驅動裝置。 • 電源管理員 • 協調電源事件,向裝置驅動程式發送電源 I/O的通知。

  23. Windows核心中的關鍵元件 • C. 執行體 (Executive) API(續) • 除此之外,執行體還包含 4 組主要支援函式: • 物件管理員 • 比如行程、續程和各種同步物件 • LPC設施 • 負責在同一台機器上的客戶行程和伺服器行程之間傳遞訊息。 • 一組執行階段程式庫函式 • 字串處理、算術運算、資料型別轉換以及安全架構等。 • 執行體支援常式 • 如: 系統記憶體分配、互鎖的記憶體存取。

  24. 目 錄 2.1 現代作業系統的基本架構 2.2 Windows 系統架構 2.2.1Windows 核心架構 2.2.2 Windows 核心中的關鍵元件 ( 裝置驅動程式、PE 檔案格式、WDM) 2.2.3 Windows 子系統 2.3 關於 Windows 研究核心 2.4 Windows 核心的基本概念 2.5 Windows 核心中的功用管理設備

  25. 裝置驅動程式 • 為何要用裝置驅動程式? • 核心中除了核心模組ntoskrnl.exe、HAL外,其它模 組幾乎以裝置驅動程式的型式存在 • 軟體架構角度: windows核心的擴充機制

  26. 裝置驅動程式 • 特性: • 不一定與實體裝置對應 • 可動態載入到系統模組,格式是PE檔案格式 • 移植性高(用C語言來撰寫,方便在Windows支援的系統間進行原始碼層次上的移植) • 不直接操縱硬體,而是呼叫HAL中的函式與硬體打交道 • 副檔名: • .sys

  27. 裝置驅動程式三大類型 • 隨插即用驅動程式(WDM ) • 用來驅動硬體裝置。與Windows的I/O管理員、PnP管理員和電腦管理員合作 • 核心擴充驅動程式(非隨插即用驅動程式) • 擴充核心功能,或提供存取核心模式程式碼和資料的途徑。並沒有整合到PnP管理員和電腦管理員中 • 檔案系統驅動程式 • 接收檔案請求,再將請求轉成對裝置的I/O請求

  28. 裝置驅動程式三大類型-WDM • 全名 • Windows Driver Model • 隨插即用(PnP)管理員的工作 • 自動檢測裝置插入與移除 • 動態分配硬體資源 • 指示I/O管理員替裝置載入驅動程式 • 對核心或程式提供裝置插入、移除的通知機制

  29. 裝置驅動程式三大類型-WDM • 分成三大類型 • 匯流排驅動程式 • 管理匯流排上的裝置 • 替匯流排上的裝置提供存取匯流排資源的方法 • 功能驅動程式 • 管理裝置 • 替作業系統提供該裝置功能 • 篩選器驅動程式 • 監聽裝置的I/O請求、處理過程 • 增加或改變裝置、驅動程式的行為

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

  31. PE檔案格式 • PE格式的優勢 • 擴充COFF(Common Object File Format) • COFF定義 • 由Unix引入,用來描述二進位目的檔的格式規格 • COFF優、缺點 • 優點-提供了好的框架 • 缺點-區段數量有最大限制、 區段名稱有長度限制、 無法提供像C所需的符號化偵錯資訊

  32. PE檔案格式 • Windows中誰用了PE檔案格式? • 可執行檔 .exe • 目的檔 .obj • 動態連結程式庫 .dll • 裝置驅動程式.sys

  33. PE檔案格式 • 進一步對PE檔案格式作探討 • PE檔案基本架構 • 重定位概念

  34. PE檔案基本架構 可執行映像檔 為了相容MS-DOS環境 區段表中每一項指示區段名稱、區段虛擬位址位置及大小、該區段資訊 指示可執行檔的匯入、匯出、資源、重定位表 包含目前檔案的全域資訊 對每個區段,若檔案資料數量<區段大小,則區段後面資料補“0”

  35. 重定位概念 • 為何要重定位? • 當可執行映像中指定的基底位址被占據,則可執行映像要載入其他位置 • 如何重定位? • 將目前映像中的程式碼或資料,按照新的記憶體起始位址引用,而不是原來指定的基底位址來引用

  36. 目 錄 2.1 現代作業系統的基本架構 2.2 Windows 系統架構 2.2.1Windows 核心架構 2.2.2 Windows 核心中的關鍵元件 ( 檔案系統 / 儲存管理、網路 ) 2.2.3 Windows 子系統 2.3 關於 Windows 研究核心 2.4 Windows 核心的基本概念 2.5 Windows 核心中的功用管理設備

  37. 檔案系統(1/3) • 檔案系統是外部儲存裝置的標準介面,多個應用程式和系統本身可以共享使用這些裝置。 • 當檔案系統接收到I/O請求時,它根據檔案系統格式規格,將這些請求轉變成更低層的對於外部儲存裝置的I/O請求,透過它們的驅動程式來完成原本的請求。

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

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

  40. 儲存管理 • 檔案系統的底層是儲存裝置的管理。 • 大型儲存裝置以磁碟分割(partition)與磁碟區(volume)來管理整個儲存空間。 • 磁碟分割是指儲存裝置上連續的儲存區域(連續的磁區),而磁碟區是指磁區的邏輯集合。 • 磁碟區是指由一或多個實體磁碟的一或多個部分所構成的虛擬磁碟﹐表示可定址的磁碟區塊範圍。給檔案系統或應用程式等使用。

  41. 網路 • 網路雖然並非 Windows 作業系統中必不可少的組成 部分,但實際上,它已經成為絕大多數 Windows 系統的標準配置。 • Windows 為應用程式提供了多種網路 API,允許應用軟體設計人員根據他們的需求適當選擇。

  42. Windows主要API • Winsock,windows通訊端,他實做並擴充了BSD通訊端標準。為Windows最重要的網路 API。 • WinInet,為一個高層網路 API,它支援多個協定,包括HTTP、FTP等。 • 具名管道(named pipe)和郵件槽(mailslot),用於不同行程之間進行通訊。 • NetBIOS是一個早期的網路API,為了相容舊的應用程式。 • RPC,這是網路程式編寫的一個標準,往往是分散式系統設施的一個重要單元。

  43. Winsock • WinSock的全名是 Windows Socket,是定義介於Windows TCP/IP application Client 與 TCP/IP 的protocol stack之間的一項標準介面。程式設計者於Windows上所 寫的網路軟體(如opher,Telnet,FTP..), 只要支援WinSock的規格,他就不需要顧慮使用的網路卡是那家廠牌,因為Winsock所提供的程式庫Winsock.DLL會負起與網路底層溝通的工作。使得設計者能設計出更多功能或更user friendly的網路軟體。

  44. 目 錄 2.1 現代作業系統的基本架構 2.2 Windows 系統架構 2.2.1Windows 核心架構 2.2.2 Windows 核心中的關鍵元件 2.2.3 Windows 子系統 ( 視窗管理、圖形裝置介面 ) 2.3 關於 Windows 研究核心 2.4 Windows 核心的基本概念 2.5 Windows 核心中的功用管理設備

  45. Windows 子系統 • 三個環境子系統(Windows NT) • OS/2 • POSIX • Windows(Win32) • Windows子系統(Windows XP以後) 依照需要啟動 • ——必須執行

  46. Windows 子系統 直接連接到應用程式行程 Kernel32.dll User32.dll Gdi32.dll Advapi.dll 負責實做已文件化的Windows API函式 Windows子系統行程 (csrss.exe) 一組動態連接程式庫 (DLL) 負責主控台視窗的功能; 創建或刪除行程和緒程 使用者模式 核心模式 形式是驅動程式,不處理 I/O 請求; 向使用者程式碼提供了大量的系統服務 收集/分發消息 控制視窗顯示 管理螢幕輸出 win32k.sys 形狀繪製功能 文字輸出功能 視窗管理 圖形裝置界面(GDI)

  47. 視窗管理 子視窗 登入桌面 互動式視窗工作站 最上層視窗清單 • Windows 子系統的使用者介面管理有一個層次架構,通常應用程式只是在一個預設的桌面上執行 • 每個子系統工作階段都有自己的工作階段空間,屬於該工作階段的資源就從該工作階段空間中分配 User 登錄 Windows 系統功能表 最大化按鈕 最小化按鈕 捲軸 遠端 子系統 工作階段 登入桌面 預設桌面 (圖形界面應用程式) 獨立剪貼簿 鍵盤 滑鼠 顯示器 熒幕保護 桌面 非互動式視窗工作站 不可見桌面 圖2.5 Windows 子系統視窗管理層次結構

  48. 視窗類別(window class) • 應用程式可以非常方便地建立這些視窗類的實體 • 應用程式要定義獨特的視窗類型 • 完全新的視窗類別 • 在系統已有視窗類別的基礎上定義新的視窗類別 • Windows 視窗的編寫模型是訊息驅動的,每個視窗物件根據其視窗類別指定的視窗程序來回應各種訊息。

  49. Microsoft DirectX,遊戲直接操縱顯示器硬體,更快顯示速度 圖形裝置界面 使用者模式 核心模式 Win32k.sys 圖形引擎(GDI) I/O請求 動態鏈接程式庫 —幫助微埠實現與圖形處理有關功能 —為微埠提供與系統核心和執行體打交道的環境 視訊連接埠 驅動程式 DDI ENG GDI,與裝置無關,使應用程式適應各種底層顯示裝置; 應用程式與圖形裝置驅動程式之間的通訊效率夠高, 即使圖形元素頻繁輸出/刷新,保持良好視覺效果 視訊微埠 驅動程式 顯示驅動程式 使用者可見、性能緊急的圖形操作 幫助圖形引擎實做針對特定視訊卡的圖形功能 不常見圖形操作, 不能被打斷的關鍵圖形操作 針對視訊卡硬體特性 圖2.6 Windows 子系統的圖形模組架構

  50. 目 錄 2.1 現代作業系統的基本架構 2.2 Windows 系統架構 2.3 關於 Windows 研究核心 2.3.1WRK 包含了甚麼 2.3.2 WRK 原始碼說明 2.3.3 WRK 原始碼的引用 (WRK 編譯 / 啟動 / 偵測 ) 2.4 Windows 核心的基本概念 2.5 Windows 核心中的功用管理設備

More Related