日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Windows 的體系結(jié)構(gòu)

 戴維圖書館 2013-03-01

Windows 的體系結(jié)構(gòu)

分析環(huán)境reactos0.3.1 ,i386體系]

了解了windows的體系結(jié)構(gòu)才知道reactos到底要干什么,以及如何干,因?yàn)閞eactos的目標(biāo)是兼容windows。

下面是windows的體系結(jié)構(gòu):

 

這是整個(gè)windows的體系結(jié)構(gòu)的總覽。從圖上可以看出系統(tǒng)被分成內(nèi)核模式和用戶模式。

內(nèi)核模式的構(gòu)成文件是系統(tǒng)的核心文件她包含:

  1. hal.dll
  2. ntoskrnl.exe
  3. 設(shè)備驅(qū)動(dòng)
  4. 文件系統(tǒng)驅(qū)動(dòng)
  5. 圖形設(shè)備驅(qū)動(dòng)
  6. win32k.sys


1.首先來看第一層HAL(硬件抽象層)

  HAL使得reactOS  內(nèi)核可以運(yùn)行在不同的x86母板上。HAL為內(nèi)核抽象母板的特定代碼也許是對不同母板定義一種抽象的接口,向上提供一種標(biāo)準(zhǔn)的接口調(diào)用,這樣不同的母板就不需要改變內(nèi)核,思想上有點(diǎn)像驅(qū)動(dòng)程序的設(shè)計(jì),不過用在另外一個(gè)地方(具體的實(shí)現(xiàn)目前還不知道,以后邊看代碼邊了解)。

2.ntoskrnl(內(nèi)核)

內(nèi)核又分成兩層,第一層有的稱為核心層(core)提供非常原始且基本的服務(wù),如多處理器的同步、線程調(diào)度、中斷分派等等。第二層是執(zhí)行體(EXECUTIVE)內(nèi)核執(zhí)行體提供了系統(tǒng)的服務(wù),這里的服務(wù)不是指windows服務(wù)管理器看到的那種服務(wù),而是一些系統(tǒng)函數(shù)。而這些函數(shù)被劃分成不同的類別:

具備虛擬存儲(chǔ)的內(nèi)存管理:采用分段和分頁以及虛擬內(nèi)存的方式管理內(nèi)存的使用。

  1. 對象管理:采用面向?qū)ο蟮乃枷耄肅來實(shí)現(xiàn),在windows中一切資源都被抽象為對象。如文件對象,進(jìn)程線程對象等。
  2. 進(jìn)程線程管理:負(fù)責(zé)創(chuàng)建和終止進(jìn)程、線程。
  3. 配置管理:負(fù)責(zé)管理注冊表
  4. 安全引用監(jiān)視:在本地計(jì)算機(jī)上執(zhí)行安全策略,保護(hù)計(jì)算機(jī)的資源
  5. I/O管理:實(shí)現(xiàn)I/O的設(shè)備無關(guān)性,并負(fù)責(zé)把I/O請求分配給相應(yīng)的設(shè)備驅(qū)動(dòng)程序以進(jìn)一步處理
  6. 即插即用管理器(PNP):確定設(shè)備應(yīng)該由哪個(gè)驅(qū)動(dòng)程序來支持并負(fù)責(zé)加載相應(yīng)驅(qū)動(dòng)。在啟動(dòng)時(shí)的枚舉過程中,它收集每個(gè)設(shè)備所需要的硬件資源,并根據(jù)設(shè)備的需要來分配合適的硬件資源如I/O端口,IRQ,DMA通道之類,當(dāng)系統(tǒng)中的設(shè)備發(fā)生變化時(shí)它負(fù)責(zé)向系統(tǒng)和應(yīng)用程序發(fā)送通知消息。
  7. 電源管理:協(xié)調(diào)電源時(shí)間,通過合理的配置,使得CPU降低電源消耗
  8. 緩沖管理器:將最近使用過的數(shù)據(jù)留在CACHE中來提高系統(tǒng)的整體性能
  9. 本地過程調(diào)用(LPC)管理


 ReactOS因?yàn)榧嫒輜indows,因此在設(shè)計(jì)上也提供相同的功能,只是實(shí)現(xiàn)方法有所不同而已。

 3.設(shè)備驅(qū)動(dòng)程序
   
 設(shè)備驅(qū)動(dòng)程序是核心態(tài)可加載模塊(以.SYS為擴(kuò)展名,存放在system32\drivers),它們是I/O管理器和相關(guān)硬件設(shè)備的接口。設(shè)備驅(qū)動(dòng)程序采用一種I/O管理所規(guī)定的接口標(biāo)準(zhǔn)來編寫,因此可以被內(nèi)核執(zhí)行體的I/O管理單元調(diào)用來驅(qū)動(dòng)硬件的工作。

