Windows 的两种管理机制_注册表和服务
2015-07-16 10:03
225 查看
本文讲述了Windows的两种基本的机制,他们对于系统的管理和配置只管重要。
1, 注册表在磁盘上的内部结构?
2, 当一个应用程序请求配置信息时Windows如何获得相应的信息?
3, Windows采用了哪些手段来保护这一关键的系统数据库?
一、打开注册表:运行->regedit
二、配置数据被读取的三个时间点:
(1) 在引导过程中,系统读取有关的设置信息
(2) 在登录过程中,Explorer和其他的Windows组件从注册表中读取到每个用户的参数选择
(3) 在应用程序启动过程中,它们读取系统全局范围的设置,还读取一些针对每个用户的设置信息
三、注册表的6个根键:
(1) HKEY_CURRENT_USER:存储一些与当前登录用户有关的数据
(2) HKEY_USERS:存储有关该机器上所有账户的信息
(3) HKEY_CLASSS_ROOT:存储文件关联和组件对象模型(C0M)的对象注册信息
(4) HKEY_LOCAL_MACHINE:存储与系统有关的信息
(5) HKEY_PERFORMANCE_DATA:存储与性能有关的信息
(6) HKEY_CURRENT_CONFIG:存储关于当前硬件配置的一些信息
四、服务:几乎每一个操作系统都有一种在系统启动时刻启动进程的机制,这些进程提供了一些不依赖于任何交互用户的服务。在Windows 中,这样的进程称为服务。
五、Windows服务是由三个组件构成的:服务应用、服务控制程序(SCP),以及服务控制管理器(SCM)。
六、当安装一个包含服务的应用时,该应用的安装程序必须向系统注册它的服务。为了注册该服务,安装程序调用Windows的CreateService函数,然后就会发送一个消息给该服务将要驻留的机器上的SCM。在创建了一个服务以后,一个安装程序或者管理应用程序可以通过StartService函数来启动该服务。
七、当SCM启动一个服务进程时,该进程立即调用StartServiceCtrlDispatcher函数。该函数接收一个入口点列表,每个入口点对应于该进程中的一个服务。每个入口点是由它所对应的服务的名称来标识的。该函数创建了由一个命名管道来跟SCM进行通信,在建立了该通信管道以后,它进入一个循环,等待SCM通过该管道发送过来的命令。每次SCM启动一个属于该进程的服务时,它发送一个“服务启动”命令。该函数对于所接收到的每个启动命令,创建一个服务线程,由该线程来调用所启动服务的入口点函数,并实现该服务的命令循环。该函数一直在等待来自SCM的命令,只有当该进程的所有服务都停止时它才会将控制返回至该进程的main函数,以便服务进程在退出以前做一些资源清理工作。
八、一个服务进程内部的流程:
(1) StartServiceCtrlDispatcher激发服务线程
(2) 服务线程注册控制处理器
(3) StartServiceCtrlDispatcher在处理SCM命令时调用服务处理器
(4) 服务线程处理客户请求
1, 注册表在磁盘上的内部结构?
2, 当一个应用程序请求配置信息时Windows如何获得相应的信息?
3, Windows采用了哪些手段来保护这一关键的系统数据库?
一、打开注册表:运行->regedit
二、配置数据被读取的三个时间点:
(1) 在引导过程中,系统读取有关的设置信息
(2) 在登录过程中,Explorer和其他的Windows组件从注册表中读取到每个用户的参数选择
(3) 在应用程序启动过程中,它们读取系统全局范围的设置,还读取一些针对每个用户的设置信息
三、注册表的6个根键:
(1) HKEY_CURRENT_USER:存储一些与当前登录用户有关的数据
(2) HKEY_USERS:存储有关该机器上所有账户的信息
(3) HKEY_CLASSS_ROOT:存储文件关联和组件对象模型(C0M)的对象注册信息
(4) HKEY_LOCAL_MACHINE:存储与系统有关的信息
(5) HKEY_PERFORMANCE_DATA:存储与性能有关的信息
(6) HKEY_CURRENT_CONFIG:存储关于当前硬件配置的一些信息
四、服务:几乎每一个操作系统都有一种在系统启动时刻启动进程的机制,这些进程提供了一些不依赖于任何交互用户的服务。在Windows 中,这样的进程称为服务。
五、Windows服务是由三个组件构成的:服务应用、服务控制程序(SCP),以及服务控制管理器(SCM)。
六、当安装一个包含服务的应用时,该应用的安装程序必须向系统注册它的服务。为了注册该服务,安装程序调用Windows的CreateService函数,然后就会发送一个消息给该服务将要驻留的机器上的SCM。在创建了一个服务以后,一个安装程序或者管理应用程序可以通过StartService函数来启动该服务。
七、当SCM启动一个服务进程时,该进程立即调用StartServiceCtrlDispatcher函数。该函数接收一个入口点列表,每个入口点对应于该进程中的一个服务。每个入口点是由它所对应的服务的名称来标识的。该函数创建了由一个命名管道来跟SCM进行通信,在建立了该通信管道以后,它进入一个循环,等待SCM通过该管道发送过来的命令。每次SCM启动一个属于该进程的服务时,它发送一个“服务启动”命令。该函数对于所接收到的每个启动命令,创建一个服务线程,由该线程来调用所启动服务的入口点函数,并实现该服务的命令循环。该函数一直在等待来自SCM的命令,只有当该进程的所有服务都停止时它才会将控制返回至该进程的main函数,以便服务进程在退出以前做一些资源清理工作。
八、一个服务进程内部的流程:
(1) StartServiceCtrlDispatcher激发服务线程
(2) 服务线程注册控制处理器
(3) StartServiceCtrlDispatcher在处理SCM命令时调用服务处理器
(4) 服务线程处理客户请求
相关文章推荐
- 日经春秋 20150716
- [LeetCode] Best Time to Buy and Sell Stock 合集
- dhroid - ioc高级(接口,对象注入)
- 【Struts2四】利用拦截器对登陆进行拦截的小案例
- Java,php,python,js 注释
- 天声人語 20150716
- 【Android小练手】安卓端实时获取HttpUrl数据
- ROS进阶学习手记 2 -- RViz工具的学习1
- 如果是结束 总是面带微笑前进
- jQuery.extend()的合并对象功能
- ocs 修改数据库ip 用户名 密码
- 构造函数(构造器)的调用顺序
- 在Mac OS的终端中运行Swift应用的方法
- 永远不要再犯的 5 个编程错误
- 浅尝Unity 3D的Asset Bundle知识(四)-----基础打牢篇
- error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) already defined in LIBCMTD.lib
- 工作以后......
- Mac下opencv的安装遇到的问题解决
- sturct stat 结构体中 st_mode 的含义
- Unity中开场动画设置(二)