系统档案:亦真亦假的Svchost.exe(2)
二、松了口气:Svchost.exe是台“CD机”
1.服务装在“CD机”里
Svchost.exe是NT内核操作系统(Windows 2000/XP/2003都属于NT内核操作系统)独有的进程,“Svchost”其实就是“Service Host”(服务宿主)的缩写。微软官方对它的定义是:Svchost.exe是从动态链接库(DLL)中运行的服务的通用主机进程名称,通俗讲,它就是一个服务装载器。大家可以把每个服务想象成一张音乐CD,而Svchost.exe就是用来播放这种CD的CD机。
2.为什么用“CD机”装服务
由于Windows 2000/XP系统服务越来越多,以EXE单独进程的形式启动所有服务会大大增加系统负担,为节省系统资源,微软将一些系统服务以动态链接库(DLL)形式实现,而Svchost.exe就是用来装载这些DLL文件以启动系统服务的程序。没有人会为了发行一张CD而制作一台专用播放此CD的CD机,微软也一样。
3.系统里有几台这样的“CD机”
那为什么系统进程列表中的Svchost.exe会有多个呢?微软为了让系统能更好地进行服务控制,就允许多个Svchost.exe进程同时运行,每个Svchost.exe进程可以包含一组服务,想像一下可以同时容纳3张甚至更多CD的多碟CD机。打开注册表[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Svchost]主键,在窗口右侧可以看到许多键值,这里的每个键值都代表一组服务,键值数据则包含了该组服务下面运行的服务名称列表,每组服务启动时都会通过单独的Svchost.exe进程来装载。Windows XP中默认共有六组服务(见图2),其中imgsvc、NetworkService、rpcss、termsvcs四个组,它们都只有一个服务运行,这些服务启动后的Svchost.exe进程用户名为“SYSTEM”。而LocalService和netsvcs组都启动了多个服务,它们的Svchost.exe进程用户名分别为“LOCAL SERVICE”和“NETWORD SERVICE”,从图1中可以看到这种区别。
图2 众多svchost进程的区别
当然了,这六组服务通常并不都是启动状态的,根据系统启动的服务不同,反映在系统进程列表中的Svchost.exe进程数量也是不同的,Windows XP会有四个到六个Svchost.exe进程,而Windows 2000通常则会有两个Svchost.exe进程。
小提示:点击“开始→运行”,在运行框中输入“CMD”回车,然后在打开的命令行窗口中输入“Tasklist /svc”(不含引号)命令,可以更直观地看到每个Svchost.exe进程装载的服务名称列表(见图3)。
图3 查看svchost进程装载的服务名称
相关文章:
- [2021年01月25日]Windows 10更新状态一直显示:正在准备-0%
- [2021年01月25日]笔记本电脑关机后掉电快的缓解方法
- [2021年01月18日]win10系统如何关闭摄像头
- [2020年02月24日]简述CPU、GPU、TPU
- [2020年02月24日]word2010以上版本无法保存作者信息的解决办法
- [2019年09月28日]笔记本与台式机选哪个?
- [2018年11月17日]移动硬盘使用前需格式化的解决办法
- [2017年09月18日]换新显卡后停滞在主板logo画面不动
- [2017年02月19日]Win7系统睡眠之后风扇还在转怎么办?
- [2017年02月11日]Win7系统中如何在任务栏中设置“显示桌面”图标