windows XP 下的 svchost.exe
引用:文件位置: C:\WINDOWS\system32\svchost.exe
Svchost.exe是NT内核操作系统(Windows 2000/XP/2003以上的版本都属于NT内核操作系统)独有的进程,“Svchost”其实就是“Service Host”(服务宿主)的缩写。微软官方对它的定义是:Svchost.exe是从动态链接库(DLL)中运行的服务的通用主机进程名称,通俗讲,它就是一个服务装载器"
Service Loader"。有人将它比喻为 CD Player , CD 播放机,俗称:CD 机。
由于NT内核的操作系统的
系统服务越来越多,若以EXE单独进程的形式启动所有服务会大大增加系统负担,为节省系统资源,微软将一些系统服务以动态链接库(DLL)形式实现,而Svchost.exe就是用来加载这些DLL文件以启动系统服务的程序。
“没有人会为了发行一张CD而制作一台专用播放此CD的CD机,微软也一样。” 那为什么系统进程列表中的Svchost.exe会有多个呢?微软为了让系统能更好地进行服务控制,就允许多个Svchost.exe进程同时运行,每个Svchost.exe进程可以包含一组服务,想像一下可以同时容纳3张甚至更多CD的多碟CD机。
打开注册表
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Svchost]主键,在窗口右侧可以看到许多键值,这里的每个键值都代表一组服务,键值数据则包含了该组服务下面运行的服务名称列表,每组服务启动时都会通过单独的Svchost.exe进程来装载。
Windows XP中默认共有六组服务(见图)
其中
imgsvc、NetworkService、rpcss、termsvcs四个组,它们都只有一个服务运行,这些服务启动后的Svchost.exe进程用户名为“SYSTEM”。
而LocalService和netsvcs组都启动了多个服务,它们的Svchost.exe进程用户名分别为“LOCAL SERVICE”和“NETWORD SERVICE”,从下图中可以看到这种区别。
当然了,这六组服务通常并不都是启动状态的,根据系统启动的服务不同,反映在系统进程列表中的Svchost.exe进程数量也是不同的,Windows XP会有四个到六个Svchost.exe进程,而Windows 2000通常则会有两个Svchost.exe进程
用户系统信息:Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; CIBA; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; aff-kingsoft-ciba)