4.文件系統(tǒng)驅(qū)動(dòng)程序

文件系統(tǒng)驅(qū)動(dòng)程序也是核心態(tài)可加載模塊(以.SYS為擴(kuò)展名system32\drivers),文件系統(tǒng)其實(shí)是強(qiáng)加給存儲(chǔ)硬件的一種文件存放規(guī)則。某類文件系統(tǒng)其實(shí)就是按照他的文件存取規(guī)則在存儲(chǔ)器上組織文件的信息。比如FAT32 按照FAT32的存儲(chǔ)規(guī)則來存放文件ext2又按照ext2的文件規(guī)則存放文件。

文件系統(tǒng)按照I/O管理的接口標(biāo)準(zhǔn)來實(shí)現(xiàn)一組存儲(chǔ)規(guī)則,同時(shí)文件系統(tǒng)也可以將信息按照自己的存儲(chǔ)方式請求I/O管理單元,讓I/O管理單元通過這個(gè)設(shè)備的設(shè)備驅(qū)動(dòng)程序?qū)⑿畔⒋娣诺皆撛O(shè)備上。

這樣的方式使得文件系統(tǒng)只負(fù)責(zé)存儲(chǔ)規(guī)則的定義。而驅(qū)動(dòng)程序去處理硬件的調(diào)度(比如如何移動(dòng)磁頭臂,采用什么調(diào)度算法等)而I/O管理僅僅是他們之間的協(xié)調(diào)員,至于如何協(xié)調(diào),I/O管理向外定義了自己的標(biāo)準(zhǔn)。

5.圖形設(shè)備驅(qū)動(dòng)

這個(gè)設(shè)備有點(diǎn)獨(dú)特,從圖上來看,(這個(gè)圖是windows 2000的體系結(jié)構(gòu)圖)好像只有內(nèi)核模式設(shè)備驅(qū)動(dòng)也就是win32k.sys才能啟動(dòng)。圖形設(shè)備驅(qū)動(dòng)其實(shí)和其他的設(shè)備驅(qū)動(dòng)程序我想也不會(huì)有太大的差別(以后看代碼在了解)。

不過有一點(diǎn)可以了解,那就是圖形設(shè)備驅(qū)動(dòng)是由win32k來驅(qū)動(dòng)的,估計(jì)提供的也是硬件驅(qū)動(dòng)。

6.win32k

這個(gè)東西應(yīng)該是windows所說的win32子系統(tǒng)的內(nèi)核部分(原生子系統(tǒng),其他的子系統(tǒng)是可以分割的),如果沒有這個(gè)子系統(tǒng)windows就不能運(yùn)行?(好像微軟是這么說的,原因好像是win32 的文檔化的 API都是通過這個(gè)子系統(tǒng)實(shí)現(xiàn)的,據(jù)說最初的子系統(tǒng)都通過CSRSS來實(shí)現(xiàn),這個(gè)東西最初好像包含至少3個(gè)子系統(tǒng),1.win32,2.OS/2,3.POSIX,隨著win32的羽翼逐漸豐滿,在發(fā)行時(shí)就不再包含其他兩個(gè)。但是還是依然叫CSRSS,慢慢看代碼才知道,這些都是道聽途說)。

win32k也被劃分成兩個(gè)部分,第一個(gè)是USER32,第二個(gè)是GDI32,

ReactOS的win32K估計(jì)基本上都是通過wine移植過來的。

USER32:

包含了windows管理的操作吧,比如如何創(chuàng)建窗口,顯示窗口,隱藏窗口,移動(dòng)窗口排列窗口z軸,對擁有窗口的Z軸排序,Region(可視區(qū)域)操作,鼠標(biāo)集中測試等。

GDI32:

包含圖形設(shè)備的繪制操作(這些操作也可以叫服務(wù)),比如畫點(diǎn),畫線,位圖操作等,GDI會(huì)將一些復(fù)雜的繪圖操作轉(zhuǎn)變成簡單的繪制請求發(fā)送給圖形驅(qū)動(dòng)程序(如果這個(gè)圖形驅(qū)動(dòng)程序不支持復(fù)雜繪制)還有就是一些設(shè)備無關(guān)的位圖操作,有的可以保存在內(nèi)存或文件,而如果將設(shè)備無關(guān)的位圖輸出的話就會(huì)被轉(zhuǎn)換成設(shè)備相關(guān)的位圖然后再輸出。

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多