liuganchao
驱动牛犊
驱动牛犊
  • 注册日期2009-06-22
  • 最后登录2012-04-20
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望151点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:3013回复:1

Windows操作系统基本概念

楼主#
更多 发布于:2009-07-12 11:47

Windows操作系统基本概念



一、WINDOWS操作系统基本概念

二、操作系统分层







l WINDOWS操作系统基本概念

1:用户模式和内核模式

Windows 从总体上分为内核模式和用户模式。谈到操作系统的内核模式和用户模式,一般会和CPU的特权层联系起来。CPU一般会有多个特权层。例如,Intel386CPU就有4个特权层,分别是第0环(Ring 0),第1环(Ring1),第2环(Ring 2,3环(Ring 3.其中,Ring0的特权最高,也就是可以执行任意代码,而Ring 3特权最低,只能执行有限的代码。其他CPU也类似的特权级别。

Windows将内核模式运行在CPURing层,而将用户模式运行在CPURing3层,如图2-1所示。Ring0Ring3层是CPU上的概念,而用户模式和内核模式是操作系统上的概念。













2-1

Windows的核心代码运行在内核模式下,而非核心代码运行在用户模式下。运行在内核模式下的Windows的核心组件是安全的,且不会受到恶意攻击,所以这些核心组件可以进行所有权限的操作。而运行在用户模式下的应用程序,是不安全的且容易受到攻击的,所以用户模式下的应用程序的权限是受到限制的。如果应用程序想进行一些敏感操作,如直接访问物理内存,物理端口,应用程序需要向内核模式下的组件提出请求。

编写驱动程序主要是为了操作硬件设备。这些设备的操作包括访问物理映射内存、设备端口等。

在早期的操作系统(如 DOS),没有用户模式和内核模式之分,所有程序都运行在Ring0层。应用程序可以不用编写驱动而直接操作硬件设备。然而在Windows操作系统中,对硬件的操作必须通过驱动程序来完成。驱动程序相当于Windows内核的“补丁”,针对不同的硬件设备会有不同的“补丁”。

驱动程序运行在内核模式下,拥有操作系统的最高权限。因此,编写驱动程序时需要格外小心。在用户模式下的各种保护措施,在内核模式下都没有。例如,在应用程序中对空指针操作时,操作系统会弹出对话框,提示这是非法操作并终止进程。然而在驱动程序中对空指针进行操作时,操作系统不会检测这个操作是否非法,而是直接导致操作系统的崩溃。

很多计算机病毒/木马程序或者恶意软件,利用驱动程序进行在内核模式的特点,将自己以驱动程序的形式加载到内核中,从而获取操作系统的最高权限。应当指出,程序员在编写驱动程序的时候,应该避免漏洞,如缓冲区溢出漏洞。在Windows中,用户模式和内核模式的切换是通过软件中断实现的。

下面做一个实验,查看Windows运行内核模式和用户模式的情况。在控制面板中,选择“管理工具”,然后选择“性能”图标。此工具可以查看Windows运行性能。





shengye49
驱动牛犊
驱动牛犊
  • 注册日期2009-06-17
  • 最后登录2009-07-13
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望31点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2009-07-13 12:51
下一页捏?
游客

返回顶部