在SDK中有一个工具依赖性查找工具depends.exe 可以看到进程的子系统类型。发现这个工具和VS6企业版中的Microsoft Visual Studio 6.0 Tools中的Depends("C:\Program Files\Microsoft Visual Studio\Common\Tools\DEPENDS.EXE")是一样的。晕!!
Windows子系统:
1、环境子系统csrss.exe包括下列支持:
a) 控制台文本窗口
b) 创建或删除进程和线程
c) 对16位虚拟DOS机进程的一部分支持
d) 其他一些函数,比如gettempfile,definedosdevice,exitwindowsex等
2、内核模式设备驱动程序win32k.SYS 包含:
a) 窗口管理器,包括采集键盘,鼠标的输入
b) 图形设备接口GDI(在NT4之前,作为用户模式windows子系统的一部分)
3、子系统DLL比如kernel32.DLL,advapi.DLL,user32.DLL,GDI32.dll
4、图形设备驱动程序
将USER和GDI放在内核模式中,windows会不稳定吗?
答:在此NT4之前,一个错误指针会导致系统崩溃,将窗口管理器和GDI从用户模式迁移到了内核模式,不仅提高了性能,而且可以将稳定性降到最低!
Posix子系统
一个基于UNIX的可移植的操作系统接口的首字母缩写,这个POSIX标准有很多,Windows实现的是POSIX.1
POSIX子系统有助于将UNIX应用移植到windows平台上,然而,这个程序仍然被链接为可执行程序,不能调用windows函数。如果你需要unix移植到windows中并且可以调用windows函数,你需要购买UNIX TO WINDOWS的软件,比如www.MKSSOFTWARE.COM
如果要在windows编译链接一个posix程序,需要在SDK的中POSIX头文件和库文件中使用链接库psxdll.DLL。
OS/2子系统
支持有局限,如果OS/2中设计的硬件及高级视频IO代码,在windows上使用该子系统不可用。
原生的OS/2 1.2上有16M的内存限制。而在windows提供的OS/2中可以使用512M
硬件抽象层HAL
C:\WINDOWS\Driver Cache\i386>dir
驱动器 C 中的卷没有标签。
卷的序列号是 18F6-A188
C:\WINDOWS\Driver Cache\i386 的目录
2011-12-05 10:36 <DIR> .
2011-12-05 10:36 <DIR> ..
2008-04-14 20:00 62,857,674 driver.cab
2 个文件 83,085,231 字节
2 个目录 146,253,623,296 可用字节
如果打了SP3补丁,则在此CAB