本文http://msdn.microsoft.com/en-us/library/aa366912(v=vs.85).aspx指出win32环境(32位假设)中的虚拟内存专用于用户模式进程,一半专用于内核模式进程。
如果我从分页中回忆起来,每个进程都应该有自己的地址空间,从0到任何地方(根据文章,最大为0x7FFFFFFF)。但是对于内核驱动程序呢?每个内核驱动程序/程序的内核地址空间是否从0x80000000到0xFFFFFFFF?
或者我刚出错?
答案 0 :(得分:3)
我相信你的印象是司机是独立的过程;单片和混合内核(NT被认为是混合内核),它们不是。将驱动程序视为内核在环0中加载的模块。实际上,它们成为内核的一部分。
该地址空间的某些部分可能在进程之间发生变化,但大多数内核地址空间将在所有进程之间共享。
答案 1 :(得分:2)
据我所知,只有一个内核。 : - )
除非系统配置为3GB用户空间,否则地址范围似乎没问题。
答案 2 :(得分:2)
在Windows中,内核模式驱动程序存在于内核中并共享内核的地址空间。