Win内核原理与实现学习笔记3-windows系统结构

1.概述

1.1windows采用了双模式(dual mode)结构来保护操作系统本身,以避免被应用程序的错误而波及。操作系统核心运行在内核模式(kernel mode)下,应用程序的代码运行在用户模式(user mode)下。每当应用程序需要用到系统内核或内核的扩展模块(内核驱动程序)所提供的服务室,应用程序通过硬件指令从用户模式切换到内核模式中;当系统内核完成了所请求的服务以后,控制权又回到用户模式代码。


1.2在Windows中用户代码和内核代码有各自的运行环境且它们可以访问的内存空间也不相同。(如32位系统中,内核代码可以访问当前进程的整个4G虚拟地址空间,而用户代码只能访问地段的2G/3G虚拟地址)

1.3Windows子系统是系统不可缺少的组成部分,它与系统内核一起构成用户应用程序的执行环境。Windows子系统既有内核模式部分(图形和窗口管理),也有用户模式部分(包括一个单独的子系统进程和一组链接到各个应用程序中的系统DLL)

2.Windows内核结构

2.1Windows内核分为三层------A硬件抽象层(HAL)  B内核(微内核) C执行体


2.2Windows内核为用户模式代码提供了一组系统服务供程序使用内核中的功能,程序通常并不直接调用这些系统服务,而是通过一组系统DLL,最终通过ntdll.dll切换到内核模式下的执行体API函数中,以调用内核中的系统服务。Ntdll.dll是连接用户模式代码和内核模式系统服务的桥梁,对于内核提供的每一个系统服务,该DLL都提供一个相应的存根函数,以NT作为前缀。

2.3执行体API函数参数内核需检测有效性和健壮性。执行体API函数并不总是要检验参数的有效性,如果在调用该API函数以前的模式是内核模式,那么它不需要检测参数的有效性。

posted @ 2016-03-01 17:23  jadeshu  阅读(264)  评论(0编辑  收藏  举报