簡介《WindoWsNT技術內幕(第二版)》是供高級計算機專業(yè)人員(包括開發(fā)者和系統(tǒng)管理者)使用的參考書。這些專業(yè)人員希望了解MicrosoftWindoWsNT操作系統(tǒng)中核心組件的內部工作方式。憑借對WindoWSNT內部的了解,在建立運行于WindoWsNT平臺的應用程序時,程序開發(fā)者可以更好地領會在設計選擇背后的基本原理。類似這樣的知識可以幫助他們解決在調試當中的一些復雜問題。因為了解操作系統(tǒng)內部的工作方式有助于理解系統(tǒng)的運作方式,而且在處理故障時也會使系統(tǒng)問題的故障診斷更加容易,所以系統(tǒng)管理者也可以從這些信息得到幫助。在讀過此書以后,您將會更好地理解Wind0WsNT如何工作和為什么會這樣工作。本書是根據(jù)WindoWsNT4.0ServicePack3編寫而成的。在正文中以說明的形式引用了在WindoWsNT5.0中的變更,并在后面加上“(WindowsNT5.0)”以示標記,如下所示:第二版中的差異《WindoWsNT技術內幕(第二版)》中包含了在第一版中的所有主題,并增添了高速緩存管理程序、WindoWsNT文件系統(tǒng)(NTFS)和預覽在WindoWsNT5.0即將出現(xiàn)的更改。第二版與第一版相比,內容更加詳盡。例如本書包含了關鍵系統(tǒng)功能的代碼流程,也更加詳細地描述了關鍵的內部數(shù)據(jù)結構與系統(tǒng)全局變量。本書的這些信息主要來源于對WindowsNT4.0源代碼的閱讀,也來源于同主要的WindoWsNT開發(fā)人員及設計人員的切磋。(在此衷心感謝Micros0ft的大力支持?。┐诵抻啺娴牧硪粋€主要新特性是其中的實驗。盡管我是根據(jù)源代碼來匯集此版本的信息的,但是通過使用一些標準工具(例如內核調試程序和性能監(jiān)視器)以及在WindoWsNT資源工具包、Win32軟件開發(fā)工具包(sDK)和Wind0WsNT設備驅動程序工具包(DDK)中的一些其他工具,您將可以學習或演繹許多有關WindowsNT內部的情況。當您需要使用某些工具來揭示或顯示WindoWsNT內部行為的某些方面時,在“實驗”框中還將列出使用工具時所要執(zhí)行的必要步驟。我建議您在閱讀本書的同時,嘗試著去使用這些工具,實際觀察并體會Wind0WsNT的內部是怎樣工作的,這樣會使您對所讀內容有更深刻的印象。本書沒有包含的主題WindowsNT是一個龐大而復雜的操作系統(tǒng)。本書并未包含所有與WindoWsNT內部有關的內容,而是著重于基本的系統(tǒng)組件。唯一在第一版中出現(xiàn)而在這個版本中沒有涉及的主題是網絡。Wind0WsNT網絡已經發(fā)展成為系統(tǒng)的極其重要的組成部分,可以單獨編寫成書。我希望有一天有人能寫這樣的一本書。本書沒有探討的系統(tǒng)的另一個重要領域是COM(C0mponentObjectMode1)。COM(和DCOM——分布式的COM)是WindoWs分布式面向對象程序設計的構造基礎。在微軟出版社出版的其他幾本書中,詳細講述了有關COM的內容,其中一本是由DaleRogerson寫的《InsideCOM》。最后,因為本書是介紹WindoWsNT內部情況的書,而不是有關用戶、程序設計和系統(tǒng)管理的書,因此本書并不介紹WindoWsNT的使用、程序設計以及配置的方法。本書的結構除了前面三章(分別是“概念和工具”、“系統(tǒng)體系結構”和“系統(tǒng)機制”)覆蓋了在整本書中要用到的基本術語和概念以外,您可以按任意順序讀其他章節(jié),例如進程和線程、內存管理、安全、I/O系統(tǒng)、高速緩存管理程序、WindoWsNT文件系統(tǒng)(NTFs)、Wind0WsNT5.0及以后版本。如果按順序閱讀本書,您將會獲得更多的知識。通知和警告因為本書描述了Wind0WsNT的內部構造和操作,所以在不同版本間某些信息會有所變化(盡管外部接口,例如Win32API,沒有經過不兼容的修改)。例如,我參考了內部WindoWsNT系統(tǒng)例程、數(shù)據(jù)結構和變量以及在內部使用的用來確定資源大小和相關性能的算法和數(shù)值。這些細節(jié)根據(jù)定義在不同版本間會有所變化。說“可能會有變動”,并不是說在本書中的詳細描述在不同的版本間“一定會”改變——但是您不要以為它們不會改變。任何使用了這些非文檔化的接口的軟件在將來發(fā)行的WindoWsNT中可能不會工作。更糟糕的是,當升級新版本的WindoWsNT時,運行在核心態(tài)的軟件(例如設備驅動程序)如果使用了這些非文檔化的接口,可能會導致系統(tǒng)崩潰。更新信息和勘誤表這本書并不完美。毫無疑問,它會存在一些不太準確的地方,或者可能遺漏了一些應該涉及的內容。如果您發(fā)現(xiàn)了您認為不正確的內容或是應該涉及而沒有涉及到的內容,請把電子郵件發(fā)到daves@solsem.com。如果在這個修訂版中存在任何重大錯誤,我準備在微軟出版社技術支持知識庫(Kn0WledgeBase)中以知識庫文章來發(fā)表它們。您可以進入http://mspress.microsoft.com/support/support.htm中查詢“Kn0wledgeBase”。