在電腦維護(hù)中經(jīng)常會涉及到Windows注冊表的問題,下面同大家講解下Windows注冊表,希望對大家在電腦維護(hù)中有幫助。
Windows注冊表是幫助Windows控制硬件、軟件、用戶環(huán)境和Windows界面的一套數(shù)據(jù)文件,注冊表包含在Windows目錄下兩個文件system.dat和user.dat里,還有它們的備份system.da0和user.da0。通過Windows目錄下的regedit.exe程序可以存取注冊表數(shù)據(jù)庫。在以前,在windows的更早版本(在Win95以前),這些功能是靠win.ini,system.ini和其他和應(yīng)用程序有關(guān)聯(lián)的.ini文件來實現(xiàn)的。
在windows操作系統(tǒng)家族中,system.ini和win.ini這兩個文件包含了操作系統(tǒng)所有的控制功能和應(yīng)用程序的信息,system.ini管理計算機(jī)硬件而win.ini管理桌面和應(yīng)用程序。所有驅(qū)動、字體、設(shè)置和參數(shù)會保存在.ini文件中,任何新程序都會被記錄在.ini文件中。這些記錄會在程序代碼中被引用。因為受win.ini和system.ini文件大小的限制,程序員添加輔助的.INI文件以用來控制更多的應(yīng)用程序。舉例來說,微軟的Excel有一個excel.ini文件,它包含著選項、設(shè)置、缺省參數(shù)和其他關(guān)系到Excel運(yùn)行正常的信息。在system.ini和win.ini中只需要指出excel.ini的路徑和文件名即可。
注冊表的演化
早在Dos和Win3.x的時代,大部分的應(yīng)用程序都是采用了 ini 文件(初始化文件)來保存一些配置信息,如設(shè)置路徑,環(huán)境變量等。system.ini和win.ini控制著所有windows和應(yīng)用程序的特征和存取方法,它在少數(shù)的用戶和少數(shù)應(yīng)用程序的環(huán)境中工作的很好。隨著應(yīng)用程序的數(shù)量和復(fù)雜性越來越大,則需要在.ini文件中添加更多的參數(shù)項。這樣下來,在一個變化的環(huán)境中,在應(yīng)用程序安裝到系統(tǒng)中后,每個人都會更改.ini文件。然而,沒有一個人在刪除應(yīng)用程序后刪除.ini文件中的相關(guān)設(shè)置,所以system.ini和win.ini這個兩個文件會變的越來越大。每增加的內(nèi)容會導(dǎo)致系統(tǒng)性能越來越慢。而且每次應(yīng)用程序的升級都出現(xiàn)這樣的難題:升級會增加更多的參數(shù)項但是從來不去掉舊的設(shè)置。而且還有一個明顯的問題,一個.ini文件的最大尺寸是64KB。為了解決這個問題,軟件商自己開始支持自己的.ini文件,然后指向特定的ini文件如win.ini和system.ini文件。這樣下來多個.ini文件影響了系統(tǒng)正常的存取級別設(shè)置。如果一個應(yīng)用程序的.ini文件和WIN.INI文件設(shè)置起沖突,究竟是誰的優(yōu)先級更高呢?
注冊表最初被設(shè)計為一個應(yīng)用程序的數(shù)據(jù)文件相關(guān)參考文件,最后擴(kuò)展成對于32位操作系統(tǒng)和應(yīng)用程序包括了所有功能下的東東。注冊表是一套控制操作系統(tǒng)外表和如何響應(yīng)外來事件工作的文件。這些“事件”的范圍從直接存取一個硬件設(shè)備到接口如何響應(yīng)特定用戶到應(yīng)用程序如何運(yùn)行等等。注冊表因為它的目的和性質(zhì)變的很復(fù)雜,它被設(shè)計為專門為32位應(yīng)用程序工作,文件的大小被限制在大約40MB。利用一個功能強(qiáng)大的注冊表數(shù)據(jù)庫來統(tǒng)一集中地管理系統(tǒng)硬件設(shè)施,軟件配置等信息,從而方便了管理,增強(qiáng)了系統(tǒng)的穩(wěn)定性。最直觀的一個實例就是,為什么windows下的不同用戶可以擁有各自的個性化設(shè)置,如不同的墻紙,不同的桌面。這就是通過注冊表來實現(xiàn)的。
由此可見,注冊表(Registry)是Windows9x/Me/NT/2000操作系統(tǒng)、硬件設(shè)備以及客戶應(yīng)用程序得以正常運(yùn)行和保存設(shè)置的核心“數(shù)據(jù)庫”;是一個巨大的樹狀分層的數(shù)據(jù)庫。它記錄了用戶安裝在機(jī)器上的軟件和每個程序的相互關(guān)聯(lián)關(guān)系;它包含了計算機(jī)的硬件配置,包括自動配置的即插即用的設(shè)備和已有的各種設(shè)備說明、狀態(tài)屬性以及各種狀態(tài)信息和數(shù)據(jù)等。
注冊表的應(yīng)用
二、注冊表都做些什么?
注冊表是為Windows NT和Windows95中所有32位硬件/驅(qū)動和32位應(yīng)用程序設(shè)計的數(shù)據(jù)文件。16位驅(qū)動在Windows NT下無法工作,所以所有設(shè)備都通過注冊表來控制,一般這些是通過BIOS來控制的。在Win9x下,16位驅(qū)動會繼續(xù)以實模式方式設(shè)備工作,它們使用system.ini來控制。16位應(yīng)用程序會工作在NT或者Win9x 下,它們的程序仍然會參考win.ini和system.ini文件獲得信息和控制。
在沒有注冊表的情況下,操作系統(tǒng)不會獲得必須的信息來運(yùn)行和控制附屬的設(shè)備和應(yīng)用程序及正確響應(yīng)用戶的輸入。
在系統(tǒng)中注冊表是一個記錄32位驅(qū)動的設(shè)置和位置的數(shù)據(jù)庫。當(dāng)操作系統(tǒng)需要存取硬件設(shè)備,它使用驅(qū)動程序,甚至設(shè)備是一個BIOS支持的設(shè)備。無BIOS支持的設(shè)備安裝時必須需要驅(qū)動,這個驅(qū)動是獨(dú)立于操作系統(tǒng)的,但是操作系統(tǒng)需要知道從哪里找到它們,文件名、版本號、其他設(shè)置和信息,沒有注冊表對設(shè)備的記錄,它們就不能被使用。
注冊表控制用戶模式的例子有:
★控制面板功能;
★桌面外觀和圖標(biāo);
★網(wǎng)絡(luò)參數(shù);
★瀏覽器功能性和特征。
這些功能中的某些是和用戶無關(guān)的,有些是針對用戶的。
在windows的開始/運(yùn)行菜單中輸入"regedit"你就可以通過注冊表編輯器看到注冊表,注冊表是什么呢?簡單地說,它是用來對windows操作系統(tǒng)進(jìn)行配置的一個工具.通過它,可以對操作系統(tǒng)及應(yīng)用軟件進(jìn)行優(yōu)化,可以自己設(shè)置windows的使用權(quán)限,可以解決硬件及網(wǎng)絡(luò)設(shè)置不當(dāng)帶來的故障甚至可以改造自己的操作系統(tǒng)。
在windows 3.X時代,主要通過WIN.INI及SYSTEM.INI對windows進(jìn)行配置,但WIN.INI及SYSTEM.INI文件存在著安全性不高,大小受限制等問題,為了解這一問題microsoft公司在WINDOWS98以后的版本中引入了注冊表這一便更好的對windows系統(tǒng)進(jìn)行配置,這就是為什么我們要使用注冊表的原因。
注冊表的作用是保存程序所需要的信息,當(dāng)程序需要這些信息時,就從注冊表里讀出。因此,注冊表最基本的功能就是保存信息。
當(dāng)了解了注冊表的主要功能--保存信息后,再來了解其保存信息后,再來了解保存信息所發(fā)揮的作用!
1,記錄安裝信息;
2,設(shè)置硬件屬性;
3,定制WINDOWS以及應(yīng)用軟件.
注冊表邏輯結(jié)構(gòu)中最基本的是主鍵,子鍵,鍵值項以及鍵值。它們是按照分組的方式來管理和組織的。首先是最底根鍵,每個根鍵下有若干個子鍵,每個子鍵下又可以有若干(一個或多個)子鍵,子鍵下可以有一個或多個鍵值項和鍵值。
根鍵:注冊表中最底層的鍵,類似于磁盤上的根目錄。
子鍵:子鍵位于根鍵下又可以嵌套其他子鍵中,在注冊表的六大根鍵中,有若干的子鍵,而每個子鍵中又可以嵌套成千上萬的子鍵。
鍵值項與鍵值
鍵值項與鍵值:
在每個根鍵和子鍵下,可以有若干鍵值,這種結(jié)構(gòu)類似于磁盤上根目錄和子目錄里的文件和文件內(nèi)容.
windows 9x注冊表邏輯結(jié)構(gòu)中包含六個根鍵,每個根鍵包含著分類不同的信息!在windowsNT/2000/XP中,如果用windows自帶的編輯器打開的時候,只能看到五個,還有一個隱藏的根鍵:HKEY_PERFOR_MANCE_DATA。
*HKEY_CLASS_ROOT
記錄windows操作系統(tǒng)中所有數(shù)據(jù)文件的格式和關(guān)聯(lián)信息,主要記錄不同文件的文件名后綴和與之對應(yīng)的應(yīng)用程序其下子鍵可分為兩類:一類是已經(jīng)注冊的各類文件的擴(kuò)展名,這類子鍵前面都帶有一個".";另一類是各類文件類型有關(guān)信息。
*HKEY_CURRENT_USER
此根根鍵包含當(dāng)前登錄用戶的用戶配置文件信息,這些信息保證不同的用戶登錄計算機(jī)時,使用自己的修改化設(shè)置,例如自己定義的墻紙,自己的收件箱,自己的安全訪問權(quán)限。
*HKEY_LOCAL_MACHINE
此根鍵包含了當(dāng)前計算機(jī)的配置靈氣,包括所安裝的硬件以軟件設(shè)置。這些信息是為所有的用戶登錄系統(tǒng)服務(wù)的。這是事個注冊表中最龐大也是最重要的根鍵!
*HKEY_USERS
HKEY_USERS根鍵包括默認(rèn)用戶的信息(DEFAULT子鍵)和所有以前登陸用戶的信息。
*HKEY_CURRENT_CONFIG
此根鍵實際上是HKDY_LOCAL_MACHINE/CONFIG/0001分支下的數(shù)據(jù)完全一樣。
*HKEY_DYN_DATA根鍵
這個鍵保存每次系統(tǒng)啟動時,創(chuàng)建的系統(tǒng)配置和當(dāng)前性能信息。這個根鍵只存在于windows 9X中
*HKEY_PERFORMANCE_DATA
在windowsNT/2000/XP注冊表中雖然沒有HKEY_DYN_DAT鍵,但是它卻隱藏了一個名為"HKEY_PERFORMANCE_DATA的鍵。所有系統(tǒng)中的動態(tài)信息都是存放在此子鍵中,系統(tǒng)自帶的注冊表編輯器無法看到些鍵。介可以用專門的程序來查看此鍵,比如使用性能監(jiān)視器。