理解Windows核心模式與使用者模式

來源:互聯網
上載者:User

核心層次架構

windows程式運行分為核心模式和使用者模式,核心模式可以訪問所有的記憶體位址空間, 並且可以訪問所有的CPU指令。一般程式運行在使用者模式, 通過系統調用切換到核心模式執行系統功能,Windows系統通過這種方式來確保系統的安全和穩定。

下面是核心的層次劃分:

硬體抽象層(Hardware Abstraction Layer) (HAL) (hal.dll)
最底層隔離硬體的, 底層的第三方驅動程式就運行在這層。

核心 (Kernel)
實現作業系統的一些底層服務,比如線程調度, 多處理器的同步,中斷/異常處理等。

執行體 (Executive)
實現基本的作業系統服務,比如基本的線程進程管理,記憶體管理, IO及進程間通訊等。

視窗圖形子系統(Windows  Graphics Subsystem)
由win32K.sys在核心層實現, 使用者介面相關都依賴該層, User32.dll的大部分功能都由該層實現。

使用者層關鍵進程

Windows系統在使用者層有幾個關鍵的系統進程:

Smss.exe (session manager Subsystem)
關於Session的概念可以參考我的這篇Sessions, Window Stations and Desktops, 在作業系統啟動時會建立一個不與任何Session關聯的Smss.exe管理者執行個體, 然後當有使用者登入時它會為每個Sessin拷貝一份與之關聯的Smss.exe執行個體,然後由該關聯的Smss.exe執行個體啟動winlogon.exe和csrss.exe.

WinLogon.exe
該進程系統管理使用者的登入和登出, 我們按Ctrl+Alt+Del出現的介面和登入後出現的桌面視窗都是由它啟動的。

Csrss.exe ( Client/Server Runtime Subsystem)
我們可以看到我們的桌面視窗(GetDesktopWindow)是由該進程建立的, 該進程主要負責Win32子系統的使用者模式部分(核心模式部分由win32k.sys實現)。

Lsass.exe (Local Security Authority Subsystem)
WinLogon.exe通過該進程驗證使用者登入, 登入後產生安全存取權杖對象, 通過該令牌建立Explorer.exe, 我們其他使用者進程都由Explorer.exe啟動,並且繼承了該令牌許可權。

Services.exe
該進程簡稱為SCM (NT Service Control Manager), 該進程負責啟動使用者態一些特殊進程, 也就是我們通常所說的服務程式。

使用者模式調用核心模式方式

由使用者模式調用核心模式一般有2種方式 系統調用(system call) 和 IOCTL (IO Control Commands)

核心模式調用使用者模式方式

可以通過IOCTL的上下文傳遞, 也可以通過APC (Asynchronous Procedure Call)直接調用。

進程間通訊方式

另外一種非常強大的使用者模式與核心模式通訊方式, 同時也支援進程間通訊, 該方式就是ALPC (Advanced Local Procedure Call), 該方式被作業系統大量使用, WinRT中的Broker進程也用到了它 。
該方式實際上就4個核心函數:nt!NtAlpcSendWaitReceivePort, nt!NtAlpcCreatePort, nt!NtAlpcConnectPort, Nt!AplcAcceptConnectPort, 大概原理如下:

總結一下 ,通過上面Windows系統中一些關鍵概念的介紹, 加深我們對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.