您的位置:首页 > 其它

用户模式与内核模式

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中,用户模式与内核模式的切换是通过软件中断实现的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: