- 相關(guān)推薦
Windows NT中的登記項(xiàng)及其完整性
摘要: 該文結(jié)合Windows中的.INI文件,較全面、深入地介紹了Windows NT中的配置數(shù)據(jù)庫——登記項(xiàng),最后就Windows NT如何維護(hù)登記項(xiàng)的完整性加以討論。目前,許多Windows用戶升級到Windows NT。Windows通過.INI文件來記錄系統(tǒng)運(yùn)行參數(shù),那么,對于Windows NT,它又是如何保證系統(tǒng)協(xié)調(diào)一致工作的呢?
登記項(xiàng)(Registry)是Windows NT配置數(shù)據(jù)庫——結(jié)構(gòu)化的記錄集,它類似于Windows中的.INI文件。登記項(xiàng)提供了一個(gè)安全而統(tǒng)一的數(shù)據(jù)庫,在其中以分層格式存儲配置,而不像Windows那樣用大量的.INI文件。這樣,有助于簡化管理,使管理員易于在Windows NT中使用管理工具提供本地或遠(yuǎn)程服務(wù)。
1.登記項(xiàng)的使用
@@12A06700.GIF;圖1@@
Windows NT組件以下述方法使用登記項(xiàng)。
硬件數(shù)據(jù)(NTDETECT) 啟動Windows NT時(shí),登記項(xiàng)接收易失硬件配置數(shù)據(jù)——計(jì)算機(jī)中檢測到的硬件信息。在基于X86的計(jì)算機(jī)上,NTDETECT.COM程序做這些事情。在基于RISC的計(jì)算機(jī)上,此信息從固件中抽取。
Windows NT內(nèi)核(NTOSKRNL) 啟動期間,Windows NT內(nèi)核從登記項(xiàng)選取信息,包括要裝入什么設(shè)備驅(qū)動程序,以及用什么次序裝入,內(nèi)核傳送回它自身的信息,例如版權(quán)號等。
設(shè)備驅(qū)動程序 設(shè)備驅(qū)動程序也向登記項(xiàng)傳送數(shù)據(jù),并從登記項(xiàng)接收裝入和配置參數(shù)。性能良好的設(shè)備驅(qū)動程序告訴登記項(xiàng)它在使用什么系統(tǒng)資源,例如,硬件中斷或DMA通道。設(shè)備驅(qū)動程序還報(bào)告所發(fā)現(xiàn)的配置數(shù)據(jù)。
管理/配置工具 Windows NT還提供大量其它接口,允許管理員修改系統(tǒng)配置數(shù)據(jù),例如Control Panel、User Manager和Windows NT Setup。
Setup 程序 為應(yīng)用程序或硬件運(yùn)行Windows NT Setup程序或其它設(shè)置程序時(shí),程序可以對登記項(xiàng)增加新的配置數(shù)據(jù)。
Win16 應(yīng)用程序 Windows NT為了與一些應(yīng)用程序和相關(guān)工具(如setup程序)兼容也支持.INI文件。因?yàn),一些?yīng)用程序(特別是16位Windows應(yīng)用程序)現(xiàn)階段將繼續(xù)使用.INI文件。AUTOEXEC.BAT和CONFIG.SYS文件也將存在,以提供對MS-DOS和Windows 3.1應(yīng)用的兼容。當(dāng)安裝一個(gè)基于Windows3.1的應(yīng)用時(shí),應(yīng)用的setup程序像在Windows中一樣創(chuàng)建它自己的.INI文件或在WIN.INI或SYSTEM.INI文件中創(chuàng)建入口。但是,這些入口不能在登記項(xiàng)中升級,因?yàn)檫@些應(yīng)用不知道如何訪問登記項(xiàng)。因此,基本的SYSTEM.INI、WIN.INI和WINFILE.INI文件在Windows NT中放于根目錄下。
2.登記項(xiàng)的層次結(jié)構(gòu)
@@12A06701.GIF;圖2@@
登記項(xiàng)以類似磁盤上的目錄和文件那樣的層次結(jié)構(gòu)進(jìn)行組織。
@@12A06702.GIF;表1@@
登記項(xiàng)與Windows中的.INI文件有許多相似之處。關(guān)鍵字類似于.INI文件中的小節(jié),一個(gè)值項(xiàng)對應(yīng)于.INI文件中小節(jié)里的一條設(shè)置項(xiàng)。然而,登記項(xiàng)可以包含次關(guān)鍵字,而.INI文件不支持小節(jié)的嵌套;登記項(xiàng)中的值項(xiàng)還可以包含可執(zhí)行代碼,而在.INI文件中設(shè)置項(xiàng)只是簡單的串。同一臺計(jì)算機(jī)上有多個(gè)用戶,登記項(xiàng)可以存儲每個(gè)用戶的特性,而.INI文件中卻不可能。
3.登記項(xiàng)子樹
登記項(xiàng)結(jié)構(gòu)化為4個(gè)關(guān)鍵字子樹的集合。這些關(guān)鍵字包括每個(gè)計(jì)算機(jī)和每個(gè)用戶的配置信息。每個(gè)計(jì)算機(jī)信息包括安裝的軟硬件信息,以及特定計(jì)算機(jī)上的網(wǎng)絡(luò)設(shè)置。每個(gè)用戶信息包括桌面設(shè)置、軟件選擇和打印機(jī)設(shè)置。訪問任何關(guān)鍵字都要通過以下4個(gè)子樹。
(1)HKEY-LOCAL-MACHINE
包括有關(guān)本地機(jī)器的所有配置信息。這個(gè)子樹不管哪個(gè)用戶登錄以及使用什么軟件而保留相同。在這個(gè)子樹中的信息由應(yīng)用程序、設(shè)備驅(qū)動程序和Windows NT操作系統(tǒng)使用,以確定本地機(jī)器的配置數(shù)據(jù)。其中部分信息用于引導(dǎo)Windows NT。
HKEY-LOCAL-MACHINE關(guān)鍵字有5個(gè)次關(guān)鍵字——Hardware、Security Account Manager (SAM)、Security、Software和System。其中后4個(gè)次關(guān)鍵字都看作是配置元,因?yàn),它們在\winnt-root\SYSTEM 32\CONFIG目錄中有相應(yīng)的文件。應(yīng)用程序可以查詢所有5個(gè)關(guān)鍵字,但只可以對Software和System關(guān)鍵字增加信息。
(2)KKEY-USERS
容納了當(dāng)前登錄用戶的配置設(shè)置和缺省的用戶配置文件。因此,HKEY-USERS關(guān)鍵字包括DEFAULT次關(guān)鍵字和一個(gè)或多個(gè)以用戶的SIDs (Windows NT用以識別用戶的安全身份號)為名稱的次關(guān)鍵字。DEFAULT關(guān)鍵字分配信息給本地機(jī)器上的新用戶,它對應(yīng)的文件為\winnt-root\SYSTEM32\CONFIG目錄下的USERDEF文件。登記項(xiàng)中每個(gè)用戶的信息分別保存在\winnt-root\SYSTEM32\CONFIG目錄下的USERxxx和USERxxx.LOG文件中。當(dāng)一個(gè)用戶登錄時(shí),用戶的配置信息拷貝到HKEY-CURRENT-USER中,直到用戶退出登錄。在這期間,用戶改變的任何設(shè)置都記錄在HKEY-CURRENT-USER和HKEY-USERS的相應(yīng)入口中。
缺省情況下,用戶的配置文件保存在\winnt-root\SYSTEM32\CONFIG目錄中,但對于Windows NT Advanced Server的域管理,它們可以放在本地機(jī)器上或存儲在遠(yuǎn)程主機(jī)上。
(3)HKEY-CURRENT-USER
當(dāng)前登錄到機(jī)器上用戶的有關(guān)信息。這些信息以前是存儲在WIN.INI初始化文件中。這個(gè)子樹有一份拷貝作為單個(gè)文件或配置元存儲在機(jī)器上。當(dāng)一個(gè)用戶登錄時(shí),用戶的安全身份號(SID)與登記項(xiàng)中的已知的SIDs進(jìn)行比較,如果系統(tǒng)識別了用戶登錄的SID,系統(tǒng)就裝載這個(gè)用戶的配置設(shè)置;否則,系統(tǒng)使用保存在HKEY-USERS\.DEFAULT中的配置信息。
HKEY-CURRENT-USER關(guān)鍵字由以下次關(guān)鍵字組成:Console、Control Panel、Environment、Keyboard Layout、Network、Printers、Program Groups、Software和Windiws 3.
1 Migration。
(4)HKEY-CLASSES-ROOT
這個(gè)子樹提供入口來定義資源的類以及與這些類相關(guān)的特性。包括軟件配置信息,特別是對象鏈接與嵌入(OLE)和Windows外殼應(yīng)用程序使用的信息。每項(xiàng)擴(kuò)展名與能使用這種類型文件的應(yīng)用相聯(lián)系,例如,HKEY-CLASSES-ROOT關(guān)鍵字中包括.avi、.bmp和.DOC等許多次關(guān)鍵字。這個(gè)子樹的目的是提供與Windows 3.1登記數(shù)據(jù)庫的兼容性。
4.登記項(xiàng)的編輯
(1)Registry Editor
Registry Editor程序(REGEDT32.EXE)是一種工具,允許管理員查看和操作登記項(xiàng)的配置,它位于\winnt-root\SYSTEM32目錄中。缺省情況下,在Program Manager的任何程序組中都不出現(xiàn)。管理員可以完全控制登記項(xiàng),并根據(jù)需要進(jìn)行改變,而其他用戶只可以對這個(gè)登記項(xiàng)進(jìn)行讀訪問。管理員可以通過Security菜單,在Registry關(guān)鍵字上改變權(quán)限。Registry Editor主要用于幫助查找故障和解決問題?梢源鎯Φ怯涰(xiàng)的段落到磁盤上,并將其傳送到另一臺計(jì)算機(jī)上,以進(jìn)行分析。還可以通過網(wǎng)絡(luò)中的RPC服務(wù),遠(yuǎn)程查看登記項(xiàng)。
(2)WinMSD
Registry Editor還可以從WinMSD程序啟動,從Tools菜單選擇Registry Editor項(xiàng)。WinMSD 是Windows NT的診斷工具,用于查看存放在登記項(xiàng)中的系統(tǒng)配置信息,它位于\winnt-root\SYSTEM32目錄中。
(3)Find Key命令
從Registry Editor的View菜單中選擇Find Key命令,可以查看登記項(xiàng)的特定關(guān)鍵字(但不能查看值項(xiàng))。關(guān)鍵字出現(xiàn)在Registry Editor窗口的左邊格中。查找從當(dāng)前選擇的關(guān)鍵字開始,向下(或向上)開始搜索所有預(yù)定義關(guān)鍵字及其所有的子關(guān)鍵字。查找過程局限在子樹范圍內(nèi),也就是說,在HKEY-LOCAL-MACHINE窗口中查找,則不會查找HKEY-CURRENT-USER下的關(guān)鍵字。
錯(cuò)誤使用Registry Editor會引起嚴(yán)重的、系統(tǒng)范圍的問題,導(dǎo)致需要重新安裝Windows NT。使用此工具一定要當(dāng)心。一般用戶可以通過Control Panel和Windows NT Setup程序來改變登記項(xiàng)中的內(nèi)容。
5.登記項(xiàng)的完整性
Windows NT通過配置設(shè)置來維護(hù)登記項(xiàng)的完整性。
配置設(shè)置可簡單認(rèn)為是一組系統(tǒng)參數(shù)。Windows NT工作站有兩套配置設(shè)置——CurrentControlSet和LastKnownGood(LKG)。好比有兩個(gè)CONFIG.SYS文件。
CurrentControlSet是HKEY-LOCAL-MACHINE子樹中SYSTEM配置元下的一個(gè)關(guān)鍵字,鏈接啟動系統(tǒng)的配置設(shè)置。這些設(shè)置反映當(dāng)前控制狀態(tài)。
LastKnownGood是HKEY-LOCAL-MACHINE子樹中SYSTEM配置元下Select關(guān)鍵字中的一個(gè)值項(xiàng),反映最后一次成功啟動期間使用的配置設(shè)置。它起備份作用,用于當(dāng)前配置不能啟動系統(tǒng)時(shí)。當(dāng)完成登錄后才認(rèn)為是成功啟動,這時(shí)創(chuàng)建LastKnowGood配置。
有兩種途徑使用LKG——自動轉(zhuǎn)換和手工執(zhí)行。當(dāng)啟動期間,任何服務(wù)遇到問題時(shí),它將自動地告訴系統(tǒng)轉(zhuǎn)換用LKG系統(tǒng)參數(shù)。如果在啟動菜單選擇Windows NT后,迅速按空格鍵,一個(gè)新菜單又出現(xiàn),可以從這個(gè)菜單中選擇一種啟動數(shù)據(jù),用當(dāng)前配置設(shè)置還是用LKG來啟動系統(tǒng)。
在\winnt-root\SYSTEM32\CONFIG目錄中還有一個(gè)文件——SYSTEM.ALT對登記項(xiàng)起維護(hù)作品。SYSTEM.ALT是SYSTEM配置元(SYSTEM文件)的備份文件,以防SYSTEM這個(gè)文件存儲在壞扇區(qū)上。如果Windows NT在啟動時(shí)不能順利獲得系統(tǒng)配置元,它將自動轉(zhuǎn)去讀SYSTEM.ALT文件。
作者:不詳
【W(wǎng)indows NT中的登記項(xiàng)及其完整性】相關(guān)文章:
windows nt環(huán)境下fddi網(wǎng)卡驅(qū)動程序設(shè)計(jì)03-18
在Delphi中巧用Windows 的API函數(shù)03-20
Windows CE中實(shí)現(xiàn)藍(lán)牙串口驅(qū)動程序03-18
LonWorks及其在智能小區(qū)中的應(yīng)用03-21
目標(biāo)規(guī)劃及其在經(jīng)濟(jì)中的應(yīng)用12-26
Relay技術(shù)及其在WiMAX中的應(yīng)用03-07
數(shù)據(jù)的完整性在數(shù)據(jù)庫應(yīng)用系統(tǒng)中的設(shè)計(jì)與實(shí)施05-06
詞組堆迭句及其在翻譯中的應(yīng)用03-14