Windows作業系統架構

來源:互聯網
上載者:User

標籤:style   class   blog   code   http   com   

 

使用者態

使用者態有四類組件,這四類組件都是以進程形式存在的,也就是說,它們都有自己的進程地址空間(其實就是一套頁表)。

1. System Support Processes

這些是固化的進程,也就是說是作業系統結合在一起的進程。

比如logon process(winlogon.exe),Session manager(smss.exe)。

?
1 2 3 4 5 6 Session Manager          [smss.exe] Local Session Manager       [lsm.exe] Service Control Manager     [services.exe] Local Security Authority     [lsass.exe] Winlogon              [winlogon.exe] Wininit               [wininit.exe]

  

它們都不屬於service,因為它們都不是由SCM(Service Control Manager)啟動的。

2. Service Processes

Service進程是由SCM啟動的,它們與user logon是獨立的,因為有些service的啟動時機比winlogon.exe還早。

Task Scheduler和Print Spooler都是services。

?
1 Service Host    [svchost.exe]

  

3. User Applications

就是常說的應用程式。

4. Environment Subsystem Server Processes

就是常說的“環境子系統”,也就是“Win32子系統”。

?
1 [csrss.exe]

  

 

Subsystem Dynamic Libraries

由四個dll組成:

?
1 2 3 4 Kernel32.dll Advapi32.dll User32.dll Gdi32.dll

它們實際上是Service Processes和User Applications的一部分,以dll的形式載入到它們的進程地址空間中去的。

它們的作用是向Service Processes和User Applications提供Win32 API介面。

 

Win32 API在實現上分為三類:

1. 完全在這四個dll的內部實現。

2. 通過這四個dll,調用更加底層的(核心態,比如核心或者驅動)實現。

3. 這四個dll與Environment Subsystem Server Processes建立C/S通訊模型,dll作為client請求Win32子系統的server進程(使用者態進程)來提供相應的實現。

 

 

核心態

核心態組件分為以下幾類:

1. Windows Executive

可以理解為核心態的管理程式,其實就是各個模組子系統。

比如記憶體管理模組,進程與線程管理模組,安全模組,IO模組,網路模組,以及處理序間通訊模組。

 

2. Windows Kernel

狹義上的核心,提供核心態中的核心操作,比如線程調度與切換,中斷和異常的分發與處理,以及多處理的同步等等。

它其實就是一組函數的集合。

 

3. Device Driver

核心態驅動。

 

4. HAL

Hardware Abstract Layer

用來隱藏與平台相關的細節,並且向上提供統一的API介面。

 

5. Windowing and Graphics System

視窗與繪圖系統。用來提供GUI相關功能。

 

這5個組件大部分都存在於一個Ntoskrnl.exe中,當然一些第三方的driver除外。

 

 

 

Windows Subsystem

Windows子系統包含兩部分:

即上面所描述的使用者態的Environment Subsystem Service Processes和核心態的Windowing and Graphics System

 

使用者態的Win32子系統服務進程?
1 2 3 4 5 [csrss.exe]   Basesrv.dll Winsrv.dll Csrsrv.dll

 

向Win32 Subsystem dll代表的client提供以下功能支援:

1. Console Windows(命令列視窗,即不帶GUI功能,不涉及到Win32k.sys)

2. 建立和刪除Process/Thread

3. Side-by-Side(Sxs)支援

等等。

 

核心態的Win32k.sys驅動

提供以下功能:

1. 視窗管理器,以及與GUI相關的輸入輸出裝置,訊息傳遞等機制。

2. 提供GDI繪圖庫。

3. DirectX的支援(在另一個驅動Dxgkrnl.sys中實現)

Ntdll

 

 

Executive Kernel HAL  Device Driver Subsystem Processes

 

 

 

 

 

 

 

 

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.