Windows作業系統的體系結構

2021-08-26 04:40:42 字數 2497 閱讀 4650

下面是windows的體系結構:

這是整個windows的體系結構的總覽。從圖上可以看出系統被分成核心模式和使用者模式。

核心模式的構成檔案是系統的核心檔案她包含:

hal.dll

ntoskrnl.exe

裝置驅動

檔案系統驅動

圖形裝置驅動

win32k.sys

1.首先來看第一層hal(硬體抽象層)

hal使得reactos 核心可以執行在不同的x86母板上。hal為核心抽象母板的特定**也許是對不同母板定義一種抽象的介面,向上提供一種標準的介面呼叫,這樣不同的母板就不需要改變核心,思想上有點像驅動程式的設計,不過用在另外乙個地方(具體的實現目前還不知道,以後邊看**邊了解)。

2.ntoskrnl(核心)

核心又分成兩層,第一層有的稱為核心層(core)提供非常原始且基本的服務,如多處理器的同步、執行緒排程、中斷分派等等。第二層是執行體(executive)核心執行體提供了系統的服務,這裡的服務不是指windows服務管理器看到的那種服務,而是一些系統函式。而這些函式被劃分成不同的類別:

具備虛擬儲存的記憶體管理:採用分段和分頁以及虛擬記憶體的方式管理記憶體的使用。

物件管理:採用物件導向的思想,用c來實現,在windows中一切資源都被抽象為物件。如檔案物件,程序執行緒物件等。

程序執行緒管理:負責建立和終止程序、執行緒。

配置管理:負責管理登錄檔

安全引用監視:在本地計算機上執行安全策略,保護計算機的資源

i/o管理:實現i/o的裝置無關性,並負責把i/o請求分配給相應的裝置驅動程式以進一步處理

即插即用管理器(pnp):確定裝置應該由哪個驅動程式來支援並負責載入相應驅動。在啟動時的列舉過程中,它收集每個裝置所需要的硬體資源,並根據裝置的需要來分配合適的硬體資源如i/o埠,irq,dma通道之類,當系統中的裝置發生變化時它負責向系統和應用程式傳送通知訊息。

電源管理:協調電源時間,通過合理的配置,使得cpu降低電源消耗

緩衝管理器:將最近使用過的資料留在cache中來提高系統的整體效能

本地過程呼叫(lpc)管理

reactos因為相容windows,因此在設計上也提供相同的功能,只是實現方法有所不同而已。

3.裝置驅動程式

裝置驅動程式是核心態可載入模組(以.sys為副檔名,存放在system32\drivers),它們是i/o管理器和相關硬體裝置的介面。裝置驅動程式採用一種i/o管理所規定的介面標準來編寫,因此可以被核心執行體的i/o管理單元呼叫來驅動硬體的工作。

4.檔案系統驅動程式

檔案系統驅動程式也是核心態可載入模組(以.sys為副檔名system32\drivers),檔案系統其實是強加給儲存硬體的一種檔案存放規則。某類檔案系統其實就是按照他的檔案訪問規則在儲存器上組織檔案的資訊。比如fat32 按照fat32的儲存規則來存放檔案ext2又按照ext2的檔案規則存放檔案。

檔案系統按照i/o管理的介面標準來實現一組儲存規則,同時檔案系統也可以將資訊按照自己的儲存方式請求i/o管理單元,讓i/o管理單元通過這個裝置的裝置驅動程式將資訊存放到該裝置上。

這樣的方式使得檔案系統只負責儲存規則的定義。而驅動程式去處理硬體的排程(比如如何移動磁頭臂,採用什麼排程演算法等)而i/o管理僅僅是他們之間的協調員,至於如何協調,i/o管理向外定義了自己的標準。

5.圖形裝置驅動

這個裝置有點獨特,從圖上來看,(這個圖是windows 2000的體系結構圖)好像只有核心模式裝置驅動也就是win32k.sys才能啟動。圖形裝置驅動其實和其他的裝置驅動程式我想也不會有太大的差別(以後看**在了解)。

不過有一點可以了解,那就是圖形裝置驅動是由win32k來驅動的,估計提供的也是硬體驅動。

6.win32k

這個東西應該是windows所說的win32子系統的核心部分(原生子系統,其他的子系統是可以分割的),如果沒有這個子系統windows就不能執行?(好像微軟是這麼說的,原因好像是win32 的文件化的 api都是通過這個子系統實現的,據說最初的子系統都通過csrss來實現,這個東西最初好像包含至少3個子系統,1.win32,2.os/2,3.posix,隨著win32的羽翼逐漸豐滿,在發行時就不再包含其他兩個。但是還是依然叫csrss,慢慢看**才知道,這些都是道聽途說)。

win32k也被劃分成兩個部分,第乙個是user32,第二個是gdi32,

reactos的win32k估計基本上都是通過wine移植過來的。

user32:

包含了windows管理的操作吧,比如如何建立視窗,顯示視窗,隱藏視窗,移動視窗排列視窗z軸,對擁有視窗的z軸排序,region(可視區域)操作,滑鼠集中測試等。

gdi32:

包含圖形裝置的繪製操作(這些操作也可以叫服務),比如畫點,畫線,位圖操作等,gdi會將一些複雜的繪圖操作轉變成簡單的繪製請求傳送給圖形驅動程式(如果這個圖形驅動程式不支援複雜繪製)還有就是一些裝置無關的點陣圖操作,有的可以儲存在記憶體或檔案,而如果將裝置無關的點陣圖輸出的話就會被轉換成裝置相關的點陣圖然後再輸出。

windows作業系統

1.檢視埠 netstat ano netstat ano find 2檢視程序 tasklist 3.刪除程序 tskill 4.開啟程序管理器 taskmgr 5.ping 6.ipconfig all 7.f 8 cd cd.9.mkdir rmdir linux rm rf 10.dir 列...

作業系統 記憶體分層體系

站在計算機內部,作業系統把cpu 磁碟 記憶體這三部分物理資源抽象成程序 檔案 位址空間,來給我們的應用程式使用。作業系統層次結構 硬體之上,應用程式之下。kernel 作業系統內部元件 包括 os kernel的特徵 計算機基本硬體結構 cpu 完成對整個程式 軟體 執行的控制。記憶體 放置程式的...

Windows作業系統的分層

一 層次結構 windows從總體上分為核心模式 kernel model 和使用者模式 user model 談到作業系統的核心模式和使用者模式,一般會和cpu的特權層聯絡起來。cpu有多個特權層,例如,intel的386cpu就有4個特權層,從第0層到第3層。其中第0層的特權最高,也就是可以執行...