注記的表存儲結構分析
① 線性表的順序存儲結構和線性表的鏈式存儲結構分別是
您好,
這道題的答案是B
首先解題需要了解線性表的定義,順序存儲結構和鏈式存儲結構的區別,他們分別如下:
資料擴展
定義:線性表(Linear List)是由n(n≥0)個數據元素(結點)a[0],a[1],a[2]…,a[n-1]組成的有限序列。
對於線性表而言,有如下幾點需要明確:
①數據元素的個數n定義為表的長度 = "list".length() ("list".length() = 0(表裡沒有一個元素)時稱為空表)
②將非空的線性表(n>=0)記作:(a[0],a[1],a[2],…,a[n-1])
③數據元素a[i](0≤i≤n-1)只是個抽象符號,其具體含義在不同情況下可以不同,一個數據元素可以由若干個數據項組成。數據元素稱為記錄,含有大量記錄的線性表又稱為文件。這種結構具有下列特點:存在一個唯一的沒有前驅的(頭)數據元素;存在一個唯一的沒有後繼的(尾)數據元素;此外,每一個數據元素均有一個直接前驅和一個直接後繼數據元素。
綜上所述,這道題目選擇B項。
② 線性表的鏈式存儲結構和順序存儲結構的區別
順序存儲結構就是用一組地址連續的存儲單元依次存儲該線性表中的各個元素.由於表中各個元素具有相同的屬性,所以佔用的存儲空間相同.因此,在內存中可以通過地址計算直接存取線性表中的任一元素.這種結構的特點是邏輯上相鄰的元素物理上也相鄰.用順序結構存儲的線性表稱作順序表.
線性表按鏈式存儲時,每個數據元素
(結點)的存儲包括數據區和指針區兩個部分.數據區存放結點本身的數據,指針區存放其後繼元素的地址
(沒有後繼元素時設置為空字元(Null)..只要知道該線性表的起始地址
(記錄在頭指針中),表中的各個元素就可通過其間的鏈接關系逐步找到
③ 線性表的存儲結構,在什麼情況下採用順序結構為什麼
看名字就差不多了吧
順序存儲結構就是用一組地址連續的存儲單元依次存儲該線性表中的各個元素。由於表中各個元素具有相同的屬性,所以佔用的存儲空間相同。因此,在內存中可以通過地址計算直接存取線性表中的任一元素。這種結構的特點是邏輯上相鄰的元素物理上也相鄰。用順序結構存儲的線性表稱作順序表。
線性表按鏈式存儲時,每個數據元素 (結點)的存儲包括數據區和指針區兩個部分。數據區存放結點本身的數據,指針區存放其後繼元素的地址 (沒有後繼元素時設置為空字元(Null).。只要知道該線性表的起始地址 (記錄在頭指針中),表中的各個元素就可通過其間的鏈接關系逐步找到
④ 什麼是注冊表,有什麼作用
在windows的開始/運行菜單中輸入"regedit"你就可以通過注冊表編輯器看到注冊表,注冊表是什麼呢?簡單地說,它是用來對windows操作系統進行配置的一個工具.通過它,可以對操作系統及應用軟體進行優化,可以自己設置windows的使用許可權,可以解決硬體及網路設置不當帶來的故障甚至可以改造自己的操作系統.
在windows 3.X時代,主要通過WIN.INI及SYSTEM.INI對windows進行配置,但WIN.INI及SYSTEM.INI文件存在著安全性不高,大小受限制等問題,為了解這一問題MICROSOFT公司在WINDOWS98以後的版本中引入了注冊表這一便更好的對windows系統進行配置,這就是為什麼我們要使用注冊表的原因.
注冊表的作用是保存程序所需要的信息,當程序需要這些信息時,就從注冊表裡讀出.因此,注冊表最基本的功能就是保存信息.
當了解了注冊表的主要功能--保存信息後,再來了解其保存信息後,再來了解保存信息所發揮的作用!
1,記錄安裝信息;
2,設置硬體屬性;
3,定製WINDOWS以及應用軟體.
注冊表邏輯結構中最基本的是主鍵,子鍵,鍵值項以及鍵值.它們是按照分組的方式來管理和組織的.首先是最底根鍵, 每個根鍵下有若干個子鍵,每個子鍵下又可以有若干(一個或多個)子鍵,子鍵下可以有一個或多個鍵值項和鍵值.
根鍵:注冊表中最底層的鍵,類似於磁碟上的根目錄.
子鍵:子鍵位於根鍵下又可以嵌套其他子鍵中,在注冊表的六大根鍵中,有若乾的子鍵,而每個子鍵中又可以嵌套成千上萬的子鍵.
鍵值項與鍵值:在每個根鍵和子鍵下,可以有若干鍵值,這種結構類似於磁碟上根目錄和子目錄里的文件和文件內容.
windows 9x注冊表邏輯結構中包含六個根鍵,每個根鍵包含著分類不同的信息!在windowsNT/2000/XP中,如果用windows自帶的編輯器打開的時候,只能看到五個,還有一個隱藏的根鍵:HKEY_PERFOR_MANCE_DATA.
*HKEY_CLASS_ROOT
記錄windows操作系統中所有數據文件的格式和關聯信息,主要記錄不同文件的文件名後綴和與之對應的應用程序其下子鍵可分為兩類:一類是已經注冊的各類文件的擴展名,這類子鍵前面都帶有一個".";另一類是各類文件類型有關信息.
*HKEY_CURRENT_USER
些根根鍵包含當前登錄用戶的用戶配置文件信息,這些信息保證不同的用戶登錄計算機時,使用自己的修改化設置,例如自己定義的牆紙,自己的收件箱,自己的安全訪問許可權.
*HKEY_LOCAL_MACHINE
此根鍵包含了當前計算機的配置靈氣,包括所安裝的硬體以軟體設置.這些信息是為所有的用戶登錄系統服務的.這是事個注冊表中最龐大也是最重要的根鍵!
*HKEY_USERS
HKEY_USERS根鍵包括默認用戶的信息(DEFAULT子鍵)和所有以前登陸用戶的信息.
*HKEY_CURRENT_CONFIG
此根鍵實際上是HKDY_LOCAL_MACHINE/CONFIG/0001分支下的數據完全一樣.
*HKEY_DYN_DATA根鍵
這個鍵保存每次系統啟動時,創建的系統配置和當前性能信息.這個根鍵只存在於windows 9X中
*HKEY_PERFORMANCE_DATA
在windowsNT/2000/XP注冊表中雖然沒有HKEY_DYN_DAT鍵,但是它卻隱藏了一個名為"HKEY_PERFORMANCE_DATA的鍵.所有系統中的動態信息都是存放在此子鍵中,系統自帶的注冊表編輯器無法看到些鍵.介可以用專門的程序來查看此鍵,比如使用性能監視器.
⑤ 什麼是注冊表它在系統中有什麼作用怎樣找到這些注冊表怎麼判斷這些注冊表的用途
Windows系統注冊表知識完全揭密
Windows注冊表是幫助Windows控制硬體、軟體、用戶環境和Windows界面的一套數據文件,注冊表包含在Windows目錄下兩個文件system.dat和user.dat里,還有它們的備份system.da0和user.da0。通過Windows目錄下的regedit.exe程序可以存取注冊表資料庫。在以前,在windows的更早版本(在Win95以前),這些功能是靠win.ini,system.ini和其他和應用程序有關聯的.ini文件來實現的.
在windows操作系統家族中,system.ini和win.ini這兩個文件包含了操作系統所有的控制功能和應用程序的信息,system.ini管理計算機硬體而win.ini管理桌面和應用程序。所有驅動、字體、設置和參數會保存在.ini文件中,任何新程序都會被記錄在.ini文件中。這些記錄會在程序代碼中被引用。因為受win.ini和system.ini文件大小的限制,程序員添加輔助的.INI文件以用來控制更多的應用程序。舉例來說,微軟的Excel有一個officeexcel.ini文件,它包含著選項、設置、預設參數和其他關繫到Excel運行正常的信息。在system.ini和win.ini中只需要指出excel.ini的路徑和文件名即可。
早在Dos和Win3.x的時代,大部分的應用程序都是採用了ini文件(初始化文件)來保存一些配置信息,如設置路徑,環境變數等。system.ini和win.ini控制著所有windows和應用程序的特徵和存取方法,它在少數的用戶和少數應用程序的環境中工作的很好。隨著應用程序的數量和復雜性越來越大,則需要在.ini文件中添加更多的參數項。
這樣下來,在一個變化的環境中,在應用程序安裝到系統中後,每個人都會更改.ini文件。然而,沒有一個人在刪除應用程序後刪除.ini文件中的相關設置,所以system.ini和win.ini這個兩個文件會變的越來越大。每增加的內容會導致系統性能越來越慢。而且每次應用程序的升級都出現這樣的難題:升級會增加更多的參數項但是從來不去掉舊的設置。而且還有一個明顯的問題,一個.ini文件的最大尺寸是64KB。為了解決這個問題,軟體商自己開始支持自己的.ini文件,然後指向特定的ini文件如win.ini和system.ini文件。這樣下來多個.ini文件影響了系統正常的存取級別設置。如果一個應用程序的.ini文件和WIN.INI文件設置起沖突,究竟是誰的優先順序更高呢?
注冊表最初被設計為一個應用程序的數據文件相關參考文件,最後擴展成對於32位操作系統和應用程序包括了所有功能下的東東。注冊表是一套控制操作系統外表和如何響應外來事件工作的文件。這些「事件」的范圍從直接存取一個硬體設備到介面如何響應特定用戶到應用程序如何運行等等。注冊表因為它的目的和性質變的很復雜,它被設計為專門為32位應用程序工作,文件的大小被限制在大約40MB。利用一個功能強大的注冊表資料庫來統一集中地管理系統硬體設施,軟體配置等信息,從而方便了管理,增強了系統的穩定性。最直觀的一個實例就是,為什麼windows下的不同用戶可以擁有各自的個性化設置,如不同的牆紙,不同的桌面。這就是通過注冊表來實現的。
由此可見,注冊表(Registry)是Windows9x/Me/NT/2000操作系統、硬體設備以及客戶應用程序得以正常運行和保存設置的核心「資料庫」;是一個巨大的樹狀分層的資料庫。它記錄了用戶安裝在機器上的軟體和每個程序的相互關聯關系;它包含了計算機的硬體配置,包括自動配置的即插即用的設備和已有的各種設備說明、狀態屬性以及各種狀態信息和數據等。
一、注冊表都做些什麼?
注冊表是為WindowsNT和Windows95中所有32位硬體/驅動和32位應用程序設計的數據文件。16位驅動在WindowsNT下無法工作,所以所有設備都通過注冊表來控制,一般這些是通過BIOS來控制的。在Win9x下,16位驅動會繼續以實模式方式設備工作,它們使用system.ini來控制。16位應用程序會工作在NT或者Win9x下,它們的程序仍然會參考win.ini和system.ini文件獲得信息和控制。
在沒有注冊表的情況下,操作系統不會獲得必須的信息來運行和控制附屬的設備和應用程序及正確響應用戶的輸入。
在系統中注冊表是一個記錄32位驅動的設置和位置的資料庫。當操作系統需要存取硬體設備,它使用驅動程序,甚至設備是一個BIOS支持的設備。無BIOS支持的設備安裝時必須需要驅動,這個驅動是獨立於操作系統的,但是操作系統需要知道從哪裡找到它們,文件名、版本號、其他設置和信息,沒有注冊表對設備的記錄,它們就不能被使用。
當一個用戶准備運行一個應用程序,注冊表提供應用程序信息給操作系統,這樣應用程序可以被找到,正確數據文件的位置被規定,其他設置也都可以被使用。
注冊表保存關於預設數據和輔助文件的位置信息、菜單、按鈕條、窗口狀態和其他可選項。它同樣也保存了安裝信息(比如說日期),安裝軟體的用戶,軟體版本號和日期,序列號等。根據安裝軟體的不同,它包括的信息也不同。
然而,一般來說,注冊表控制所有32位應用程序和驅動,控制的方法是基於用戶和計算機的,而不依賴於應用程序或驅動,每個注冊表的參數項控制了一個用戶的功能或者計算機功能。用戶功能可能包括了桌面外觀和用戶目錄。所以,計算機功能和安裝的硬體和軟體有關,對所以用戶來說項都是公用的。
有些程序功能對用戶有影響,有些時作用於計算機而不是為個人設置的,同樣的,驅動可能是用戶指定的,但在很多時候,它們在計算機中是通用的。
二、注冊表的結構劃分及相互關系
WINDOWS的注冊表有六大根鍵,相當於一個硬碟被分成了六個分區。
在「運行」對話框中輸入RegEdit,然後單擊「確定」按鈕,則可以運行注冊表編輯器。
Windows98中文版的注冊表Registry(System.dat、User.dat、Config.pol)的數據組織結構。
注冊表的根鍵共六個。這些根鍵都是大寫的,並以HKEY_為前綴;這種命令約定是以Win32API的Registry函數的關鍵字的符號變數為基礎的。
雖然在注冊表中,六個根鍵看上去處於一種並列的地位,彼此毫無關系。但事實上,HKEY_CLASSES_ROOT和HKEY_CURRENT_CONFIG中存放的信息都是HKEY_LOCAL_MACHINE中存放的信息的一部分,而HKEY_CURRENT_USER中存放的信息只是HKEY_USERS存放的信息的一部分。
HKEY_LOCAL_MACHINE包括HKEY_CLASSES_ROOT和HKEY_CURRENT_USER中所有的信息。在每次系統啟動後,系統就映射出HKEY_CURRENT_USER中的信息,使得用戶可以查看和編輯其中的信息。
實際上,HKEY_LOCAL_MACHINE\SOFTWARE\Classes就是HKEY_CLASSES_ROOT,為了用戶便於查看和編輯,系統專門把它作為一個根鍵。同理,HKEY_CURRENT_CONFIG\SY-STEM\CurrentControl就是HKEY_LOCAL_MACHINE\SYSTEM\CurrentControl。
HKEY_USERS中保存了默認用戶和當前登錄用戶的用戶信息。HKEY_CURRENT_USER中保存了當前登錄用戶的用戶信息。
HKEY_DYN_DATA保存了系統運行時的動態數據,它反映出系統的當前狀態,在每次運行時都是不一樣的,即便是在同一台機器上。
根據上面的分析,注冊表中的信息可以分為HKEY_LOCAL_MACHINE和HKEY_USERS兩大類,這兩大類的詳細內容請看後面的介紹。
三、六大根鍵的作用
在注冊表中,所有的數據都是通過一種樹狀結構以鍵和子鍵的方式組織起來,十分類似於目錄結構。每個鍵都包含了一組特定的信息,每個鍵的鍵名都是和它所包含的信息相關的。如果這個鍵包含子鍵,則在注冊表編輯器窗口中代表這個鍵的文件夾的左邊將有「+」符號,以表示在這個文件夾中有更多的內容。如果這個文件夾被用戶打開了,那麼這個「+」就會變成「-」。
1.HKEY_USERS
該根鍵保存了存放在本地計算機口令列表中的用戶標識和密碼列表。每個用戶的預配置信息都存儲在HKEY_USERS根鍵中。HKEY_USERS是遠程計算機中訪問的根鍵之一。
2.HKEY_CURRENT_USER
該根鍵包含本地工作站中存放的當前登錄的用戶信息,包括用戶登錄用戶名和暫存的密碼(註:此密碼在輸入時是隱藏的)。用戶登錄Windows98時,其信息從HKEY_USERS中相應的項拷貝到HKEY_CURRENT_USER中。
3.HKEY_CURRENT_CONFIG
該根鍵存放著定義當前用戶桌面配置(如顯示器等)的數據,最後使用的文檔列表(MRU)和其他有關當前用戶的Windows98中文版的安裝的信息。
4.HKEY_CLASSES_ROOT
根據在Windows98中文版中安裝的應用程序的擴展名,該根鍵指明其文件類型的名稱。
在第一次安裝Windows98中文版時,RTF(RichTextformat)文件與寫字板(WordPad)&127;聯系起來,但在以後安裝了中文Word6.0後,雙擊一個RTF文件時,將自動激活Word。存放在SYSTEM.DAT中的HKEY_CLASSES_ROOT,將替代WIN.INI文件中的[Extensions]&127;小節中的設置項,它把應用程序與文件擴展名聯系起來,它也替代了Windows3.x中的Reg.dat文件中的相似的設置項。
5.HKEY_LOCAL_MACHINE
該根鍵存放本地計算機硬體數據,此根鍵下的子關鍵字包括在SYSTEM.DAT中,用來提供HKEY_LOCAL_MACHINE所需的信息,或者在遠程計算機中可訪問的一組鍵中。
該根鍵中的許多子鍵與System.ini文件中設置項類似。
6.HKEY_DYN_DATA
該根鍵存放了系統在運行時動態數據,此數據在每次顯示時都是變化的,因此,此根鍵下的信息沒有放在注冊表中。
四、注冊表部分重要內容
注冊表是一個大型資料庫Registry。要詳細地分析該資料庫,不是一兩頁就能介紹完。我曾經用了半年多時間分析此資料庫結構。下面只介紹部分重要內容。
(一)HKEY_CLASS_ROOT
1.HKEY_CLASS_ROOT/Paint.Pricture/DefaultIcon雙擊窗口右側的默認字元串,在打開的對話框中刪除原來的「鍵值」,輸入1。重新啟動後,在「我的電腦」中打開Windows目錄,選擇「大圖標」,然後你看到的Bmp文件的圖標再也不是千篇一律的MSPAINT圖標了,而是每個Bmp文件的略圖(前提是未安裝ACDSee等看圖軟體)。
(二)HKEY_CURRENT_USER
1.HKEY_CURRENT_USER\ControlPanel\Desktop中新建串值名MenuShowDelay=0可使「開始」菜單中子菜單的彈出速度提高。
2.在HKEY_CURRENT_USER\ControlPanel\Deskt-op\WindowsMeterics中新建串值名MinAnimate,值為1啟動動畫效果開關窗口,值為0取消動畫效果。
(三)HKEY_LOCAL_MACHINE
1.HKEY_LOCAL_MACHINE\software\microsoft\windows\currentVersion\explorer\usershellfolders保存個人文件夾、收藏夾的路徑。
2.HKEY_LOCAL_MACHINE\system\currentControl-Set\control\keyboardLayouts保存鍵盤使用的語言以及各種中文輸入法。
3.HKEY_LOCAL_MACHINE\software\microsoft\windows\currentVersion\uninstall保存已安裝的Windows應用程序卸載信息。
4.HKEY_LOCAL_MACHINE\system\CurrentControl-Set\services\class保存控制面板-增添硬體設備-設備類型目錄。
5.HKEY_LOCAL_MACHINE\system\Current-ControlSet\control\update設置刷新方式。值為00設置為自動刷新,01設置為手工刷新[在資源管理器中按F5]。
6.HKEY_LOCAL_MACHINE\software\microsoft\win-dows\currentVersion\run保存由控制面板設定的計算機啟動時運行程序的名稱,其圖標顯示在任務條右邊。在「啟動」文件夾程序運行時圖標也在任務條右邊。
7.HKEY_LOCAL_MACHINE\software\microsoft\windows\currentVersion\Policies\Ratings保存IE4.0中文版「安全」\「分級審查」中設置的口令(數據加密),若遺忘了口令,刪除Ratings中的數據即可解決問題。
8.HKEY_LOCAL_MACHINE\software\microsoft\windows\currentVersion\explorer\desktop\nameSpace保存桌面中特殊的圖標,如回收站、收件箱、MSNetwork等。
(四)HKEY_USERS
1.HKEY_USERS\.Default\software\microsoft\internetexplorer\typeURLs保存IE4.0瀏覽器地址欄中輸入的URL地址列表信息。清除文檔菜單時將被清空。
2.HKEY_USERS\.Default\so..\mi..\wi..\current-Version\ex..\menuOrder\startMenu保留程序菜單排序信息。
3.HKEY_USERS\.Default\so..\microsoft\windows\current-Version\explorer\RunMRU保存「開始\運行...」中運行的程序列表信息。清除文檔菜單時將被清空。
4.HKEY_USERS\.Default\so..\microsoft\windows\current-Version\explorer\RecentDocs保存最近使用的十五個文檔的快捷方式(刪除掉可解決文檔名稱重復的毛病),清除文檔菜單時將被清空。
5.HKEY_USERS\.default\software\microsoft\windows\currentVersion\applets保存Windows應用程序的記錄數據。
6.HKEY_USERS\.default\software\microsoft\windows\currentVersion\run保存由用戶設定的計算機啟動時運行程序的名稱,其圖標顯示在任務條右側。
五、與注冊表有關的術語:
①、注冊表:是一個樹狀分層的資料庫。從物理上講,它是System.dat和User.dat兩個文件;從邏輯上講,它是用戶在注冊表編輯器中看到的配置數據。
②、HKEY:「根鍵」或「主鍵」,它的圖標與資源管理器中文件夾的圖標有點兒相像。Windows98將注冊表分為六個部分,並稱之為HKEY_name,它意味著某一鍵的句柄。
③、key(鍵):它包含了附加的文件夾和一個或多個值。
④、subkey(子鍵):在某一個鍵(父鍵)下面出現的鍵(子鍵)。
⑤、branch(分支):代表一個特定的子鍵及其所包含的一切。一個分支可以從每個注冊表的頂端開始,但通常用以說明一個鍵和其所有內容。
⑥、valueentry(值項):帶有一個名稱和一個值的有序值。每個鍵都可包含任何數量的值項。每個值項均由三部分組成:名稱,數據類型,數據。
★名稱:不包括反斜杠的字元、數字、代表符、空格的任意組合。同一鍵中不可有相同的名稱。
★數據類型:包括字元串、二進制、雙字三種。
字元串(REG_SZ):顧名思義,一串ASCII碼字元。如「HelloWorld」,是一串文字或片語。在注冊表中,字元串值一般用來表示文件的描述、硬體的標識等。通常它由字母和數字組成。注冊表總是在引號內顯示字元串。
二進制(REG_BINARY):如F03D990000BC,是沒有長度限制的二進制數值,在注冊表編輯器中,二進制數據以十六進制的方式顯示出來。
雙字(REG_DWORD):從字面上理解應該是DoubleWord,雙位元組值。由1-8個十六進制數據組成,我們可用以十六進制或十進制的方式來編輯。如D1234567。
★數據:值項的具體值,它可以佔用到64KB。
⑦、Default(預設值):每一個鍵至少包括一個值項,稱為預設值(Default),它總是一個字串。
⑥ 注冊表存放在硬碟嗎
注冊表是什麼?
Windows注冊表是幫助Windows控制硬體、軟體、用戶環境和Windows界面的一套數據文件,注冊表包含在Windows目錄下兩個文件system.dat和user.dat里,還有它們的備份system.da0和user.da0。通過Windows目錄下的regedit.exe程序可以存取注冊表資料庫。在以前,在windows的更早版本(在Win95以前),這些功能是靠win.ini,system.ini和其他和應用程序有關聯的.ini文件來實現的.
在windows操作系統家族中,system.ini和win.ini這兩個文件包含了操作系統所有的控制功能和應用程序的信息,system.ini管理計算機硬體而win.ini管理桌面和應用程序。所有驅動、字體、設置和參數會保存在.ini文件中,任何新程序都會被記錄在.ini文件中。這些記錄會在程序代碼中被引用。因為受win.ini和system.ini文件大小的限制,程序員添加輔助的.INI文件以用來控制更多的應用程序。舉例來說,微軟的Excel有一個excel.ini文件,它包含著選項、設置、預設參數和其他關繫到Excel運行正常的信息。在system.ini和win.ini中只需要指出excel.ini的路徑和文件名即可。
早在Dos和Win3.x的時代,大部分的應用程序都是採用了 ini 文件(初始化文件)來保存一些配置信息,如設置路徑,環境變數等。system.ini和win.ini控制著所有windows和應用程序的特徵和存取方法,它在少數的用戶和少數應用程序的環境中工作的很好。隨著應用程序的數量和復雜性越來越大,則需要在.ini文件中添加更多的參數項。這樣下來,在一個變化的環境中,在應用程序安裝到系統中後,每個人都會更改.ini文件。然而,沒有一個人在刪除應用程序後刪除.ini文件中的相關設置,所以system.ini和win.ini這個兩個文件會變的越來越大。每增加的內容會導致系統性能越來越慢。而且每次應用程序的升級都出現這樣的難題:升級會增加更多的參數項但是從來不去掉舊的設置。而且還有一個明顯的問題,一個.ini文件的最大尺寸是64KB。為了解決這個問題,軟體商自己開始支持自己的.ini文件,然後指向特定的ini文件如win.ini和system.ini文件。這樣下來多個.ini文件影響了系統正常的存取級別設置。如果一個應用程序的.ini文件和WIN.INI文件設置起沖突,究竟是誰的優先順序更高呢?
注冊表最初被設計為一個應用程序的數據文件相關參考文件,最後擴展成對於32位操作系統和應用程序包括了所有功能下的東東。注冊表是一套控制操作系統外表和如何響應外來事件工作的文件。這些「事件」的范圍從直接存取一個硬體設備到介面如何響應特定用戶到應用程序如何運行等等。注冊表因為它的目的和性質變的很復雜,它被設計為專門為32位應用程序工作,文件的大小被限制在大約40MB。利用一個功能強大的注冊表資料庫來統一集中地管理系統硬體設施,軟體配置等信息,從而方便了管理,增強了系統的穩定性。最直觀的一個實例就是,為什麼windows下的不同用戶可以擁有各自的個性化設置,如不同的牆紙,不同的桌面。這就是通過注冊表來實現的。
由此可見,注冊表(Registry)是Windows9x/Me/NT/2000操作系統、硬體設備以及客戶應用程序得以正常運行和保存設置的核心「資料庫」;是一個巨大的樹狀分層的資料庫。它記錄了用戶安裝在機器上的軟體和每個程序的相互關聯關系;它包含了計算機的硬體配置,包括自動配置的即插即用的設備和已有的各種設備說明、狀態屬性以及各種狀態信息和數據等。
注冊表都做些什麼?
注冊表是為Windows NT和Windows95中所有32位硬體/驅動和32位應用程序設計的數據文件。16位驅動在Windows NT下無法工作,所以所有設備都通過注冊表來控制,一般這些是通過BIOS來控制的。在Win9x下,16位驅動會繼續以實模式方式設備工作,它們使用system.ini來控制。16位應用程序會工作在NT或者Win9x 下,它們的程序仍然會參考win.ini和system.ini文件獲得信息和控制。
在沒有注冊表的情況下,操作系統不會獲得必須的信息來運行和控制附屬的設備和應用程序及正確響應用戶的輸入。
在系統中注冊表是一個記錄32位驅動的設置和位置的資料庫。當操作系統需要存取硬體設備,它使用驅動程序,甚至設備是一個BIOS支持的設備。無BIOS支持的設備安裝時必須需要驅動,這個驅動是獨立於操作系統的,但是操作系統需要知道從哪裡找到它們,文件名、版本號、其他設置和信息,沒有注冊表對設備的記錄,它們就不能被使用。
當一個用戶准備運行一個應用程序,注冊表提供應用程序信息給操作系統,這樣應用程序可以被找到,正確數據文件的位置被規定,其他設置也都可以被使用。
注冊表保存關於預設數據和輔助文件的位置信息、菜單、按鈕條、窗口狀態和其他可選項。它同樣也保存了安裝信息(比如說日期),安裝軟體的用戶,軟體版本號和日期,序列號等。根據安裝軟體的不同,它包括的信息也不同。
然而,一般來說,注冊表控制所有32位應用程序和驅動,控制的方法是基於用戶和計算機的,而不依賴於應用程序或驅動,每個注冊表的參數項控制了一個用戶的功能或者計算機功能。用戶功能可能包括了桌面外觀和用戶目錄。所以,計算機功能和安裝的硬體和軟體有關,對所以用戶來說項都是公用的。
有些程序功能對用戶有影響,有些時作用於計算機而不是為個人設置的,同樣的,驅動可能是用戶指定的,但在很多時候,它們在計算機中是通用的。
注冊表控制用戶模式的例子有:
★控制面板功能;
★桌面外觀和圖標;
★網路參數;
★瀏覽器功能性和特徵。
這些功能中的某些是和用戶無關的,有些是針對用戶的。
計算機相關控制項基於計算機名,和登陸用戶無關。控制類型的例子是安裝一個應用程序,不管是哪個用戶,程序的可用性和存取是不變的,然而,運行程序圖標依賴於網路上登陸的用戶。網路協議可用性和優先權基於計算機,但是當前連接和用戶信息相關。
這里是在注冊表中基與計算機控制條目的一些例子:
★存取控制;
★登陸確認;
★文件和列印機共享;
★網卡設置和協議;
★系統性能和虛擬內存設置。
沒有了注冊表,Win9x和Windows NT 就不太可能存在。它們實在太復雜了,以致於用過去的.ini文件無法控制,它們的擴展能力需要幾乎無限制的安裝和使用應用程序,注冊表實現了它。然而,注冊表比.ini文件更復雜,理解它如何工作,它做什麼和如何用它來做是有效管理系統的關鍵。
在系統中注冊表控制所有32位應用程序和它們的功能及多個應用程序的交互,比如復制和粘貼,它也控制所有的硬體和驅動程序。雖然多數可以通過控制面板來安裝和設置,理解注冊表仍是做Windows NT和Win9x系統管理基本常識。
概括起來,注冊表中存放著各種參數,直接控制著 Windows 的啟動、硬體驅動程序的裝載以及一些 Windows 應用程序的運行,從而在整個系統中起著核心作用。它包括:
(1)軟、硬體的有關配置和狀態信息,注冊表中保存有應用程序和資源管理器外殼的初始條件、首選項和卸載數據。
(2)聯網計算機的整個系統的設置和各種許可,文件擴展名與應用程序的關聯,硬體部件的描述、狀態和屬性。
(3)性能記錄和其它底層的系統狀態信息,以及其它數據。
如果注冊表受到了破壞,輕者使 Windows 的啟動過程出現異常,重者可能會導致整個系統的完全癱瘓。因此正確地認識、使用,特別是及時備份以及有問題時恢復注冊表,對Windows用戶來說就顯得非常重要。學會了注冊表的知識以及相關應用,便能使你的電腦操作更加得心應手!從而成為一位名副其實的電腦高手!
與注冊表有關的術語:
①、注冊表:是一個樹狀分層的資料庫。從物理上講,它是System.dat和User.dat兩個文件;從邏輯上講,它是用戶在注冊表編輯器中看到的配置數據。
②、HKEY :「根鍵」或「主鍵」,它的圖標與資源管理器中文件夾的圖標有點兒相像。Windows98將注冊表分為六個部分,並稱之為 HKEY_name,它意味著某一鍵的句柄。(圖2)
③、key(鍵):它包含了附加的文件夾和一個或多個值。
④、subkey(子鍵):在某一個鍵(父鍵)下面出現的鍵(子鍵)。
⑤、branch(分支):代表一個特定的子鍵及其所包含的一切。一個分支可以從每個注冊表的頂端開始,但通常用以說明一個鍵和其所有內容。 ⑥、value entry(值項):帶有一個名稱和一個值的有序值。每個鍵都可包含任何數量的值項。每個值項均由三部分組成:名稱,數據類型,數據。(如圖3)
★ 名稱:不包括反斜杠的字元、數字、代表符、空格的任意組合。同一鍵中不可有相同的名稱。
★ 數據類型:包括字元串、二進制、雙字三種。
字元串(REG_SZ):顧名思義,一串ASCII碼字元。如「Hello World」,是一串文字或片語。在注冊表中,字元串值一般用來表示文件的描述、硬體的標識等。通常它由字母和數字組成。注冊表總是在引號內顯示字元串。 二進制(REG_BINARY):如 F03D990000BC ,是沒有長度限制的二進制數值,在注冊表編輯器中,二進制數據以十六進制的方式顯示出來。
雙 字(REG_DWORD):從字面上理解應該是Double Word ,雙位元組值。由1-8個十六進制數據組成,我們可用以十六進制或十進制的方式來編輯。如 D1234567 。
★ 數據: 值項的具體值,它可以佔用到64KB。
⑦、 Default(預設值):每一個鍵至少包括一個值項,稱為預設值(Default),它總是一個字串。
注冊表的內部組織結構及相互關系
計算機配置和預設用戶設置的注冊表數據在Windows NT中被保存在下面這五個文件中:DEFAULT,SAM,SECURITY,SOFTWARE,SYSTEM,NTUSER.DAT。而 Windows9x/Me/2000將所有注冊表文件存入2個文件中:System.dat和User.dat。它們是二進制文件,不能用文本編輯器查看。它們存在於Windows目錄下,具有隱含、系統、只讀屬性。 System.dat包含了計算機特定的配置數據,User.dat包含了用戶特定的數據。User.dat文件的位置在以某個用戶名登錄時,其位於C:\Windows\profiles\用戶名目錄下,系統同時在C:\Windows目錄下保留了一個預設的User.dat文件,以備新用戶使用。內部組織結構是一個類似於目錄管理的樹狀分層的結構。
WINDOWS的注冊表有六大根鍵,相當於一個硬碟被分成了六個分區。
在「運行」對話框中輸入RegEdit,然後單擊「確定」按鈕,則可以運行注冊表編輯器。
左窗格顯示的是注冊表的根鍵,這樣的根鍵共六個。這些根鍵都是大寫的,並以HKEY_為前綴,這種命令約定是以Win32 API的Registry函數的關鍵字的符號變數為基礎的。
雖然在注冊表中,六個根鍵看上去處於一種並列的地位,彼此毫無關系。但事實上,HKEY_CLASSES_ROOT和HKEY_CURRENT_CONFIG中存放的信息都是HKEY_LOCAL_MACHINE中存放的信息的一部分,而HKEY_CURRENT_USER中存放的信息只是HKEY_USERS存放的信息的一部分。HKEY_LOCAL_MACHINE包括HKEY_CLASSES_ROOT和HKEY_CURRENT_USER中所有的信息。在每次系統啟動後,系統就映射出HKEY_CURRENT_USER中的信息,使得用戶可以查看和編輯其中的信息。
實際上,HKEY_LOCAL_MACHINE\SOFTWARE\Classes就是HKEY_CLASSES_ROOT,為了用戶便於查看和編輯,系統專門把它作為一個根鍵。同理,HKEY_CURRENT_CONFIG\SY-STEM\Current Control就是HKEY_LOCAL_MACHINE\SYSTEM\Current Control。
HKEY_USERS中保存了默認用戶和當前登錄用戶的用戶信息。HKEY_CURRENT_USER中保存了當前登錄用戶的用戶信息。
HKEY_DYN_DATA保存了系統運行時的動態數據,它反映出系統的當前狀態,在每次運行時都是不一樣的,即便是在同一台機器上。
根據上面的分析,注冊表中的信息可以分為HKEY_LOCAL_MACHINE和HKEY_USERS兩大類,這兩大類的詳細內容請看後面的介紹。
六大根鍵的作用
注冊表採用「關鍵字」及其「鍵值」來描述登錄項及其數據。所有的關鍵字都是以「HKEY」作為前綴開頭。打個比喻來說,關鍵字更象Windows9X下的瀏覽器里的目錄下的文件,每個文件都會有自己特有的內容和屬性。我們可以在注冊表編輯器下很方便地添加、修改、查詢和刪除注冊表的每一個關鍵字。關鍵字可以分為兩類:一類是由系統定義,一般叫做「預定義關鍵字」;另一類是由應用程序定義的,根據應用軟體的不同,登錄項也就不同。在注冊表中,所有的數據都是通過一種樹狀結構以鍵和子鍵的方式組織起來,十分類似於目錄結構。每個鍵都包含了一組特定的信息,每個鍵的鍵名都是 和它所包含的信息相關的。如果這個鍵包含子鍵,則在注冊表編輯器窗口中代表這個鍵的文件夾的左邊將有「+」符號,以表示在這個文件夾中有更多的內容。如果這個文件夾被用戶打開了,那麼這個「+」就會變成「-」。 下面我們對系統預定義的六大根鍵簡單地介紹一下。
1.HKEY_USERS
該根鍵保存了存放在本地計算機口令列表中的用戶標識和密碼列表,即用戶設置。每個用戶的預配置信息都存儲在HKEY_USERS根鍵中。HKEY_USERS是遠程計算機中訪問的根鍵之一。其內容取決於計算機是否激活了用戶配置文件,若未激活用戶配置文件,則可以看到稱為.DEFAULT的單一子鍵,該子鍵包括和所有用戶相關的各種設置,並且和\Windows下的USER.DAT文件相配合。若激活了用戶配置文件並且正確地執行了登錄,則還有一個「用戶名」的子鍵,該用戶名為用戶登錄的名稱。
2.HKEY_CURRENT_USER
該根鍵包含本地工作站中存放的當前登錄的用戶信息,包括用戶登錄用戶名和暫存的密碼(註:此密碼在輸入時是隱藏的)。用戶登錄Windows 98時,其信息從HKEY_USERS中相應的項拷貝到HKEY_CURRENT_USER中。HKEY_CURRENT_USER下面有7個子關鍵字。其中除RemoteAccess」外,其餘6個都為系統預定義。
AppEvents 這個子鍵里登記已注冊的各種應用事件。
ControlPanel 它裡面涉及到控制面板設置有關的內容。
InstallLocationsMRU windows安裝路徑的有關信息。
Keyboardlayout 關於鍵盤設置的信息。
Network 有關網路設置的信息。
RemoteAccess 安裝IE 時建立的子關鍵字,包含該應用程序的有關信息。
Software 軟體的有關信息。
3.HKEY_CURRENT_CONFIG
該根鍵存放著定義當前用戶桌面配置(如顯示器等)的數據,最後使用的文檔列表(MRU)和其他有關當前用戶的Windows 98中文版的安裝的信息。
4.HKEY_CLASSES_ROOT
該鍵由多個子鍵組成,具體可分為兩種:一種是已經注冊的各類文件的擴展名,另一種是各種文件類型的有關信息。左欄中的子鍵就是各種已經注冊的文件擴展名。 注冊表內己經登記的文件擴展名中,有系統默認和應用程序自定義的擴展名。應用程序只有把自定義的擴展名在注冊表中登記,系統才能識別和關聯使用有關的文檔,但只有經過注冊的擴展名,系統才能自動關聯。根據在Windows 98中文版中安裝的應用程序的擴展名,該根鍵指明其文件類型的名稱。
在第一次安裝Windows 98中文版時,RTF(Rich Text format)文件與寫字板(WordPad)聯系起來,但在以後安裝了中文Word 6.0後,雙擊一個RTF文件時,將自動激活Word。存放在SYSTEM.DAT中的HKEY_CLASSES_ROOT,將替代WIN.INI文件中的[Extensions]小節中的設置項,它把應用程序與文件擴展名聯系起來,它也替代了Windows 3.x中的Reg.dat文件中的相似的設置項。
5.HKEY_LOCAL_MACHINE
注冊表的核心,計算機的各種硬體和軟體的配置均存在於此。它包括以下八個部分:Config配置、Driver驅動程序、Enum即插即用、Hardware硬體、Network網路、Security安全、Software軟體、System系統。每部分中又包括許多子鍵。該根鍵存放本地計算機硬體數據,此根鍵下的子關鍵字包括在SYSTEM.DAT中,用來提供HKEY_LOCAL_MACHINE所需的信息,或者在遠程計算機中可訪問的一組鍵中。該根鍵中的許多子鍵與System.ini文件中設置項類似。
6.HKEY_DYN_DATA
該根鍵存放了系統在運行時動態數據,此數據在每次顯示時都是變化的,因此,此根鍵下的信息沒有放在注冊表中。
⑦ 如何分析oracle資料庫中的表結構
去這里看看??
數據結構被稱為物理(存儲)的數據結構在計算機中的表示(圖片)。它包括一個數據元素表示的關系的表示。
物理結構,也就是由Oracle資料庫所使用的操作系統的文件結構。對於資料庫的物理結構文件,不同版本的Oracle,不同的操作系統平台上的資料庫文件存放的目錄結構不同的物理結構
其作用可分為三類:
數據日誌文件的文件
控制文件
數據文件,數據文件,用於存儲資料庫中的數據,如表,索引等。當讀取數據時,系統首先讀取的數據從資料庫文件,並存儲到數據緩沖器,SGA。
重做日誌文件,重做日誌文件
所有的記錄在資料庫中的信息。這是三種類型的文件,文件中最復雜的,而且要保證資料庫的安全性和資料庫的備份和恢復文件直接。
控制文件
控制文件是一個二進制文件,用來描述資料庫的物理結構,資料庫只需要一個控制文件,控制文件的內容,包括:
>同步需要恢復的數據文件和日誌文件的信息標識資料庫和資料庫的名稱,唯一標識
資料庫,檢查點數量
/
a>
如果有,請記得採納為滿意的答復,謝謝你!我祝你幸福的生活!
vaela
⑧ 數據結構的存儲方式有哪幾種
數據結構的存儲方式有順序存儲方法、鏈接存儲方法、索引存儲方法和散列存儲方法這四種。
1、順序存儲方式:順序存儲方式就是在一塊連續的存儲區域一個接著一個的存放數據,把邏輯上相連的結點存儲在物理位置上相鄰的存儲單元里,結點間的邏輯關系由存儲單元的鄰接掛安息來體現。順序存儲方式也稱為順序存儲結構,一般採用數組或者結構數組來描述。
2、鏈接存儲方法:它比較靈活,其不要求邏輯上相鄰的結點在物理位置上相鄰,結點間的邏輯關系由附加的引用欄位表示。一個結點的引用欄位往往指導下一個結點的存放位置。鏈接存儲方式也稱為鏈接式存儲結構,一般在原數據項中增加應用類型來表示結點之間的位置關系。
3、索引存儲方法:除建立存儲結點信息外,還建立附加的索引表來標識結點的地址。它細分為兩類:稠密索引:每個結點在索引表中都有一個索引項,索引項的地址指示結點所在的的存儲位置;稀疏索引:一組結點在索引表中只對應一個索引項,索引項的地址指示一組結點的起始存儲位置。
4、散列存儲方法:就是根據結點的關鍵字直接計算出該結點的存儲地址。
(8)注記的表存儲結構分析擴展閱讀
順序存儲和鏈接存儲的基本原理
在順序存儲中,每個存儲空間含有所存元素本身的信息,元素之間的邏輯關系是通過數組下標位置簡單計算出來的線性表的順序存儲,若一個元素存儲在對應數組中的下標位置為i,則它的前驅元素在對應數組中的下標位置為i-1,它的後繼元素在對應數組中的下標位置為i+1。
在鏈式存儲結構中,存儲結點不僅含有所存元素本身的信息,還含有元素之間邏輯關系的信息。數據的鏈式存儲結構可用鏈接表來表示。其中data表示值域,用來存儲節點的數值部分。Pl,p2,…,Pill(1n≥1)均為指針域,每個指針域為其對應的後繼元素或前驅元素所在結點的存儲位置。
在數據的順序存儲中,由於每個元素的存儲位置都可以通過簡單計算得到,所以訪問元素的時間都相同;而在數據的鏈接存儲中,由於每個元素的存儲位置保存在它的前驅或後繼結點中,所以只有當訪問到其前驅結點或後繼結點後才能夠按指針訪問到,訪問任一元素的時間與該元素結點在鏈式存儲結構中的位置有關。
⑨ 請問注冊表是干什麼的呢
win+r輸入regedit進入
Windows注冊表是幫助Windows控制硬體、軟體、用戶環境和Windows界面的一套數據文件,注冊表包含在Windows目錄下兩個文件system.dat和user.dat里,還有它們的備份system.da0和user.da0。通過Windows目錄下的regedit.exe程序可以存取注冊表資料庫。在以前,在windows的更早版本(在Win95以前),這些功能是靠win.ini,system.ini和其他和應用程序有關聯的.ini文件來實現的.
在windows操作系統家族中,system.ini和win.ini這兩個文件包含了操作系統所有的控制功能和應用程序的信息,system.ini管理計算機硬體而win.ini管理桌面和應用程序。所有驅動、字體、設置和參數會保存在.ini文件中,任何新程序都會被記錄在.ini文件中。這些記錄會在程序代碼中被引用。因為受win.ini和system.ini文件大小的限制,程序員添加輔助的.INI文件以用來控制更多的應用程序。舉例來說,微軟的Excel有一個excel.ini文件,它包含著選項、設置、預設參數和其他關繫到Excel運行正常的信息。在system.ini和win.ini中只需要指出excel.ini的路徑和文件名即可。
早在Dos和Win3.x的時代,大部分的應用程序都是採用了 ini 文件(初始化文件)來保存一些配置信息,如設置路徑,環境變數等。system.ini和win.ini控制著所有windows和應用程序的特徵和存取方法,它在少數的用戶和少數應用程序的環境中工作的很好。隨著應用程序的數量和復雜性越來越大,則需要在.ini文件中添加更多的參數項。這樣下來,在一個變化的環境中,在應用程序安裝到系統中後,每個人都會更改.ini文件。然而,沒有一個人在刪除應用程序後刪除.ini文件中的相關設置,所以system.ini和win.ini這個兩個文件會變的越來越大。每增加的內容會導致系統性能越來越慢。而且每次應用程序的升級都出現這樣的難題:升級會增加更多的參數項但是從來不去掉舊的設置。而且還有一個明顯的問題,一個.ini文件的最大尺寸是64KB。為了解決這個問題,軟體商自己開始支持自己的.ini文件,然後指向特定的ini文件如win.ini和system.ini文件。這樣下來多個.ini文件影響了系統正常的存取級別設置。如果一個應用程序的.ini文件和WIN.INI文件設置起沖突,究竟是誰的優先順序更高呢?
注冊表最初被設計為一個應用程序的數據文件相關參考文件,最後擴展成對於32位操作系統和應用程序包括了所有功能下的東東。注冊表是一套控制操作系統外表和如何響應外來事件工作的文件。這些「事件」的范圍從直接存取一個硬體設備到介面如何響應特定用戶到應用程序如何運行等等。注冊表因為它的目的和性質變的很復雜,它被設計為專門為32位應用程序工作,文件的大小被限制在大約40MB。利用一個功能強大的注冊表資料庫來統一集中地管理系統硬體設施,軟體配置等信息,從而方便了管理,增強了系統的穩定性。最直觀的一個實例就是,為什麼windows下的不同用戶可以擁有各自的個性化設置,如不同的牆紙,不同的桌面。這就是通過注冊表來實現的。
由此可見,注冊表(Registry)是Windows9x/Me/NT/2000操作系統、硬體設備以及客戶應用程序得以正常運行和保存設置的核心「資料庫」;是一個巨大的樹狀分層的資料庫。它記錄了用戶安裝在機器上的軟體和每個程序的相互關聯關系;它包含了計算機的硬體配置,包括自動配置的即插即用的設備和已有的各種設備說明、狀態屬性以及各種狀態信息和數據等。
二、注冊表都做些什麼?
注冊表是為Windows NT和Windows95中所有32位硬體/驅動和32位應用程序設計的數據文件。16位驅動在Windows NT下無法工作,所以所有設備都通過注冊表來控制,一般這些是通過BIOS來控制的。在Win9x下,16位驅動會繼續以實模式方式設備工作,它們使用system.ini來控制。16位應用程序會工作在NT或者Win9x 下,它們的程序仍然會參考win.ini和system.ini文件獲得信息和控制。
在沒有注冊表的情況下,操作系統不會獲得必須的信息來運行和控制附屬的設備和應用程序及正確響應用戶的輸入。
在系統中注冊表是一個記錄32位驅動的設置和位置的資料庫。當操作系統需要存取硬體設備,它使用驅動程序,甚至設備是一個BIOS支持的設備。無BIOS支持的設備安裝時必須需要驅動,這個驅動是獨立於操作系統的,但是操作系統需要知道從哪裡找到它們,文件名、版本號、其他設置和信息,沒有注冊表對設備的記錄,它們就不能被使用。
當一個用戶准備運行一個應用程序,注冊表提供應用程序信息給操作系統,這樣應用程序可以被找到,正確數據文件的位置被規定,其他設置也都可以被使用。
注冊表保存關於預設數據和輔助文件的位置信息、菜單、按鈕條、窗口狀態和其他可選項。它同樣也保存了安裝信息(比如說日期),安裝軟體的用戶,軟體版本號和日期,序列號等。根據安裝軟體的不同,它包括的信息也不同。
然而,一般來說,注冊表控制所有32位應用程序和驅動,控制的方法是基於用戶和計算機的,而不依賴於應用程序或驅動,每個注冊表的參數項控制了一個用戶的功能或者計算機功能。用戶功能可能包括了桌面外觀和用戶目錄。所以,計算機功能和安裝的硬體和軟體有關,對所以用戶來說項都是公用的。
有些程序功能對用戶有影響,有些時作用於計算機而不是為個人設置的,同樣的,驅動可能是用戶指定的,但在很多時候,它們在計算機中是通用的。
注冊表控制用戶模式的例子有:
★控制面板功能;
★桌面外觀和圖標;
★網路參數;
★瀏覽器功能性和特徵。
這些功能中的某些是和用戶無關的,有些是針對用戶的。
計算機相關控制項基於計算機名,和登陸用戶無關。控制類型的例子是安裝一個應用程序,不管是哪個用戶,程序的可用性和存取是不變的,然而,運行程序圖標依賴於網路上登陸的用戶。網路協議可用性和優先權基於計算機,但是當前連接和用戶信息相關。
這里是在注冊表中基與計算機控制條目的一些例子:
★存取控制;
★登陸確認;
★文件和列印機共享;
★網卡設置和協議;
★系統性能和虛擬內存設置。
沒有了注冊表,Win9x和Windows NT 就不太可能存在。它們實在太復雜了,以致於用過去的.ini文件無法控制,它們的擴展能力需要幾乎無限制的安裝和使用應用程序,注冊表實現了它。然而,注冊表比.ini文件更復雜,理解它如何工作,它做什麼和如何用它來做是有效管理系統的關鍵。
在系統中注冊表控制所有32位應用程序和它們的功能及多個應用程序的交互,比如復制和粘貼,它也控制所有的硬體和驅動程序。雖然多數可以通過控制面板來安裝和設置,理解注冊表仍是做Windows NT和Win9x系統管理基本常識。
概括起來,注冊表中存放著各種參數,直接控制著 Windows 的啟動、硬體驅動程序的裝載以及一些 Windows 應用程序的運行,從而在整個系統中起著核心作用。它包括:
(1)軟、硬體的有關配置和狀態信息,注冊表中保存有應用程序和資源管理器外殼的初始條件、首選項和卸載數據。
(2)聯網計算機的整個系統的設置和各種許可,文件擴展名與應用程序的關聯,硬體部件的描述、狀態和屬性。
(3)性能記錄和其它底層的系統狀態信息,以及其它數據。
如果注冊表受到了破壞,輕者使 Windows 的啟動過程出現異常,重者可能會導致整個系統的完全癱瘓。因此正確地認識、使用,特別是及時備份以及有問題時恢復注冊表,對Windows用戶來說就顯得非常重要。學會了注冊表的知識以及相關應用,便能使你的電腦操作更加得心應手!從而成為一位名副其實的電腦高手!
三、與注冊表有關的術語:
①、注冊表:是一個樹狀分層的資料庫(如圖1)。從物理上講,它是System.dat和User.dat兩個文件;從邏輯上講,它是用戶在注冊表編輯器中看到的配置數據。
②、HKEY :「根鍵」或「主鍵」,它的圖標與資源管理器中文件夾的圖標有點兒相像。Windows98將注冊表分為六個部分,並稱之為 HKEY_name,它意味著某一鍵的句柄。(圖2)
③、key(鍵):它包含了附加的文件夾和一個或多個值。
④、subkey(子鍵):在某一個鍵(父鍵)下面出現的鍵(子鍵)。
⑤、branch(分支):代表一個特定的子鍵及其所包含的一切。一個分支可以從每個注冊表的頂端開始,但通常用以說明一個鍵和其所有內容。
⑥、value entry(值項):帶有一個名稱和一個值的有序值。每個鍵都可包含任何數量的值項。每個值項均由三部分組成:名稱,數據類型,數據。(如圖3)
★ 名稱:不包括反斜杠的字元、數字、代表符、空格的任意組合。同一鍵中不可有相同的名稱。
★ 數據類型:包括字元串、二進制、雙字三種。
字元串(REG_SZ):顧名思義,一串ASCII碼字元。如「Hello World」,是一串文字或片語。在注冊表中,字元串值一般用來表示文件的描述、硬體的標識等。通常它由字母和數字組成。注冊表總是在引號內顯示字元串。
二進制(REG_BINARY):如 F03D990000BC ,是沒有長度限制的二進制數值,在注冊表編輯器中,二進制數據以十六進制的方式顯示出來。
雙 字(REG_DWORD):從字面上理解應該是Double Word ,雙位元組值。由1-8個十六進制數據組成,我們可用以十六進制或十進制的方式來編輯。如 D1234567 。
★ 數據: 值項的具體值,它可以佔用到64KB。
⑦、 Default(預設值):每一個鍵至少包括一個值項,稱為預設值(Default),它總是一個字串。
四、注冊表的內部組織結構及相互關系
計算機配置和預設用戶設置的注冊表數據在Windows NT中被保存在下面這五個文件中:DEFAULT,SAM,SECURITY,SOFTWARE,SYSTEM,NTUSER.DAT。而 Windows9x/Me/2000將所有注冊表文件存入2個文件中:System.dat和User.dat。它們是二進制文件,不能用文本編輯器查看。它們存在於Windows目錄下,具有隱含、系統、只讀屬性。 System.dat包含了計算機特定的配置數據,User.dat包含了用戶特定的數據。User.dat文件的位置在以某個用戶名登錄時,其位於C:\Windows\profiles\用戶名目錄下,系統同時在C:\Windows目錄下保留了一個預設的User.dat文件,以備新用戶使用。內部組織結構是一個類似於目錄管理的樹狀分層的結構(如圖1)。
WINDOWS的注冊表有六大根鍵,相當於一個硬碟被分成了六個分區。
在「運行」對話框中輸入RegEdit,然後單擊「確定」按鈕,則可以運行注冊表編輯器。
圖1左窗格顯示的是注冊表的根鍵,這樣的根鍵共六個。這些根鍵都是大寫的,並以HKEY_為前綴,這種命令約定是以Win32 API的Registry函數的關鍵字的符號變數為基礎的。
雖然在注冊表中,六個根鍵看上去處於一種並列的地位,彼此毫無關系。但事實上,HKEY_CLASSES_ROOT和HKEY_CURRENT_CONFIG中存放的信息都是HKEY_LOCAL_MACHINE中存放的信息的一部分,而HKEY_CURRENT_USER中存放的信息只是HKEY_USERS存放的信息的一部分。HKEY_LOCAL_MACHINE包括HKEY_CLASSES_ROOT和HKEY_CURRENT_USER中所有的信息。在每次系統啟動後,系統就映射出HKEY_CURRENT_USER中的信息,使得用戶可以查看和編輯其中的信息。
實際上,HKEY_LOCAL_MACHINE\SOFTWARE\Classes就是HKEY_CLASSES_ROOT,為了用戶便於查看和編輯,系統專門把它作為一個根鍵。同理,HKEY_CURRENT_CONFIG\SY-STEM\Current Control就是HKEY_LOCAL_MACHINE\SYSTEM\Current Control。
HKEY_USERS中保存了默認用戶和當前登錄用戶的用戶信息。HKEY_CURRENT_USER中保存了當前登錄用戶的用戶信息。
HKEY_DYN_DATA保存了系統運行時的動態數據,它反映出系統的當前狀態,在每次運行時都是不一樣的,即便是在同一台機器上。
根據上面的分析,注冊表中的信息可以分為HKEY_LOCAL_MACHINE和HKEY_USERS兩大類,這兩大類的詳細內容請看後面的介紹。
五、六大根鍵的作用
注冊表採用「關鍵字」及其「鍵值」來描述登錄項及其數據。所有的關鍵字都是以「HKEY」作為前綴開頭。打個比喻來說,關鍵字更象Windows9X下的瀏覽器里的目錄下的文件,每個文件都會有自己特有的內容和屬性。我們可以在注冊表編輯器下很方便地添加、修改、查詢和刪除注冊表的每一個關鍵字。關鍵字可以分為兩類:一類是由系統定義,一般叫做「預定義關鍵字」;另一類是由應用程序定義的,根據應用軟體的不同,登錄項也就不同。在注冊表中,所有的數據都是通過一種樹狀結構以鍵和子鍵的方式組織起來,十分類似於目錄結構。每個鍵都包含了一組特定的信息,每個鍵的鍵名都是 和它所包含的信息相關的。如果這個鍵包含子鍵,則在注冊表編輯器窗口中代表這個鍵的文件夾的左邊將有「+」符號,以表示在這個文件夾中有更多的內容。如果這個文件夾被用戶打開了,那麼這個「+」就會變成「-」。 下面我們對系統預定義的六大根鍵簡單地介紹一下。
1.HKEY_USERS
該根鍵保存了存放在本地計算機口令列表中的用戶標識和密碼列表,即用戶設置。每個用戶的預配置信息都存儲在HKEY_USERS根鍵中。HKEY_USERS是遠程計算機中訪問的根鍵之一。其內容取決於計算機是否激活了用戶配置文件,若未激活用戶配置文件,則可以看到稱為.DEFAULT的單一子鍵,該子鍵包括和所有用戶相關的各種設置,並且和\Windows下的USER.DAT文件相配合。若激活了用戶配置文件並且正確地執行了登錄,則還有一個「用戶名」的子鍵,該用戶名為用戶登錄的名稱。
2.HKEY_CURRENT_USER
該根鍵包含本地工作站中存放的當前登錄的用戶信息,包括用戶登錄用戶名和暫存的密碼(註:此密碼在輸入時是隱藏的)。用戶登錄Windows 98時,其信息從HKEY_USERS中相應的項拷貝到HKEY_CURRENT_USER中。HKEY_CURRENT_USER下面有7個子關鍵字。其中除RemoteAccess」外,其餘6個都為系統預定義。
AppEvents 這個子鍵里登記已注冊的各種應用事件。
ControlPanel 它裡面涉及到控制面板設置有關的內容。
InstallLocationsMRU windows安裝路徑的有關信息。
Keyboardlayout 關於鍵盤設置的信息。
Network 有關網路設置的信息。
RemoteAccess 安裝IE 時建立的子關鍵字,包含該應用程序的有關信息。
Software 軟體的有關信息。
3.HKEY_CURRENT_CONFIG
該根鍵存放著定義當前用戶桌面配置(如顯示器等)的數據,最後使用的文檔列表(MRU)和其他有關當前用戶的Windows 98中文版的安裝的信息。
4.HKEY_CLASSES_ROOT
該鍵由多個子鍵組成,具體可分為兩種:一種是已經注冊的各類文件的擴展名,另一種是各種文件類型的有關信息。左欄中的子鍵就是各種已經注冊的文件擴展名。 注冊表內己經登記的文件擴展名中,有系統默認和應用程序自定義的擴展名。應用程序只有把自定義的擴展名在注冊表中登記,系統才能識別和關聯使用有關的文檔,但只有經過注冊的擴展名,系統才能自動關聯。根據在Windows 98中文版中安裝的應用程序的擴展名,該根鍵指明其文件類型的名稱。
在第一次安裝Windows 98中文版時,RTF(Rich Text Format)文件與寫字板(WordPad)聯系起來,但在以後安裝了中文Word 6.0後,雙擊一個RTF文件時,將自動激活Word。存放在SYSTEM.DAT中的HKEY_CLASSES_ROOT,將替代WIN.INI文件中的[Extensions]小節中的設置項,它把應用程序與文件擴展名聯系起來,它也替代了Windows 3.x中的Reg.dat文件中的相似的設置項。
5.HKEY_LOCAL_MACHINE
注冊表的核心,計算機的各種硬體和軟體的配置均存在於此。它包括以下八個部分:Config配置、Driver驅動程序、Enum即插即用、Hardware硬體、Network網路、Security安全、Software軟體、System系統。每部分中又包括許多子鍵。該根鍵存放本地計算機硬體數據,此根鍵下的子關鍵字包括在SYSTEM.DAT中,用來提供HKEY_LOCAL_MACHINE所需的信息,或者在遠程計算機中可訪問的一組鍵中。該根鍵中的許多子鍵與System.ini文件中設置項類似。
6.HKEY_DYN_DATA
該根鍵存放了系統在運行時動態數據,此數據在每次顯示時都是變化的,因此,此根鍵下的信息沒有放在注冊表中。
⑩ 注冊表裡有什麼資料如何運用注冊表
如何使用注冊表
windows的注冊表(registry)實質上是一個龐大的資料庫,它存儲這下面這些內容:軟、硬體的有關配置和狀態信息,應用程序和資源管理器外殼的初始條件、首選項和卸載數據;計算機的整個系統的設置和各種許可,文件擴展名與應用程序的關聯, 硬體的描述、狀態和屬性;計算機性能紀錄和底層的系統狀態信息,以及各類其他數據。
注冊表的結構是:
windows為我們提供了一個注冊表編輯器(regedit.exe)的工具,它可以用來查看和維護注冊表。由圖我們可以看到,注冊表編輯器與資源管理器的界面相似。它有六個分支(有的是五個):
hkey-classes-root 文件擴展名與應用的關聯及ole信息
hkey-current-user 當前登錄用戶控制面板選項和桌面等的設置,以及映射的網路驅動器
hkey-local-machine 計算機硬體與應用程序信息
hkey-users 所有登錄用戶的信息
hkey-current-config 計算機硬體配置信息
hkey-dyn-data 即插即用和系統性能的動態信息
注冊表修改方法有:
1.軟體修改(安全)
通過一些專門的修改工具來修改注冊表,比如:magicset、tweakui、winhacker等等。其實控制面板就是一個這樣的工具,只不過功能簡單一些。
2.間接修改(比較安全)
將要修改的寫入一個.reg文件中,然後導入注冊表中。這樣做的好處是可以避免錯誤的寫入或刪除等操作,但是要求用戶了解注冊表的內部結構和.reg文件的格式。
3.直接修改(最不安全,但最直接有效)
就是通過注冊表編輯器直接的來修改注冊表的鍵值數據項,,但是要求用戶有一定的注冊表知識,熟悉注冊表內部結構而且一定要小心謹慎,否則會把系統弄癱。
使用方法大致是:
(1)修改鍵值:開始—運行-輸入 regedit --確定,打開注冊表編輯器,在左窗格選定你要修改的子鍵,在右窗格打到要修改的鍵值項,右擊該鍵值項,按要求修改,修改完畢。
例:以加快開關機修改「HKEY-LOCAL-MACHINE」-「Stem」「CurrentControlSet」-「Control」-將字元串「WaitToKillServceTimeout」 數值數據20000修改為1000。
開始—運行—輸入「Regedit」—在打開的注冊表編器中後步向下打到「Control」左擊打開右窗格,在右窗格打到「WaitToKillServceTimeout」雙擊打開「編輯字元串」對話框,在「數值數據」框中輸入要修改為的數據數值「1000」—確定。
(2)新建子鍵和鍵值:右擊父鍵,選「新建→項」,在打開的「新建#1「中輸入子鍵名,確定,右擊新建的子鍵,在右窗格添加新鍵值項和鍵值。
例:新建字元串,新建「HKEY-LOCAL-MACHINE」-「Stem」「CurrentControlSet」-「Control」-「HungAppTimeout」的數值數據為「200」。
開始—運行—輸入「Regedit」—在打開的注冊表編器中後步向下找到「Control」左擊打開右窗格,右擊右窗格空白處—新建—字元串—在名稱中輸入名稱「HungAppTimeout」,雙擊該名稱打開「編輯字元串」對話框,在「數值數據」框中輸入數據數值「200」—確定。
(3)刪除子鍵和鍵值:開始—運行-輸入 regedit --確定,打開注冊表編輯器,在左窗格右擊你要刪除的子鍵,選「刪除」;在右窗格右擊你要刪除的鍵值項,選「刪除」。
注意,為保險起見,修也注冊表前要備分注冊表,方法是:在注冊表編輯器窗口—文件—導出—選擇導出部分還是全部—輸入文件名—保存。一旦修改錯誤 可用「導入」方法恢復。
因為內容太多,三言二語說不清楚,以上僅供參考。