站内搜索
广告
Windows Vista内核的安全性详解
作者:    来源:    点击:    日期:2008-1-3 17:51:53   

  Windows Vista通过许多新功能和改进提高了系统的可靠性和您对系统与应用程序问题的诊断能力。例如,内核Windows事件跟踪 (ETW) 记录程序总是处于运行状态,能够生成有关文件、注册表、中断以及其他活动类型的跟踪事件,并保存在循环缓冲区中。当出现问题时,新的 Windows 诊断基础结构 (WDI) 会捕获缓冲区快照,并进行本地分析或上载到 Microsoft 支持进行故障排除。

  新的 Windows 性能和稳定性监视器可以帮助用户通过更改系统配置将错误(如崩溃和挂起)相互关联。强大的系统修复工具 (SRT) 取代了故障恢复控制台,用于不可启动系统的离线恢复。

  有三个方面依靠对系统进行的内核级更改,即需要您认真阅读的本文中的以下方面:内核事务管理器 (KTM)、改进的崩溃处理和以前的版本。

  1.内核事务管理器

  软件开发中最繁琐的一个方面就是处理错误条件。特别是在进行高级操作的过程中,应用程序完成了一个或多个导致文件系统或注册表更改的子任务。例如,应用程序的软件更新服务可能要进行几次注册表更新,替换应用程序的可执行文件之一,而在它尝试更新第二个可执行文件时被拒绝访问。如果服务不想将应用程序留在因此导致的不一致状态,就必须跟踪所有更改并为撤销它们做好准备。测试错误恢复代码很困难,并经常跳过,因此恢复代码中的错误会让努力徒劳无功。

  为 Windows Vista 编写的应用程序通过使用 NTFS 中新的事务支持和使用内核事务管理器的注册表,不费吹灰之力即可获得自动错误恢复能力。当应用程序想进行许多相关更改时,可以创建分布式事务处理协调器 (DTC) 事务和 KTM 事务处理,或直接创建 KTM 处理,并将对文件和注册表项的修改与事务关联起来。如果所有的更改成功,应用程序会提交事务同时更改生效,但是在此之前任何时候,应用程序可以回滚事务,然后放弃更改。

  其有利因素在于,其他应用程序在提交事务后才能看到事务中的更改,而在 Windows Vista 和即将问世的 Windows Server(代号名为“Longhorn”)中使用 DTC 的应用程序会通过 SQL Server、Microsoft Message Queue Server (MSMQ) 以及其他数据库协调其事务。因此,使用 KTM 事务的应用程序更新服务永远不会将应用程序留在不一致的状态。这就是 Windows Update 和系统还原使用事务的原因。

  作为事务支持的核心,KTM 允许事务资源管理器(如 NTFS 和注册表)对应用程序所做的特定更改协调其更新。在 Windows Vista 中,NTFS 使用称为 TxF 的扩展来支持事务。注册表使用称为 TxR 的类似扩展。这些内核模式资源管理器与 KTM 一起协调事务状态,正如用户模式资源管理器使用 DTC 跨多用户模式资源管理器协调事务状态一样。第三方也可以使用 KTM 实施其自己的资源管理器。

  TxF 和 TxR 都定义了一套新的文件系统和注册表 API(与现有的类似,只不过它们包含事务参数)。如果应用程序想在事务中创建文件,首先要使用 KTM 创建事务,然后将引起的事务处理传递给新文件创建 API。

TxF 和 TxR 都依赖在 Windows Server 2003 R2 中引入的公用日志文件系统或 CLFS (%SystemRoot%\System32\Clfs.sys) 的高速文件系统记录功能。TxR 和 TxF 使用 CLFS 永久性地存储提交事务之前的事务状态更改。这样可以让它们提供事务恢复并确保即使在断电时也可以恢复。除了 CLFS 日志,TxR 还创建了一组相关的日志文件,跟踪 %Systemroot%\System32\Config\Txr 中系统注册表文件的事务更改(如图 1 所示),同时还为每个用户注册表配置单元单独创建几组日志文件。TxF 在名为 \$Extend\$RmMetadata 的卷的隐藏目录中存储每个卷的事务数据。

  2.增强的崩溃支持

  当 Windows 遇到不可恢复的内核模式错误时(无论是由于设备驱动程序错误、硬件故障还是操作系统问题),在出现“蓝屏死机”现象和将物理内存的部分或所有内容写入崩溃转储文件(如果配置为执行此操作)后,它会尝试终止系统来防止磁盘数据的损坏。转储文件非常有用,因为当您在系统崩溃后重启时,Microsoft 在线崩溃分析 (OCA) 服务会分析这些文件找出根本原因。如果愿意,您也可以使用面向 Windows 的 Microsoft 调试工具自已进行分析。

  不过,在以前的 Windows 版本中,只有在会话管理器 (%Systemroot%\System32\Smss.exe) 进程初始化分页文件后才会启用对崩溃转储文件的支持。这意味着在此之前任何严重错误会导致蓝屏,但没有转储文件。由于在 Smss.exe 启动之前,会出现大量的设备驱动程序初始化,所以早期的崩溃永远不会引起崩溃转储,因此使原因诊断极为困难。

首页 上一页 [1] [2] [3] [4] [5]  下一页 尾页 
相关软件
相关文章
Windows Vista内核的安全性详解 评论