书库技术与未来Windows Internals, Sixth Edition, Part 2 eBook
书籍封面

Windows Internals, Sixth Edition, Part 2 eBook

作者 Mark Russinovich, David A. Solomon, Alex Ionescu
20.0 分钟

摘要

Windows内核原理(下)总结

本书总结了Windows内核的I/O系统,存储管理,内存管理,缓存管理,文件系统,启动和关机过程以及崩溃转储分析。通过学习,用户可以理解Windows的内部工作原理,优化应用程序,诊断系统问题。 你能获得:了解Windows内核关键组件,掌握诊断系统崩溃的技能,并能优化I/O性能。

核心内容:

1. I/O系统组件:

  • I/O管理器:连接应用程序和硬件设备,支持设备驱动程序。
  • 设备驱动程序:为特定类型的设备提供I/O接口,解释高级命令。
  • 即插即用管理器:检测硬件设备,分配硬件资源。
  • 电源管理器:管理系统和设备驱动程序的电源状态转换。
  • WMI支持例程:允许设备驱动程序通过WMI进行管理和监控。
  • 注册表:存储硬件设备描述和驱动程序配置设置。
  • INF文件:将硬件设备与驱动程序关联。
  • HAL:隔离驱动程序与处理器和中断控制器的差异。
  • 通过这些组件的协同工作,实现了Windows系统对硬件资源的统一管理和高效利用。

2. 设备驱动程序类型:

  • 内核模式驱动程序:包括文件系统驱动程序、即插即用驱动程序和非即插即用驱动程序。
  • 文件系统驱动程序:处理文件I/O请求。
  • 即插即用驱动程序:管理硬件设备,与PnP管理器和电源管理器集成。
  • 非即插即用驱动程序:扩展系统功能,不直接管理硬件。
  • WDM驱动程序:包括总线驱动程序、功能驱动程序和筛选器驱动程序。
  • 分层驱动程序:包括类驱动程序、微类驱动程序、端口驱动程序和微端口驱动程序。
  • 这些不同类型的驱动程序共同构成了Windows系统对各种硬件设备的支持体系。

3. I/O请求处理:

  • I/O请求通过I/O管理器传递给设备驱动程序,设备驱动程序将文件操作转换为特定于设备的命令。
  • 中间驱动程序可以在多个驱动程序之间分层,例如文件系统驱动程序、卷管理器驱动程序和磁盘驱动程序。每个驱动程序处理请求的特定方面,并将修改后的请求传递给下一个驱动程序。
  • 驱动程序可以使用IRP(I/O请求包)异步处理I/O请求,以提高系统性能和响应能力。
  • 通过有效利用分层驱动程序架构,Windows系统能够灵活地处理各种I/O操作,同时保持模块化和可扩展性。

4. 即插即用管理器(PnP):

  • PnP管理器与总线驱动程序协同工作,以检测硬件设备的到达和移除,并自动加载适当的设备驱动程序。
  • 驱动程序通过注册设备接口向应用程序公开其功能。
  • 应用程序可以通过查询即插即用设置功能来发现和使用设备接口。
  • 这种机制简化了硬件设备的安装和配置过程,提高了系统的易用性。

5. 电源管理器:

  • 电源管理器与I/O管理器和PnP管理器协同工作,以指导系统和设备驱动程序完成电源状态转换,从而实现节能和延长电池寿命。
  • 驱动程序必须支持电源管理,以便在系统进入低功耗状态时正确保存和恢复设备状态。
  • 应用程序可以控制设备的电源状态,并注册电源可用性请求,以防止在执行关键任务时系统进入睡眠状态。
  • 通过电源管理器的协调,Windows系统可以在保持系统响应能力的同时,实现对电源的高效管理和利用。

6. 存储管理:

  • 存储管理包括磁盘设备管理、卷管理和虚拟磁盘支持,目标是在Windows中提供灵活且可扩展的存储解决方案。
  • Windows支持基本磁盘和动态磁盘,动态磁盘支持多分区卷管理,如跨区卷、镜像卷和RAID-5卷。
  • BitLocker驱动器加密通过加密整个卷来提供数据保护,并使用TPM(可信平台模块)来存储加密密钥。
  • 卷影复制服务(VSS)允许创建卷的快照以进行备份和恢复,从而实现数据的安全保护和快速恢复。

