用户模式与内核模式
2010-08-11 11:40
197 查看
谈到用户模式与内核模式,一般要与CPU的特权层联系起来。
CPU一般有多个特权层,例如:Intel的386CPU有四个特权层,分别是Ring 0、Ring 1、Ring 2、Ring 3。其中,Ring 0的特权级别最高,可以执行任意的代码,Windows的内核模式就运行在该级别;Ring 3的特权级别最低,Windows的用户模式运行在该级别。
下图为CPU特权层与操作系统两种模式的关系
早期的DOS系统是没有用户模式与内核模式的区别,所有程序都运行在Ring 0特权层。应用程序不用编写驱动而直接操作硬件设备。然而在Windows中,对硬件的操作是通过驱动程序来实现的。可以说,驱动程序是Windows的“补丁”,针对不同的硬件设备有不同的“补丁”。
驱动程序运行在内核模式,因此编写驱动程序时要格外的小心。例如,在应用程序中对空指针操作时,操作系统会弹出对话框,提示这是非法操作并终止进程;然而在驱动程序中对空指针进行操作时,操作系统不会检测这个操作是否非法,而是直接导致操作系统的崩溃。
很多计算机病毒、木马程序或恶意软件,利用驱动程序运行在内核模式的特点,将自己以驱动程序的形式加载到内核中,从而获取操作系统的最高权限。
在Windows中,用户模式与内核模式的切换是通过软件中断实现的。
CPU一般有多个特权层,例如:Intel的386CPU有四个特权层,分别是Ring 0、Ring 1、Ring 2、Ring 3。其中,Ring 0的特权级别最高,可以执行任意的代码,Windows的内核模式就运行在该级别;Ring 3的特权级别最低,Windows的用户模式运行在该级别。
下图为CPU特权层与操作系统两种模式的关系
早期的DOS系统是没有用户模式与内核模式的区别,所有程序都运行在Ring 0特权层。应用程序不用编写驱动而直接操作硬件设备。然而在Windows中,对硬件的操作是通过驱动程序来实现的。可以说,驱动程序是Windows的“补丁”,针对不同的硬件设备有不同的“补丁”。
驱动程序运行在内核模式,因此编写驱动程序时要格外的小心。例如,在应用程序中对空指针操作时,操作系统会弹出对话框,提示这是非法操作并终止进程;然而在驱动程序中对空指针进行操作时,操作系统不会检测这个操作是否非法,而是直接导致操作系统的崩溃。
很多计算机病毒、木马程序或恶意软件,利用驱动程序运行在内核模式的特点,将自己以驱动程序的形式加载到内核中,从而获取操作系统的最高权限。
在Windows中,用户模式与内核模式的切换是通过软件中断实现的。
相关文章推荐
- Communication Between User Mode and Kernel Mode 用户模式和内核模式间的通信
- 理解Windows内核模式与用户模式
- 内核态拦截用户模式代码注入
- 用户模式 VS 内核模式 转自维基百科(http://en.wikibooks.org/wiki/Windows_Programming/User_Mode_vs_Kernel_Mode)
- 理解Windows内核模式与用户模式
- Windows系统的四个重要概念——进程、线程、虚拟内存、内核模式和用户模式
- 内核模式和用户模式的
- WINCE下内核模式和用户模式有什么区别
- 基元:用户模式和内核模式构造
- 用户模式和内核模式
- 深入解析windows XP/2003:内核模式和用户模式
- 内核模式和用户模式的
- 用户模式和内核模式
- 内核模式和用户模式
- 内核模式和用户模式
- Linux用户模式和内核模式
- Linux用户模式和内核模式
- windbg 如何在内核模式调试用户空间的程序
- WINCE下内核模式和用户模式的区别