Windows NT体系结构
生活随笔
收集整理的這篇文章主要介紹了
Windows NT体系结构
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Windows NT中的NT意為New Technology,其實Microsoft自從93年推出的第一個windows NT 3.1到即將發布的windows 7都屬于NT版本的范疇,只不過是Windows 2000之后的版本不再以內核版本號命名。 Microsoft Windows NT 3.1 (1993) Microsoft Windows NT 3.5 (1994) Microsoft Windows NT 3.51 (1995) Microsoft Windows NT 4.0 (1996) Microsoft Windows 2000 (Windows NT 5.0) (1999) Microsoft Windows XP (Windows NT 5.1) (2001) Microsoft Windows Server 2003 (Windows NT 5.2) (2003) Microsoft Windows Vista (Windows NT 6.0) (2006) Microsoft Windows Server 2008 (Windows NT 6.1) (2008) Microsoft Windows 7 (Windows NT 6.1) (2009夏末發布) ? NT體系中最大的特點莫過于系統分為內核模式與用戶模式,在這里就著重談一下這兩個模式的特點。 使用內核模式或者用戶模式是由硬件控制的處理器狀態,NT利用硬件的特性對內存的訪問進行控制。其中對內存頁面的讀寫控制主要體現在3方面:保護系統頁面,用戶程序不可訪問。避免了由于用戶程序錯誤對系統頁面的影響;用戶進程相互之間的保護,隔離用戶進程避免相互干擾;對代碼區域的“不可寫”保護。 內核模式和用戶模式能夠執行的指令也有區別,特權指令只能在內核模式下運行,用戶模式下并不能使用CPU提供的所有功能。 Windows NT使用的模式可以用Performance Monitor查看Processor對象的兩個計數器”Privileged Time”和”User Time”,可看到CPU在內核模式和用戶模式下所花的時間。
?二、
對于Windows Vista(Windows NT 6.0)在內核上的變化下面簡要介紹一下 1、? 線程調度更加公平:更精確地計算線程執行時間,按照線程執行時間而不是時間點調度。 2、? I/O系統的改進 (1)、I/O完成端口的改進:I/O完成端口用于提高系統對I/O處理的吞吐量。之前的版本每次完成都立即切換到發出I/O的那個線程,而不管該線程是否需要I/O完成的結果。在Vista中,延遲到該線程來讀取或者處理此I/O請求,從而避免了不必要的線程環境切換。 (2)、同步I/O可以被取消:既可以取消當前線程發出的I/O,又可以取消其他線程發出的I/O。比如系統的文件對話框都支持取消操作,訪問遠程計算機時在等待連接過程中都可以取消,避免了由于網絡路徑不可用需要等到連接超時之后才能進行下一步操作。 (3)、I/O優先級的改進: 之前版本的I/O優先級都是根據線程I/O優先級來確定,Vista引入了兩種I/O優先級類型--I/O優先級和I/O帶寬預留。這樣使得后臺任務更少的干擾前臺任務。 3、? 內存管理的改進 (1)、內存池的大小可以是動態的:在32位Vista系統中,虛擬內存的分配可以根據需要動態變化。主要針對換頁內存池、非換頁內存池和會話內存池。 (2)、SuperFetch:對應XP中的Prefetcher,Prefetcher在進程啟動時候針對單個進程來預取數據。例如啟動Word這樣比較大的程序時,如果不使用Prefetcher預先處理進程WINWORD.EXE啟動效率會非常低,Prefetcher可以對每個程序預留內存頁面以提高進程啟動的速度。在Vista中,SuperTetch能夠根據更加復雜的模式來預取數據,例如可以跨越多個應用程序。 (3)、ReadyBoost:支持用Flash(閃存)來緩存,介于RAM和硬盤之間,數據可以被壓縮和加密。如果是順序訪問,Flash的速度不如硬盤。但對于緩存的訪問常是隨機的,Flash的性能優于硬盤。 4、? ReadyBoot 引導和停機 (1)、使用引導配置數據庫替代了Boot.ini,存儲在注冊表中????????????? HKEY_LOCAL_MACHINE\BCD00000000. (2)、使用兩個引導程序替代了Ntldr(NT Loader),分別是Windows Boot Manager(\Bootmgr)和OS loader(\Systemroot\System32\Winload.exe) (3)、啟動過程和會話管理方面的改進:對于系統會話和控制臺用戶會話進行隔離,使用不同的會話。 (4)、停機過程的改進:服務可以請求停機等待,也可以指定服務的停機順序。 5、? 可靠性和系統恢復 (1)、內核事務管理器(KTM):用于協調應用程序和資源管理器(包括注冊表和NTFS文件系統) (2)、卷影拷貝(Volume Shadow Copy) 在XP中已經引入,主要用于備份工具 在Server 2003中用于共享文件夾的影像拷貝,作版本的管理。 在Vista中,卷影拷貝服務可以用于系統恢復(System Restore),更加靈活。 (3)、Windows錯誤報告(Windows Error Reporting):之前,未處理的異常是在異常線程環境中執行的,可能會因為該異常線程本身導致發不出錯誤報告。Vista中,線程發送一個消息,由WER服務處理。 6、? 安全性 (1)、BitLocker驅動器加密:對整個OS卷進行加密(要求有1.5G為加密的系統卷) (2)、代碼完整性檢驗(Code Integrity Verification):對OS Loader和內核執行代碼簽名的檢查。 (3)、地址空間布局隨機化(Address Space Load Randomization,ASLR):子系統DLL在用戶進程的地址空間不再是固定的地址位置,用戶棧的位置是隨機的,減少了緩沖區溢出***。 (4)、Windows服務的安全增強:使用“最小特權原則(the principle of least-privilege)”。(5)、UAC(用戶帳戶控制,User Account Control):管理員組成員在運行程序時并不是特權用戶,而是使用標準用戶權限。當需要安裝程序或訪問系統數據時,系統會對操作進行提示。1、內核 Ntoskrnl.exe(NT體系結構中最核心的部分) (1)、執行體功能:進程和線程管理器、虛擬內存管理器、安全引用監視器(Security Reference Monitor)、I/O管理器、即插即用管理器、電源管理器、緩存管理器、其他一些服務組件,比如對象管理器、LPC、一些庫函數和支持函數。 (2)、內核功能:供其他組件使用的底層操作系統、線程調度、中斷處理、多處理器的同步。 此外Ntkrnlpa.exe? 支持PAE(物理地址擴展)的執行體和內核—特殊版本的內核,用于在32位系統對超過4GB物理內存尋址的內核。 2硬件抽象層(HAL) 硬件抽象層用于屏蔽硬件的差異,保證內核在任何硬件環境下保持可移植性,在內核不變的情況下可更換硬件。它對硬件平臺的細節進行了抽象,包括I/O接口,中斷控制器等 Windows 2000/XP/2003支持如下幾種硬件結構 Hal.dll? 標準PC Halacpi.dll 高級配置和電源接口(APIC)PC Halapic.dll 高級可編程中斷控制器(APIC)PC Halaacpi.dll APIC ACPI PC Halmps.dll 多處理器PC Halmacpi.dll 多處理器ACPI PC 3、I/O管理器 (1)、Windows的I/O管理結構靈活,它將磁盤I/O、網絡I/O等抽象成IRP(I/O請求包)。所以I/O管理器是一個用于傳遞IRP的框架,通過IRP控制了所有I/O操作的處理過程(唯一的例外:快速I/O不使用IRP) (2)、I/O管理器工作過程: >為每個I/O操作創建一個IRP >把IRP傳遞給正確的驅動程序 >當I/O操作完成時刪除IRP (3)、驅動程序與I/O管理器的關系: >向I/O管理器登記必要的信息 >接收IRP >執行IRP指定的操作 >把IRP傳回給I/O管理器,或者通過I/O管理器傳遞給另一個驅動程序以便進一步處理。 4、內核模式驅動程序Win32k.sys Win32k.sys包括窗口管理器和圖形設備接口GDI,其作用是高效的處理用戶圖形界面,靈活的管理窗口。 (1)、窗口管理器。控制窗口顯示、管理屏幕輸出、收集來自鍵盤鼠標和其它設備的輸入、把用戶消息傳遞給應用程序。 (2)、圖形設備接口(GDI)。這是針對圖形輸出設備的函數庫,包括畫線、文本和各種圖形的函數,以及一些用于控制圖形操作的函數。 5、環境子系統進程 Win32子系統進程csrss.exe作用包括控制臺窗口、創建或刪除進程或線程、對16位虛擬DOS機的支持。 注:對OS/2和POSIX的支持通過其他方式支持,這里不再說明。 6、子系統DLL: 子系統DLL 包括Kernel32、Advapi32、User32、GDI32等,為Windows應用程序調用系統服務和Win32子系統提供接口模塊。 7、Ntdll.dll 內部支持函數和執行體函數的存根函數,將用戶模式的請求轉譯為內核模式,在這一層上CPU進行環境切換(sysenter/sysexit)。 用戶程序與系統的交互也就是用戶模式和內核模式的切換方式如下, (1)、用戶程序通過子系統直接調用內核執行體所提供的函數 (2)、用戶程序通過子系統調用Win32 User/GDI,直接從用戶模式切換到內核模式,調用完成后返回。 (3)、用戶程序通過環境子系統csrss.exe,相對過程要經過4次環境切換,效率較低。 8、系統進程和系統線程 Smss.exe、Winlogon.exe、Services.exe?
二、對于Windows Vista(Windows NT 6.0)在內核上的變化下面簡要介紹一下 1、? 線程調度更加公平:更精確地計算線程執行時間,按照線程執行時間而不是時間點調度。 2、? I/O系統的改進 (1)、I/O完成端口的改進:I/O完成端口用于提高系統對I/O處理的吞吐量。之前的版本每次完成都立即切換到發出I/O的那個線程,而不管該線程是否需要I/O完成的結果。在Vista中,延遲到該線程來讀取或者處理此I/O請求,從而避免了不必要的線程環境切換。 (2)、同步I/O可以被取消:既可以取消當前線程發出的I/O,又可以取消其他線程發出的I/O。比如系統的文件對話框都支持取消操作,訪問遠程計算機時在等待連接過程中都可以取消,避免了由于網絡路徑不可用需要等到連接超時之后才能進行下一步操作。 (3)、I/O優先級的改進: 之前版本的I/O優先級都是根據線程I/O優先級來確定,Vista引入了兩種I/O優先級類型--I/O優先級和I/O帶寬預留。這樣使得后臺任務更少的干擾前臺任務。 3、? 內存管理的改進 (1)、內存池的大小可以是動態的:在32位Vista系統中,虛擬內存的分配可以根據需要動態變化。主要針對換頁內存池、非換頁內存池和會話內存池。 (2)、SuperFetch:對應XP中的Prefetcher,Prefetcher在進程啟動時候針對單個進程來預取數據。例如啟動Word這樣比較大的程序時,如果不使用Prefetcher預先處理進程WINWORD.EXE啟動效率會非常低,Prefetcher可以對每個程序預留內存頁面以提高進程啟動的速度。在Vista中,SuperTetch能夠根據更加復雜的模式來預取數據,例如可以跨越多個應用程序。 (3)、ReadyBoost:支持用Flash(閃存)來緩存,介于RAM和硬盤之間,數據可以被壓縮和加密。如果是順序訪問,Flash的速度不如硬盤。但對于緩存的訪問常是隨機的,Flash的性能優于硬盤。 4、? ReadyBoot 引導和停機 (1)、使用引導配置數據庫替代了Boot.ini,存儲在注冊表中????????????? HKEY_LOCAL_MACHINE\BCD00000000. (2)、使用兩個引導程序替代了Ntldr(NT Loader),分別是Windows Boot Manager(\Bootmgr)和OS loader(\Systemroot\System32\Winload.exe) (3)、啟動過程和會話管理方面的改進:對于系統會話和控制臺用戶會話進行隔離,使用不同的會話。 (4)、停機過程的改進:服務可以請求停機等待,也可以指定服務的停機順序。?
5、? 可靠性和系統恢復 (1)、內核事務管理器(KTM):用于協調應用程序和資源管理器(包括注冊表和NTFS文件系統) (2)、卷影拷貝(Volume Shadow Copy) 在XP中已經引入,主要用于備份工具 在Server 2003中用于共享文件夾的影像拷貝,作版本的管理。 在Vista中,卷影拷貝服務可以用于系統恢復(System Restore),更加靈活。 (3)、Windows錯誤報告(Windows Error Reporting):之前,未處理的異常是在異常線程環境中執行的,可能會因為該異常線程本身導致發不出錯誤報告。Vista中,線程發送一個消息,由WER服務處理。?
6、? 安全性 (1)、BitLocker驅動器加密:對整個OS卷進行加密(要求有1.5G為加密的系統卷) (2)、代碼完整性檢驗(Code Integrity Verification):對OS Loader和內核執行代碼簽名的檢查。 (3)、地址空間布局隨機化(Address Space Load Randomization,ASLR):子系統DLL在用戶進程的地址空間不再是固定的地址位置,用戶棧的位置是隨機的,減少了緩沖區溢出***。 (4)、Windows服務的安全增強:使用“最小特權原則(the principle of least-privilege)”。 (5)、UAC(用戶帳戶控制,User Account Control):管理員組成員在運行程序時并不是特權用戶,而是使用標準用戶權限。當需要安裝程序或訪問系統數據時,系統會對操作進行提示。轉載于:https://blog.51cto.com/beacon/130715
總結
以上是生活随笔為你收集整理的Windows NT体系结构的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 开发常见错误解决(1)注册.NET En
- 下一篇: Silverlight 2 Custom