WINDOWS注冊(cè)表基礎(chǔ)知識(shí)
2009-08-28 17:14:55網(wǎng)絡(luò)資源
Windows注冊(cè)表是幫助Windows控制硬件、軟件、用戶(hù)環(huán)境和Windows界面的一套數(shù)據(jù)文件,注冊(cè)表包含在Windows目錄下兩個(gè)文件 system.dat和user.dat里,還有它們的備份system.da0和user.da0。通過(guò)Windows目錄下的regedit.exe 程序可以存取注冊(cè)表數(shù)據(jù)庫(kù)。在以前,在windows的更早版本(在Win95以前),這些功能是*win.ini,system.ini和其他和應(yīng)用程序有關(guān)聯(lián)的.ini文件來(lái)實(shí)現(xiàn)的.
在windows操作系統(tǒng)家族中,system.ini和win.ini這兩個(gè)文件包含了操作系統(tǒng)所有的控制功能和應(yīng)用程序的信息, system.ini管理計(jì)算機(jī)硬件而win.ini管理桌面和應(yīng)用程序。所有驅(qū)動(dòng)、字體、設(shè)置和參數(shù)會(huì)保存在.ini文件中,任何新程序都會(huì)被記錄在. ini文件中。這些記錄會(huì)在程序代碼中被引用。因?yàn)槭躻in.ini和system.ini文件大小的限制,程序員添加輔助的.INI文件以用來(lái)控制更多的應(yīng)用程序。舉例來(lái)說(shuō),微軟的Excel有一個(gè)excel.ini文件,它包含著選項(xiàng)、設(shè)置、缺省參數(shù)和其他關(guān)系到Excel運(yùn)行正常的信息。在 system.ini和win.ini中只需要指出excel.ini的路徑和文件名即可。
早在Dos和Win3.x的時(shí)代,大部分的應(yīng)用程序都是采用了 ini 文件(初始化文件)來(lái)保存一些配置信息,如設(shè)置路徑,環(huán)境變量等。system.ini和win.ini控制著所有windows和應(yīng)用程序的特征和存取方法,它在少數(shù)的用戶(hù)和少數(shù)應(yīng)用程序的環(huán)境中工作的很好。隨著應(yīng)用程序的數(shù)量和復(fù)雜性越來(lái)越大,則需要在.ini文件中添加更多的參數(shù)項(xiàng)。這樣下來(lái),在一個(gè)變化的環(huán)境中,在應(yīng)用程序安裝到系統(tǒng)中后,每個(gè)人都會(huì)更改.ini文件。然而,沒(méi)有一個(gè)人在刪除應(yīng)用程序后刪除.ini文件中的相關(guān)設(shè)置,所以 system.ini和win.ini這個(gè)兩個(gè)文件會(huì)變的越來(lái)越大。每增加的內(nèi)容會(huì)導(dǎo)致系統(tǒng)性能越來(lái)越慢。而且每次應(yīng)用程序的升級(jí)都出現(xiàn)這樣的難題:升級(jí)會(huì)增加更多的參數(shù)項(xiàng)但是從來(lái)不去掉舊的設(shè)置。而且還有一個(gè)明顯的問(wèn)題,一個(gè).ini文件的最大尺寸是64KB。為了解決這個(gè)問(wèn)題,軟件商自己開(kāi)始支持自己的.ini文件,然后指向特定的ini文件如win.ini和system.ini文件。這樣下來(lái)多個(gè).ini文件影響了系統(tǒng)正常的存取級(jí)別設(shè)置。如果一個(gè)應(yīng)用程序的.ini文件和WIN.INI文件設(shè)置起沖突,究竟是誰(shuí)的優(yōu)先級(jí)更高呢?
注冊(cè)表最初被設(shè)計(jì)為一個(gè)應(yīng)用程序的數(shù)據(jù)文件相關(guān)參考文件,最后擴(kuò)展成對(duì)于32位操作系統(tǒng)和應(yīng)用程序包括了所有功能下的東東。注冊(cè)表是一套控制操作系統(tǒng)外表和如何響應(yīng)外來(lái)事件工作的文件。這些“事件”的范圍從直接存取一個(gè)硬件設(shè)備到接口如何響應(yīng)特定用戶(hù)到應(yīng)用程序如何運(yùn)行等等。注冊(cè)表因?yàn)樗哪康暮托再|(zhì)變的很復(fù)雜,它被設(shè)計(jì)為專(zhuān)門(mén)為32位應(yīng)用程序工作,文件的大小被限制在大約40MB。利用一個(gè)功能強(qiáng)大的注冊(cè)表數(shù)據(jù)庫(kù)來(lái)統(tǒng)一集中地管理系統(tǒng)硬件設(shè)施,軟件配置等信息,從而方便了管理,增強(qiáng)了系統(tǒng)的穩(wěn)定性。最直觀的一個(gè)實(shí)例就是,為什么windows下的不同用戶(hù)可以擁有各自的個(gè)性化設(shè)置,如不同的墻紙,不同的桌面。這就是通過(guò)注冊(cè)表來(lái)實(shí)現(xiàn)的。
由此可見(jiàn),注冊(cè)表(Registry)是Windows9x/Me/NT/2000操作系統(tǒng)、硬件設(shè)備以及客戶(hù)應(yīng)用程序得以正常運(yùn)行和保存設(shè)置的核心 “數(shù)據(jù)庫(kù)”;是一個(gè)巨大的樹(shù)狀分層的數(shù)據(jù)庫(kù)。它記錄了用戶(hù)安裝在機(jī)器上的軟件和每個(gè)程序的相互關(guān)聯(lián)關(guān)系;它包含了計(jì)算機(jī)的硬件配置,包括自動(dòng)配置的即插即用的設(shè)備和已有的各種設(shè)備說(shuō)明、狀態(tài)屬性以及各種狀態(tài)信息和數(shù)據(jù)等。
注冊(cè)表都做些什么?
注冊(cè)表是為Windows NT和Windows95中所有32位硬件/驅(qū)動(dòng)和32位應(yīng)用程序設(shè)計(jì)的數(shù)據(jù)文件。16位驅(qū)動(dòng)在Windows NT下無(wú)法工作,所以所有設(shè)備都通過(guò)注冊(cè)表來(lái)控制,一般這些是通過(guò)BIOS來(lái)控制的。在Win9x下,16位驅(qū)動(dòng)會(huì)繼續(xù)以實(shí)模式方式設(shè)備工作,它們使用 system.ini來(lái)控制。16位應(yīng)用程序會(huì)工作在NT或者Win9x 下,它們的程序仍然會(huì)參考win.ini和system.ini文件獲得信息和控制。
在沒(méi)有注冊(cè)表的情況下,操作系統(tǒng)不會(huì)獲得必須的信息來(lái)運(yùn)行和控制附屬的設(shè)備和應(yīng)用程序及正確響應(yīng)用戶(hù)的輸入。
在系統(tǒng)中注冊(cè)表是一個(gè)記錄32位驅(qū)動(dòng)的設(shè)置和位置的數(shù)據(jù)庫(kù)。當(dāng)操作系統(tǒng)需要存取硬件設(shè)備,它使用驅(qū)動(dòng)程序,甚至設(shè)備是一個(gè)BIOS支持的設(shè)備。無(wú) BIOS支持的設(shè)備安裝時(shí)必須需要驅(qū)動(dòng),這個(gè)驅(qū)動(dòng)是獨(dú)立于操作系統(tǒng)的,但是操作系統(tǒng)需要知道從哪里找到它們,文件名、版本號(hào)、其他設(shè)置和信息,沒(méi)有注冊(cè)表對(duì)設(shè)備的記錄,它們就不能被使用。
當(dāng)一個(gè)用戶(hù)準(zhǔn)備運(yùn)行一個(gè)應(yīng)用程序,注冊(cè)表提供應(yīng)用程序信息給操作系統(tǒng),這樣應(yīng)用程序可以被找到,正確數(shù)據(jù)文件的位置被規(guī)定,其他設(shè)置也都可以被使用。
注冊(cè)表保存關(guān)于缺省數(shù)據(jù)和輔助文件的位置信息、菜單、按鈕條、窗口狀態(tài)和其他可選項(xiàng)。它同樣也保存了安裝信息(比如說(shuō)日期),安裝軟件的用戶(hù),軟件版本號(hào)和日期,序列號(hào)等。根據(jù)安裝軟件的不同,它包括的信息也不同。
然而,一般來(lái)說(shuō),注冊(cè)表控制所有32位應(yīng)用程序和驅(qū)動(dòng),控制的方法是基于用戶(hù)和計(jì)算機(jī)的,而不依賴(lài)于應(yīng)用程序或驅(qū)動(dòng),每個(gè)注冊(cè)表的參數(shù)項(xiàng)控制了一個(gè)用戶(hù)的功能或者計(jì)算機(jī)功能。用戶(hù)功能可能包括了桌面外觀和用戶(hù)目錄。所以,計(jì)算機(jī)功能和安裝的硬件和軟件有關(guān),對(duì)所以用戶(hù)來(lái)說(shuō)項(xiàng)都是公用的。
有些程序功能對(duì)用戶(hù)有影響,有些時(shí)作用于計(jì)算機(jī)而不是為個(gè)人設(shè)置的,同樣的,驅(qū)動(dòng)可能是用戶(hù)指定的,但在很多時(shí)候,它們?cè)谟?jì)算機(jī)中是通用的。
注冊(cè)表控制用戶(hù)模式的例子有:
★控制面板功能;
★桌面外觀和圖標(biāo);
★網(wǎng)絡(luò)參數(shù);
★瀏覽器功能性和特征。
這些功能中的某些是和用戶(hù)無(wú)關(guān)的,有些是針對(duì)用戶(hù)的。
計(jì)算機(jī)相關(guān)控制項(xiàng)基于計(jì)算機(jī)名,和登陸用戶(hù)無(wú)關(guān)?刂祁(lèi)型的例子是安裝一個(gè)應(yīng)用程序,不管是哪個(gè)用戶(hù),程序的可用性和存取是不變的,然而,運(yùn)行程序圖標(biāo)依賴(lài)于網(wǎng)絡(luò)上登陸的用戶(hù)。網(wǎng)絡(luò)協(xié)議可用性和優(yōu)先權(quán)基于計(jì)算機(jī),但是當(dāng)前連接和用戶(hù)信息相關(guān)。
這里是在注冊(cè)表中基與計(jì)算機(jī)控制條目的一些例子:
★存取控制;
★登陸確認(rèn);
★文件和打印機(jī)共享;
★網(wǎng)卡設(shè)置和協(xié)議;
★系統(tǒng)性能和虛擬內(nèi)存設(shè)置。
沒(méi)有了注冊(cè)表,Win9x和Windows NT 就不太可能存在。它們實(shí)在太復(fù)雜了,以致于用過(guò)去的.ini文件無(wú)法控制,它們的擴(kuò)展能力需要幾乎無(wú)限制的安裝和使用應(yīng)用程序,注冊(cè)表實(shí)現(xiàn)了它。然而,注冊(cè)表比.ini文件更復(fù)雜,理解它如何工作,它做什么和如何用它來(lái)做是有效管理系統(tǒng)的關(guān)鍵。
在系統(tǒng)中注冊(cè)表控制所有32位應(yīng)用程序和它們的功能及多個(gè)應(yīng)用程序的交互,比如復(fù)制和粘貼,它也控制所有的硬件和驅(qū)動(dòng)程序。雖然多數(shù)可以通過(guò)控制面板來(lái)安裝和設(shè)置,理解注冊(cè)表仍是做Windows NT和Win9x系統(tǒng)管理基本常識(shí)。
概括起來(lái),注冊(cè)表中存放著各種參數(shù),直接控制著 Windows 的啟動(dòng)、硬件驅(qū)動(dòng)程序的裝載以及一些 Windows 應(yīng)用程序的運(yùn)行,從而在整個(gè)系統(tǒng)中起著核心作用。它包括:
(1)軟、硬件的有關(guān)配置和狀態(tài)信息,注冊(cè)表中保存有應(yīng)用程序和資源管理器外殼的初始條件、首選項(xiàng)和卸載數(shù)據(jù)。
(2)聯(lián)網(wǎng)計(jì)算機(jī)的整個(gè)系統(tǒng)的設(shè)置和各種許可,文件擴(kuò)展名與應(yīng)用程序的關(guān)聯(lián),硬件部件的描述、狀態(tài)和屬性。
(3)性能記錄和其它底層的系統(tǒng)狀態(tài)信息,以及其它數(shù)據(jù)。