Windows系統結構

來源:互聯網
上載者:User

標籤:安全性   user   posix   繪製   ems   文檔   apc   windows系統   動態   

四種使用者模式進程:
1.系統支援進程,比如登入進程和會話管理器,並不是Windows服務,不有服務控制管理員啟動
2.服務進程,一些以Windows服務方式來啟動並執行組件
3.使用者應用進程
4.環境子系統伺服器處理序,實現了作業系統環境的支援部分,這裡的環境是指作業系統展示給使用者
或者程式員的個人化部分,三個子系統:Windows、POSIX和OS/2。(可以從PE檔案中的subsystem成
員中讀取出該應用程式啟動並執行子系統)

Windows核心模式組件
1.Windows執行體,包含了基本的作業系統服務,比如記憶體管理、進程和線程管理、安全性、IO、
網路和跨進程通訊
2.Windows核心,由一組低層次的作業系統功能構成的,如線程調度、中斷和異常分發,以及多處
理器同步
3.裝置驅動程式,包括硬體裝置驅動程式,也包括檔案系統和網路驅動程式
4.硬體抽象層HAL,一層特殊的代碼,把核心、裝置驅動程式和Windows執行體的其餘部分,跟與平
台相關的硬體差異隔離開來
5.視窗和圖形系統,實現了GUI函數(也就是Windows USER和GDI函數),比如視窗的處理、使用者介面
控制項以及繪製等

Windows核心系統檔案

Ntoskrnl.exe執行體和核心
Ntkrnlpa.exe執行體和核心,支援實體位址延伸PAE
Hal.dll硬體抽象層
win32k.sysWindows子系統的核心模式部分
ntdll.dll內部支援函數,以及執行體函數的系統服務分發存根(stub)

Kernel32.dll
Advapi32.dll
User32.dllWindows的核心子系統dll
Gdi32.dll

HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems中儲存了子系統資訊
Require列出了當系統引導時載入的子系統,Windows和Debug。Windows值為Csrss.exe,它代表了
客戶/伺服器運行時子系統,包含了Windows子系統的檔案規格。Kmode值為win32k.sys,是Windows
子系統核心模式部分的檔案名稱。

環境子系統角色是,將Windows基本系統服務的部分子集暴露給應用程式。每個子系統都提供了對
於Windows原生服務不同部分的訪問能力。

每一個可執行檔都被綁定到一個且唯一一個子系統上。當一個映像檔案被運行時,建立進程的代
碼會檢查映像頭部的子系統類型代碼,所以他可以通知正確的子系統有新的進程被建立了。

使用者應用程式並不直接調用Windows系統服務,相反,他們通過一個或多個子系統DLL來進行。
子系統DLL的角色是將一個已文檔化的函數轉化為一些恰當的內部(通常是未文檔化的)Windows系統
服務調用。這些轉化可能會也可能不會向正在為使用者應用程式提供服務的環境子系統發送一個訊息

當一個應用程式調用子系統DLL中的函數是,可能會發生以下情況
1.該函數完全在該子系統DLL中實現,在使用者模式下運行,運行結果被返回給調用者,不會向環境
子系統進程發送訊息,而且並沒有調用Windows執行體的系統服務。
2.該函數要求調用Windows執行體一次或者多次。
3.該函數要求在環境子系統進程中完成某些工作(環境子系統進程運行在使用者模式下,負責維護那
些在其控制下啟動並執行客戶應用程式的狀態)。在此情況下,該函數以訊息的形式給環境子系統發送
一個C/S請求,從而讓環境子系統執行某個操作,然後子系統DLL等待應答,將應答返回給調用者。
CreateProcess和CreateThread是第二和第三的結合

Windows子系統的組成
1.環境子系統進程Csrss.exe,包含以下支援
(1)控制台視窗
(2)建立或刪除進程和線程
(3)對16位虛擬DOS機的一部分支援
(4)其他一些函數
2.核心模式裝置驅動程式(Win32k.sys),包含
(1)視窗管理器,控制視窗顯示,管理螢幕輸出,採集鍵盤、滑鼠和其他裝置的輸入,負責將使用者
的訊息傳遞給應用程式
(2)圖形裝置介面GDI,專門針對圖形輸出裝置的函數庫,包括線條、文本和圖形的繪製函數,以及
繪圖控制函數
3.子系統DLL,如Kernel32.dll,Advapi32.dll,User32.dll,Gdi32.dll。他們將已經文檔化的
Windows API函數,翻譯成Ntoskrnl.exe和Win32k.sys中恰當且為文檔化的核心模式系統服務調用
4.圖形裝置驅動程式是指與硬體相關的圖形顯示器驅動程式、印表機驅動程式和視頻微連接埠驅動程

