清理注册表注意事项 到底要不要清理注册表

注册表是Windows操作系统的一个核心数据库,记载着机子的硬件信息、系统配置、用户配置等各种“高大上”的数据 。对于Windows用户来说,如果不会手动修改个注册表项,简直都不好意思自称“电脑高手” 。“高手”们热衷于通过regedit提升电脑运行速度、DIY系统配置,把0改成1,把1改成2,狂拽炫酷;而包括我在内的“低手”们只得望其项背,据说保不齐能把系统改瘫了,轻易不敢碰得,但有一项技能是可以轻松get的,那就是使用第三方软件清理注册表垃圾,这么做也多少能提升一点逼格,毕竟还有好多人不知道注册表这东西呢!
可正当大家一致认为清理注册表有助于提高系统性能,正当我们抱着这份信念每天happy地做着清理时,有人却发出了“清理注册表毫无用处”的观点 。唯一的逼格被否定了,坑爹呢这是!我抱着辩证批判的态度读完那些帖子,发现其中并未给出真正令人信服的原理 。那么问题来了,我到底该信啥?
注册表垃圾,就是指软件卸载后残留在注册表内的无用项,如果不进行清理,各种软件装了卸装了卸,日积月累,注册表在体积上肯定会变大 。关键是,注册表会变得多大?变大后对系统性能的影响有多少?为了搞清楚这些问题,首先需要理解注册表的组成结构 。
内存中的注册表也许你每天清理着注册表垃圾,其实却根本不知道注册表这个“隐秘而伟大”的东西到底在哪 。徽标键+R,运行regedit,Look!这就是传说中的注册表!其实准确地说这时打开的只是注册表编辑器,以一种便于查看和修改的形式呈现着注册表数据 。

清理注册表注意事项 到底要不要清理注册表

文章插图
注册表编辑器
考虑到有朋友可能从未接触,简单普及一点基础知识:注册表组织结构好比文件系统,其中键的概念相当于文件夹,键值相当于文件夹里的文件,那么根键就好比根目录,子键就好比文件夹下的子文件夹,组织起来成树状结构,并不是什么高深的东西 。
【清理注册表注意事项 到底要不要清理注册表】下面我们详细介绍这映入眼帘的五个根键 。
首先需要提到符号键的概念,HKEY_CLASSES_ROOT、HKEY_CURRENT_USER及HKEY_CURRENT_CONFIG这三个根键本质上是另两个根键中部分内容的链接,并不独立存在,相当于Windows文件系统中快捷方式的概念 。不光是根键,根键下的部分子键在其他地方也会有对应的符号键,这意味着注册表编辑器所展示的内容有很多是重复的,有些甚至重复了不止两次 。
清理注册表注意事项 到底要不要清理注册表

文章插图
根键的链接关系
注册表中真正保存数据的只有HKEY_LOCAL_MACHINE和HKEY_USERS两个根键,所以我们说注册表编辑器所展示的不是注册表本身,而是一个更易于查看和编辑的注册表视图 。下表就是各根键的功能说明 。
清理注册表注意事项 到底要不要清理注册表

文章插图
表:根键简介
注:XP、Vista、Win7、甚至64位和32位系统下的注册表组成均略有不同,这里以Win7为主,并尽量体现各系统间的共通点 。
hive文件到现在为止,我们看到的都是在内存里的东西,既然注册表是一个存储信息的数据库,那么在磁盘上就应该能够找到对应的文件 。没错,就在C盘,不是一个,是一堆(部分可能还被隐藏了起来),我们称之为hive文件 。hive直译过来就是蜂巢的意思,装逼一点就译成“储巢”,当然最明智的做法还是不翻译 。
为什么叫hive呢?相传有个Windows工程师十分讨厌蜜蜂,于是他的同事恶作剧,引入了蜂窝(hive)……当然有观点认为是因为键与键值组织为B-tree(谐音Bee-tree)结构,倒是十分专业的样子,但我更乐意相信第一种解释 。
废话太多了,赶紧来扒一扒HKLM和HKU下各个子键所对应的文件吧 。
清理注册表注意事项 到底要不要清理注册表

文章插图

表:键与hive文件的对应关系
说明:
? hive文件包括不带后缀名的数据存储文件(如BCD、SAM)以及相应的还有带各种后缀(.LOG、.LOG1、.LOG2、.blf、.regtrans-ms等)的辅助文件,辅助文件各有作用,不再本文讨论范围 。
? hive文件都是二进制格式的,一般软件打不开的哦!
? 可以看到,注册表中几乎所有内容在磁盘上都有着相应的hive文件,除了HKLM\\HARDWARE 。这里有个比较重要的概念:volatile hive 。这一类hive不在磁盘上留有数据,而是在每次开机时动态收集环境信息,只存在于内存中 。(想来也是,本来开机时计算机会做一个加电自检,检测所有硬件 。)所以说,hive文件并不能代表注册表的全部,完整的注册表只存在于内存中 。