请问在window下可否创建核心态进程?微软是否提供了方法?

来源:百度知道 编辑:UC知道 时间:2024/05/25 15:01:05
我想知道,我们可不可以创建核心态进程。不是让您给我解释系统启动时,都启动了那些线程。我们可以创建用户态进程,然后用它们和核心态进程交换。我想省去这一步,直接创建核心态进程,可以不?

我就就window
s2000平台来说一说。(我用的是Windows2000Server).
Windows2000Server启动时引导程序(Ntldr.dll)将操作系统内核加载到内存中,然后开始
执行内核,创建系统核心进程和线程来完成操作系统内部的初始化。接下来创建的进程就和
我们息息相关了,Windows2000Server提供了一个察看进程之间关系的工具tlist/t命令。下
面我们就看一看这个工具能为我们作什么。
C:\>tlist/t
系统过程(0)
系统(2)
smss.exe(20)
csrss.exe(30)
WINLOGON.exe(34)
SERVICES.exe(40)
//Userinit.exe
explorer.exe(87)
CMD.exe(156)
TLIST.exe(174)
看到了吧,系统启动时创建的大多数支持进程都在这了,下面我就一个一个解释一下他们的
功用。
(1)System Process(0):其实是系统建立的一个idle进程,它的进程id总为0。该进程和下面
的System进程不是真正运行在用户态,所以他的名称因不同的观察程序而不 同,用tlist/t
得到的名称 是System Process,该进程是系统的idle线程的宿主。
(2)System(2):该进程是内核定义的系统线程的宿主,所谓系统线程是具有一般用户线程所
有属性和描述表 (context)的但却只能运行在核心态的一种特殊线程,它不占用用户进程
地址空间,必须从系统的内存堆中分配动态存储区。

(3)smss.exe(session manager,会话管理器)其实是系统建立的第一个用户进程,它由运行在
核心态的核心系统线程ExInitializeSystem创建,它负责执行一些系统的初始化操作,这里
不详述,对我们来说他的最大功劳在于它启动了子系统进程csrss.exe和登录进程WINLOGON.