7. 内存管理:

  • 内存管理器负责虚拟内存管理,包括虚拟地址到物理地址的转换、页面文件的管理以及内核模式堆(系统内存池)的管理。
  • 内存管理器使用页面帧编号数据库(PFN数据库)来跟踪每个物理内存页面的状态,并支持大页面和小页面以提高性能。
  • 内存管理器使用工作集管理来控制进程使用的物理内存量,并使用预读和超级预取等技术来提高内存访问速度。

8. 缓存管理器:

  • 缓存管理器提供统一的系统缓存,用于缓存文件数据和元数据,以提高文件I/O性能。
  • 缓存管理器与内存管理器紧密集成,使用虚拟块缓存和基于流的缓存技术,并支持可恢复的文件系统以确保数据完整性。
  • 缓存管理器使用快速I/O和智能预读等技术来优化缓存访问,并使用写回缓存和延迟写入等技术来提高写入性能。

9. 文件系统:

  • Windows支持多种文件系统格式,包括CDFS、UDF、FAT和NTFS。
  • NTFS是Windows的默认文件系统,具有高级功能,如访问控制列表(ACL)、数据压缩、加密文件系统(EFS)和日志记录,以确保数据安全性和可靠性。
  • NTFS的元数据日志记录和恢复支持允许在发生系统故障后快速恢复文件系统,最大限度地减少数据丢失和系统停机时间。

10. 启动和关闭:

  • 启动过程包括BIOS预启动、Bootmgr和UEFI启动过程。Windows内核的初始化涉及加载和初始化内核模块和设备驱动程序。
  • Windows提供了多种启动故障排除选项,包括“最后一次正确配置”、“安全模式”和“Windows恢复环境(WinRE)”。
  • 关闭过程涉及系统组件的有序关闭和系统资源的释放,最终导致系统的安全关闭。

11. 崩溃转储分析:

  • 崩溃转储文件包含系统崩溃时内存状态的记录,可用于诊断崩溃原因。
  • 崩溃转储分析涉及使用调试工具检查转储文件,以确定导致系统崩溃的模块和函数。
  • 常见的停止代码,如DRIVER_IRQL_NOT_LESS_OR_EQUAL和KERNEL_MODE_EXCEPTION_NOT_HANDLED,可以提供有关崩溃原因的重要线索。

问答

问:什么是NTFS和FAT?

答:FAT(文件分配表)是一种较早的文件系统,NTFS(NT文件系统)是Windows的默认文件系统,提供了高级功能,如安全性、磁盘配额和恢复功能。

问:什么是驱动程序验证程序,如何使用它来排除系统崩溃故障?

答:驱动程序验证程序是一个内置的Windows工具,用于检测设备驱动程序中的问题。通过启用特定的验证选项,您可以识别和修复可能导致系统崩溃的驱动程序错误。

问:什么是系统页面表条目(PTE),它们在Windows中有什么作用?

答:系统页面表条目(PTE)是Windows内核使用的数据结构,用于将虚拟地址转换为物理地址。它们在内存管理中起着关键作用,允许操作系统有效地管理系统内存。

思维导图

目标读者

本书的目标读者是希望深入了解 Microsoft Windows 7 和 Windows Server 2008 R2 操作系统核心组件工作原理的高级计算机专业人员(开发人员和系统管理员)。通过学习本书,开发人员可以更好地理解在构建特定于 Windows 平台的应用程序时的设计选择的基本原理。这些知识还可以帮助开发人员调试复杂的问题。系统管理员也可以从这些信息中受益,因为了解操作系统“底层”的工作方式有助于理解系统的性能行为,并使系统问题的故障排除更加容易。

作者背景

Mark Russinovich 是 Windows Azure 的技术院士,也是 Microsoft 的云操作系统专家。David A. Solomon 是一位著名的 Windows 内核专家,拥有多年的教学经验。Alex Ionescu 是 Winsider Seminars & Solutions Inc. 的创始人,专门从事底层系统软件。

历史背景

本书是《Windows Internals》系列的第六版,是对 Windows 7 和 Windows Server 2008 R2 内核变化的全面更新。该书建立在 Helen Custer 的早期工作基础上,并由 David Solomon 和 Mark Russinovich 进一步扩展和完善。

章节摘要

音频

Comming Soon...