Ntdll.dll
是一個特殊的系統支援庫,主要用於子系統DLL,包含兩種類型函數
1.系統服務分發存根(stub),他們會調用Windows執行體服務
2.系統支援函數,供子系統、子系統DLL和其他的原生映像檔案使用
第一組函數為Windows執行體系統服務提供了介面,在使用者模式下可以通過這些介面函數調用
Windows執行體的系統服務,如NtCreateFile,這些函數大多數的功能可以通過WindowsAPI來訪問
得到。
對於每一個這樣的函數,Ntdll包含了一個同名的進入點。函數內部的程式碼封裝含了與處理器體繫結
構相關的模式切換指令,通過該指令可以切換到核心模式下,從而調用了系統服務分發器。分發器
在檢查了某些參數後再真正調用了核心模式的系統服務,其中包括Ntoskrnl.exe內部的實際代碼。
Ntdll也包含了許多支援函數,比如映像載入器Ldr、堆管理器、Windows子系統進程通訊函數Csr,
以及一般的運行庫過程Rtl,也包含使用者模式下的非同步程序呼叫APC和異常分發器。

執行體
Windows執行體是Ntoskrnl.exe中的上層,核心是下層。執行體包含以下內容函數
1.可以在使用者模式下調用的匯出函數,這些函數稱為系統服務,並且通過Ntdll被匯出。這些服務
絕大多數可以通過WindowsApi來訪問,或者通過另一個環境子系統的API來訪問。也有一些未被文
檔化的函數如NTQueryInformationProcess等
2.可以通過DeviceIoControl函數來調用的裝置磁碟機函數。
3.只能在核心模式下匯出的函數,且在DDK中已經文檔化的函數
4.在核心模式下調用,但未在DDK中文檔化的匯出函數(如Inbv開頭的函數)
5.定義為全域富豪但是未被匯出的函數如以Iop或者Mi開頭的函數
6.為定義為全域符號而是在一個模組內部的函數

執行體包含以下組件
1.組態管理員,負責註冊表的實現和管理
2.進程和線程管理器
3.。。。。。。

核心
有Ntoskrnl.exe中的一組函數以及對於硬體體繫結構的底層支援(中斷和異常)組成。核心中許多函
數在DDK文檔中也有描述,如Ke開頭的函數

核心對象
線程調度和分發,室友核心自己來實現的
執行體將線程和其他可共用的資源都表示成對象,這些對象要求一些策略開銷,用以維護它們的對
象控制代碼,以及保護它們的各種安全檢查,相應的資源配額。核心則實現了一組更為簡單的對象,稱
為核心對象,協助核心控制好中心處理過程,並且支援執行體對象的建立工作。執行體層絕大多數
對象封裝成多個核心對象,把它們的核心屬性合并起來。
一組為控制對象,建立了一組有關控制各種作業系統功能的語義,如APC、DPC、中斷對象
另一組為分發器對象,融合了同步的能力,它們改變或者影響了線程的調度。分發器對象包括核心
線程、互斥體、核心事件對、事件、訊號量、定時器、等待定時器。可執行體利用核心功能來建立
核心對象的執行個體,並維護這些對象執行個體。

Inside Native API

System進程和系統線程
System進程是一種特殊的線程的母體,這種特殊線程只能在核心模式下運行,稱為核心模式系統線
程。系統線程具備普通使用者模式線程的所有屬性和環境,但它們只能在核心模式下運行系統空間中
載入的代碼,無論這些代碼是在Ntoskrnl.exe中還是在任何其他載入進來的裝置驅動程式中。而且
系統線程沒有一個使用者進程地址空間,因此,任何的動態儲存裝置空間,它們都必須從作業系統的記憶體
堆中分配,比如從一個換頁的或者非換頁的池中分配。

Windows系統結構

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.