日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

理解Windows内核模式与用户模式

發布時間:2025/3/12 windows 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 理解Windows内核模式与用户模式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
內核層次架構

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系統的理解, 讓我們對應用開發全局性的把握。

總結

以上是生活随笔為你收集整理的理解Windows内核模式与用户模式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。