beginner
注册表与配置
Windows 如何在分层的 hives 中存储系统和应用程序配置。
Microsoft 官方文档
Microsoft Learn 上与此主题最相关的官方参考资料。
[
Microsoft Learn
注册表 Hives
learn.microsoft.com
](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry-hives)[
Microsoft Learn
面向高级用户的 Windows 注册表
learn.microsoft.com
](https://learn.microsoft.com/en-us/troubleshoot/windows-server/performance/windows-registry-advanced-users)
为什么它很重要
注册表是 Windows 的配置主干。启动设置、服务定义、驱动程序参数以及无数的应用程序设置都存放在这里。
思维模型
把注册表想作是一个分成 hives、keys 和 values 的结构化配置数据库,而不是一个扁平的文本文件。
Windows 基础组件
可在任务管理器、资源管理器或者文档中查到的名称与路径。
-
FileSYSTEM, SOFTWARE, SAM, SECURITY
%SystemRoot%\System32\config
磁盘上的 hive 文件
深入一层
给希望在打开子主题前获取更精确信息的读者提供额外细节。
- HKLM\SYSTEM\CurrentControlSet 存放着服务、控制集 (Control sets) 和驱动程序配置。
- 事务日志 (.LOG) 可以在写入期间发生崩溃时保护 hive 的一致性。
工作原理
- 1Hives 支撑配置数据的持久化存储。
- 2Keys 将数据进行分层组织,而 values 保存类型化内容。
- 3内核和用户模式组件通过注册表 APIs 读写这些结构。
关键术语
Hive
顶层的注册表数据存储,由文件和内存结构支撑。
Key
注册表层次结构中的容器节点。
Value
存放在 key 下方的命名的类型化数据块。
服务启动定义存放在哪里
Service Control Manager 从注册表位置读取服务配置,而不是从一个单独的仅针对服务的数据库读取。
常见误区
注册表并不是一个巨大的内存块。它被分割为具有自身加载和持久化行为的 hives。