关于Windows补丁GDR 与QFE的区别(转)
2009-02-15 11:15
441 查看
我们平时为 Windows XP 安装补丁的时候,经常会看到补丁中出现 GDR 或 QFE 等字样,它们表示什么意思呢?原来微软已经为补丁中的更新系统文件划分了级别,其中 GDR 表示“普通分发版本”,而 QEF 则表示“快速修补工程更新版本”,其中 GDR 更新文件一般都进行了大量的严格测试,因此补丁的稳定性相对较高;而 QFE 更新文件一般所做的测试相对较少,因此其稳定性普遍不如 GDR。
由于更新文件划分了级别,因此 Windows 补丁也划分为两类:一类称为“安全修补程序”,这类补丁包同时包含 GDR 和 QEF 版本的更新文件,也就是两个副本,一般在 Windows 被发现严重漏洞时发布关键更新使用;第二类称为“修复程序”,一般都是一些非关键性更新,仅包含 QFE 版本的更新文件。
那么为什么 “安全修补程序”要包含两种更新文件的版本呢?比如说我们现在要安装一个仅包含 QFE 版文件的非关键性更新。如果这个补丁需要更新的旧系统文件已经是 GDR 版,这时更新程序就会自动对比新旧文件的版本号。假如原先的 GDR 文件版本比补丁包中的 QEF 文件版本还要高,那么就会自动禁止补丁包中的 QFE 文件进行更新,而会改用和原 GDR 文件版本号相同的 QEF 版文件来更新。那么上哪里去找这个和原 GDR 文件版本号相同的 QFE 文件呢?实际这个文件已经在计算机硬盘里了,因为在上一次安装包含这个 GDR 文件的“安全修补程序”时,已经将同版本的 QFE 也复制到了系统中备用。这就是为什么“安全修补程序”要同时包含 GDR 和 QFE 两个副本的原因。
再举一个例子,比如说我们现在要安装 KB896688 补丁,此补丁需要更新系统文件 %SystemRoot%\system32\MSHTML.DLL。由于 KB89668 补丁是一个“安全修补程序”,因此它同时包含 GDR 版和 QEF 版两个版本的 MSHTML.DLL 副本,它们的文件说明分别为“xpsp_sp2_gdr.051004-1415”和“xpsp.051004-1419”。执行更新程序后,安装程序会自动检测当前系统的 MSHTML.DLL 版本,如果发现原来的文件就是 GDR 版,那么就会用补丁包中的 GDR 版来更新;如果发现原来的文件是 QEF 版,则会用补丁包中的 QFE 版来更新。不论是哪种情况,更新完毕后,新的系统文件都将是更新后的 6.00.2900.2769 新版本号,只不过有 GDR 和 QFE (Quick fix engineering) 之分而已。
现在,我们再用 KB896688 的例子回过头说一说刚才提到的第一个例子。假设我们更新 KB896688 补丁之前,原系统文件 MSHTML.DLL 已经是 GDR 版,那么在更新补丁时,就会用 GDR 版的 xpsp_sp2_gdr.051004-1415 版的 MSHTML.DLL 进行更新。与此同时,更新程序会将那个 xpsp.051004-1419 的 QEF 文件复制到硬盘中,具体位置是 Windows 文件夹下的 $hf_mig$ 子文件夹。假设我们日后需要安装一个也需要修改 MSHTML.DLL 的其它非关键性补丁,这个补丁就会自动检测自己提供的 QEF 文件和 xpsp_sp2_gdr.051004-1415 相比哪个版本高。假如自己提供的 QEF 版本还不如 xpsp_sp2_gdr.051004-1415 版本高的话,就不会用自己的 QFE 文件进行更新,而是会从 Windows\$hf_mig$ 里把那个备用的 xpsp.051004-1419 拿出来,进行更新。
由于更新文件划分了级别,因此 Windows 补丁也划分为两类:一类称为“安全修补程序”,这类补丁包同时包含 GDR 和 QEF 版本的更新文件,也就是两个副本,一般在 Windows 被发现严重漏洞时发布关键更新使用;第二类称为“修复程序”,一般都是一些非关键性更新,仅包含 QFE 版本的更新文件。
那么为什么 “安全修补程序”要包含两种更新文件的版本呢?比如说我们现在要安装一个仅包含 QFE 版文件的非关键性更新。如果这个补丁需要更新的旧系统文件已经是 GDR 版,这时更新程序就会自动对比新旧文件的版本号。假如原先的 GDR 文件版本比补丁包中的 QEF 文件版本还要高,那么就会自动禁止补丁包中的 QFE 文件进行更新,而会改用和原 GDR 文件版本号相同的 QEF 版文件来更新。那么上哪里去找这个和原 GDR 文件版本号相同的 QFE 文件呢?实际这个文件已经在计算机硬盘里了,因为在上一次安装包含这个 GDR 文件的“安全修补程序”时,已经将同版本的 QFE 也复制到了系统中备用。这就是为什么“安全修补程序”要同时包含 GDR 和 QFE 两个副本的原因。
再举一个例子,比如说我们现在要安装 KB896688 补丁,此补丁需要更新系统文件 %SystemRoot%\system32\MSHTML.DLL。由于 KB89668 补丁是一个“安全修补程序”,因此它同时包含 GDR 版和 QEF 版两个版本的 MSHTML.DLL 副本,它们的文件说明分别为“xpsp_sp2_gdr.051004-1415”和“xpsp.051004-1419”。执行更新程序后,安装程序会自动检测当前系统的 MSHTML.DLL 版本,如果发现原来的文件就是 GDR 版,那么就会用补丁包中的 GDR 版来更新;如果发现原来的文件是 QEF 版,则会用补丁包中的 QFE 版来更新。不论是哪种情况,更新完毕后,新的系统文件都将是更新后的 6.00.2900.2769 新版本号,只不过有 GDR 和 QFE (Quick fix engineering) 之分而已。
现在,我们再用 KB896688 的例子回过头说一说刚才提到的第一个例子。假设我们更新 KB896688 补丁之前,原系统文件 MSHTML.DLL 已经是 GDR 版,那么在更新补丁时,就会用 GDR 版的 xpsp_sp2_gdr.051004-1415 版的 MSHTML.DLL 进行更新。与此同时,更新程序会将那个 xpsp.051004-1419 的 QEF 文件复制到硬盘中,具体位置是 Windows 文件夹下的 $hf_mig$ 子文件夹。假设我们日后需要安装一个也需要修改 MSHTML.DLL 的其它非关键性补丁,这个补丁就会自动检测自己提供的 QEF 文件和 xpsp_sp2_gdr.051004-1415 相比哪个版本高。假如自己提供的 QEF 版本还不如 xpsp_sp2_gdr.051004-1415 版本高的话,就不会用自己的 QFE 文件进行更新,而是会从 Windows\$hf_mig$ 里把那个备用的 xpsp.051004-1419 拿出来,进行更新。
相关文章推荐
- Windows 补丁: GDR 与 QFE 的区别
- LDR 和 GDR以及QFE 的区别
- 关于windows和Linux的换行符的区别
- 关于Linux与Windows的区别的文章
- 关于LINUX和WINDOWS的内核区别
- 关于 Windows 7 RTM 16399 补丁
- 关于windows平台下的oracle database software的补丁
- 关于Windows 7 x86与x64的区别
- Webdriver中关于driver.navigate().to()和driver.get()使用的区别
- 关于安装版tomcat和绿色版(解压版)tomcat的区别
- 关于cookie和session的区别
- 关于registerstartupscript与RegisterClientScriptBlock的区别
- 面试题关于cookie,session,application的区别
- Windows下的关于Django各种扩展的下载和安装
- 关于数据库、数据库管理系统、数据库服务器的区别
- 关于初学者学习WINDOWS还是LINUX的一些见解
- Windows7/8.1推送一个新的补丁KB3123862 这个补丁绝对别碰
- 关于oc的#pragma mark - 和swift的注释的详解和区别
- 转:——Windows和Linux进程间通信区别
- 深度剖析Linux与Windows系统的区别