`
美丽的小岛
  • 浏览: 297872 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

Windows NT体系结构<转>

 
阅读更多

Windows NT中的NT意为New Technology,其实Microsoft自从93年推出的第一个windows NT 3.1到即将发布的windows 7都属于NT版本的范畴,只不过是Windows 2000之后的版本不再以内核版本号命名。
Microsoft Windows NT 3.1 (1993)
Microsoft Windows NT 3.5 (1994)
Microsoft Windows NT 3.51 (1995)
Microsoft Windows NT 4.0 (1996)
Microsoft Windows 2000 (Windows NT 5.0) (1999)
Microsoft Windows XP (Windows NT 5.1) (2001)
Microsoft Windows Server 2003 (Windows NT 5.2) (2003)
Microsoft Windows Vista (Windows NT 6.0) (2006)
Microsoft Windows Server 2008 (Windows NT 6.1) (2008)
Microsoft Windows 7 (Windows NT 6.1) (2009夏末发布)
NT体系中最大的特点莫过于系统分为内核模式与用户模式,在这里就着重谈一下这两个模式的特点。
使用内核模式或者用户模式是由硬件控制的处理器状态,NT利用硬件的特性对内存的访问进行控制。其中对内存页面的读写控制主要体现在3方面:保护系统页面,用户程序不可访问。避免了由于用户程序错误对系统页面的影响;用户进程相互之间的保护,隔离用户进程避免相互干扰;对代码区域的“不可写”保护。
内核模式和用户模式能够执行的指令也有区别,特权指令只能在内核模式下运行,用户模式下并不能使用CPU提供的所有功能。
Windows NT使用的模式可以用Performance Monitor查看Processor对象的两个计数器”Privileged Time”和”User Time”,可看到CPU在内核模式和用户模式下所花的时间。
 
两种模式的状态何时切换呢?切换发生在系统调用或者中断发生时。
系统调用:当应用程序调用系统功能时,从用户模式切换到内核模式。调用完成后返回用户模式。
中断发生:直接进入内核模式。
两种模式与线程有何种关系呢?线程可以在两种模式之间来回切换,CPU的运行模式和线程调度没有必然联系。
一、谈到Windows体系结构以及它的两种模式,就不得不提到Windows子系统。因为正是由众多Windows子系统所组成的内核模式和用户模式最终构成了Window操作系统的整个体系结构。示意图如下所示,

 1、内核
Ntoskrnl.exe(NT体系结构中最核心的部分)
(1)、执行体功能:进程和线程管理器、虚拟内存管理器、安全引用监视器(Security Reference Monitor)、I/O管理器、即插即用管理器、电源管理器、缓存管理器、其他一些服务组件,比如对象管理器、LPC、一些库函数和支持函数。
(2)、内核功能:供其他组件使用的底层操作系统、线程调度、中断处理、多处理器的同步。
此外Ntkrnlpa.exe  支持PAE(物理地址扩展)的执行体和内核—特殊版本的内核,用于在32位系统对超过4GB物理内存寻址的内核。
2、硬件抽象层(HAL)
硬件抽象层用于屏蔽硬件的差异,保证内核在任何硬件环境下保持可移植性,在内核不变的情况下可更换硬件。它对硬件平台的细节进行了抽象,包括I/O接口,中断控制器等
Windows 2000/XP/2003支持如下几种硬件结构
Hal.dll  标准PC
Halacpi.dll 高级配置和电源接口(APIC)PC
Halapic.dll 高级可编程中断控制器(APIC)PC
Halaacpi.dll APIC ACPI PC
Halmps.dll 多处理器PC
Halmacpi.dll 多处理器ACPI PC
3、I/O管理器
(1)、Windows的I/O管理结构灵活,它将磁盘I/O、网络I/O等抽象成IRP(I/O请求包)。所以I/O管理器是一个用于传递IRP的框架,通过IRP控制了所有I/O操作的处理过程(唯一的例外:快速I/O不使用IRP)
(2)、I/O管理器工作过程:
>为每个I/O操作创建一个IRP
>把IRP传递给正确的驱动程序
>当I/O操作完成时删除IRP
(3)、驱动程序与I/O管理器的关系:
>向I/O管理器登记必要的信息
>接收IRP
>执行IRP指定的操作
>把IRP传回给I/O管理器,或者通过I/O管理器传递给另一个驱动程序以便进一步处理。
4、内核模式驱动程序Win32k.sys
Win32k.sys包括窗口管理器和图形设备接口GDI,其作用是高效的处理用户图形界面,灵活的管理窗口。
(1)、窗口管理器。控制窗口显示、管理屏幕输出、收集来自键盘鼠标和其它设备的输入、把用户消息传递给应用程序。
(2)、图形设备接口(GDI)。这是针对图形输出设备的函数库,包括画线、文本和各种图形的函数,以及一些用于控制图形操作的函数。
5、环境子系统进程
Win32子系统进程csrss.exe作用包括控制台窗口、创建或删除进程或线程、对16位虚拟DOS机的支持。
注:对OS/2和POSIX的支持通过其他方式支持,这里不再说明。
6、子系统DLL:
子系统DLL 包括Kernel32、Advapi32、User32、GDI32等,为Windows应用程序调用系统服务和Win32子系统提供接口模块。
7、Ntdll.dll
内部支持函数和执行体函数的存根函数,将用户模式的请求转译为内核模式,在这一层上CPU进行环境切换(sysenter/sysexit)。
用户程序与系统的交互也就是用户模式和内核模式的切换方式如下,
(1)、用户程序通过子系统直接调用内核执行体所提供的函数
(2)、用户程序通过子系统调用Win32 User/GDI,直接从用户模式切换到内核模式,调用完成后返回。
(3)、用户程序通过环境子系统csrss.exe,相对过程要经过4次环境切换,效率较低。
8、系统进程和系统线程
Smss.exe、Winlogon.exe、Services.exe
二、对于Windows Vista(Windows NT 6.0)在内核上的变化下面简要介绍一下
1、  线程调度更加公平:更精确地计算线程执行时间,按照线程执行时间而不是时间点调度。
2、  I/O系统的改进
(1)、I/O完成端口的改进:I/O完成端口用于提高系统对I/O处理的吞吐量。之前的版本每次完成都立即切换到发出I/O的那个线程,而不管该线程是否需要I/O完成的结果。在Vista中,延迟到该线程来读取或者处理此I/O请求,从而避免了不必要的线程环境切换。
(2)、同步I/O可以被取消:既可以取消当前线程发出的I/O,又可以取消其他线程发出的I/O。比如系统的文件对话框都支持取消操作,访问远程计算机时在等待连接过程中都可以取消,避免了由于网络路径不可用需要等到连接超时之后才能进行下一步操作。
(3)、I/O优先级的改进:
之前版本的I/O优先级都是根据线程I/O优先级来确定,Vista引入了两种I/O优先级类型--I/O优先级和I/O带宽预留。这样使得后台任务更少的干扰前台任务。
3、  内存管理的改进
(1)、内存池的大小可以是动态的:在32位Vista系统中,虚拟内存的分配可以根据需要动态变化。主要针对换页内存池、非换页内存池和会话内存池。
(2)、SuperFetch:对应XP中的Prefetcher,Prefetcher在进程启动时候针对单个进程来预取数据。例如启动Word这样比较大的程序时,如果不使用Prefetcher预先处理进程WINWORD.EXE启动效率会非常低,Prefetcher可以对每个程序预留内存页面以提高进程启动的速度。在Vista中,SuperTetch能够根据更加复杂的模式来预取数据,例如可以跨越多个应用程序。
(3)、ReadyBoost:支持用Flash(闪存)来缓存,介于RAM和硬盘之间,数据可以被压缩和加密。如果是顺序访问,Flash的速度不如硬盘。但对于缓存的访问常是随机的,Flash的性能优于硬盘。
4、  ReadyBoot 引导和停机
(1)、使用引导配置数据库替代了Boot.ini,存储在注册表中             
HKEY_LOCAL_MACHINE\BCD00000000.
(2)、使用两个引导程序替代了Ntldr(NT Loader),分别是Windows Boot Manager(\Bootmgr)和OS loader(\Systemroot\System32\Winload.exe)
(3)、启动过程和会话管理方面的改进:对于系统会话和控制台用户会话进行隔离,使用不同的会话。
(4)、停机过程的改进:服务可以请求停机等待,也可以指定服务的停机顺序。
5、  可靠性和系统恢复
(1)、内核事务管理器(KTM):用于协调应用程序和资源管理器(包括注册表和NTFS文件系统)
(2)、卷影拷贝(Volume Shadow Copy)
在XP中已经引入,主要用于备份工具
在Server 2003中用于共享文件夹的影像拷贝,作版本的管理。
在Vista中,卷影拷贝服务可以用于系统恢复(System Restore),更加灵活。
(3)、Windows错误报告(Windows Error Reporting):之前,未处理的异常是在异常线程环境中执行的,可能会因为该异常线程本身导致发不出错误报告。Vista中,线程发送一个消息,由WER服务处理。
6、  安全性
(1)、BitLocker驱动器加密:对整个OS卷进行加密(要求有1.5G为加密的系统卷)
(2)、代码完整性检验(Code Integrity Verification):对OS Loader和内核执行代码签名的检查。
(3)、地址空间布局随机化(Address Space Load Randomization,ASLR):子系统DLL在用户进程的地址空间不再是固定的地址位置,用户栈的位置是随机的,减少了缓冲区溢出攻击。
(4)、Windows服务的安全增强:使用“最小特权原则(the principle of least-privilege)”。
(5)、UAC(用户帐户控制,User Account Control):管理员组成员在运行程序时并不是特权用户,而是使用标准用户权限。当需要安装程序或访问系统数据时,系统会对操作进行提示。


http://beacon.blog.51cto.com/442731/130715

 

  • 大小: 33.8 KB
  • 大小: 77.9 KB
分享到:
评论

相关推荐

    TCP-IP技术大全

    册组织 18&lt;br&gt;2.6.8 RFC编辑 18&lt;br&gt;2.6.9 Internet服务提供商 18&lt;br&gt;2.7 小结 19&lt;br&gt;第3章 TCP/IP概述 20&lt;br&gt;3.1 TCP/IP的优点 20&lt;br&gt;3.2 TCP/IP的层和协议 21&lt;br&gt;3.2.1 体系结构 21&lt;br&gt;3.2.2 传输控制协议 21&lt;br&gt;...

    TCPIP协议详解(4-1)

    册组织 18&lt;br&gt;2.6.8 RFC编辑 18&lt;br&gt;2.6.9 Internet服务提供商 18&lt;br&gt;2.7 小结 19&lt;br&gt;第3章 TCP/IP概述 20&lt;br&gt;3.1 TCP/IP的优点 20&lt;br&gt;3.2 TCP/IP的层和协议 21&lt;br&gt;3.2.1 体系结构 21&lt;br&gt;3.2.2 传输控制协议 21&lt;br&gt;...

    MYSQL培训经典教程(共两部分) 1/2

    4&lt;br&gt;1.1.5总结 5&lt;br&gt;1.2 关系数据库管理系统 5&lt;br&gt;1.2.1 关系数据库系统 6&lt;br&gt;1.2.2 数据库系统的发展 7&lt;br&gt;1.2.3 与数据库系统通讯 8&lt;br&gt;1.2.4 MySQL的体系结构 8&lt;br&gt;1.2.5总结 8&lt;br&gt;1.3 MYSQL使用的SQL语言 9&lt;br...

    MYSQL培训经典教程(共两部分) 2/2

    4&lt;br&gt;1.1.5总结 5&lt;br&gt;1.2 关系数据库管理系统 5&lt;br&gt;1.2.1 关系数据库系统 6&lt;br&gt;1.2.2 数据库系统的发展 7&lt;br&gt;1.2.3 与数据库系统通讯 8&lt;br&gt;1.2.4 MySQL的体系结构 8&lt;br&gt;1.2.5总结 8&lt;br&gt;1.3 MYSQL使用的SQL语言 9&lt;br...

    WINDOWS NT体系结构

    windows NT体系结构的介绍 windows phone的内核

    深入解析windows操作系统 第四版 英文版 chm 格式 卷一

    本书是著名的操作系统内核专家Mark Russinovich和David Solomon撰写的Windows操作系统原理的最新版著作,全面和深入地阐述...”&lt;br&gt;——微软公司Senior Distinguished Engineer、Windows NT首席设计师David N. Cutler

    三层C/S结构编程指南

    三层C/S结构编程指南&lt;br&gt; -- 使用IBM中间件实例&lt;br&gt;&lt;br&gt;概 述&lt;br&gt;&lt;br&gt; 计算机体系结构经历了从主机集中的终端方式、C/S结构,以及现在越来越普遍的三层客户机服务器结构。在当今中国,从银行、电信,到保险、证券的...

    深入解析windows操作系统 第四版 英文版 chm 格式 卷二

    本书是著名的操作系统内核专家Mark Russinovich和David Solomon撰写的Windows操作系统原理的最新版著作,全面和深入地阐述...”&lt;br&gt;——微软公司Senior Distinguished Engineer、Windows NT首席设计师David N. Cutler

    windowsnt 技术内幕

    怎样准备70-073考试 理解工作站与客户端 理解为什么要参加70-073测试 理解Windows NT体系结构 深入理解用户模式内核模式 Windows NT Executive简介 理解Windows NT内存模型的优点 理解中央管理的优点 登录到Windows ...

    Windows操作系统体系结构上的共同点和差异

    比较Windows 2000/XP,Windows NT 4,Windows 9x和windows CE在体系结构上的共同点和差异。想一想为什么会有这样的差异?

    foobar2000 0.9.5 Final 汉化增强安装版

    开放的组件体系结构允许第三方开发者来扩展播放器的功能 2.内置音频格式支持:WAV,AIFF,VOC,AU,SND, Ogg Vorbis,MPC,MP2,MP3 3.通过官方插件支持的音频格式:MPEG-4 AAC,FLAC,Ogg FLAC,Monkey's Audio,WavPack,Speex,...

    SAMBA工具使用指南:UNIX与WINDOWS NT网络互连

    3.1 Windows NT体系结构 23 3.2 网络互连 24 3.2.1 NetBIOS 24 3.2.2 NetBT 24 3.2.3 域名服务 25 3.3 服务器消息块 27 3.4 通用Internet文件系统 28 3.5 对等网、工作组、域和森林 29 3.5.1 工作组 29 3.5.2 域 30 ...

    Samba工具使用指南:UNIX与Windows_NT网络互连

    3.1 Windows NT体系结构 23 3.2 网络互连 24 3.2.1 NetBIOS 24 3.2.2 NetBT 24 3.2.3 域名服务 25 3.3 服务器消息块 27 3.4 通用Internet文件系统 28 3.5 对等网、工作组、域和森林 29 3.5.1 工作组 29 3.5.2 域 30 ...

    windows系统编程 源代码

    那时候我们努力地支持无数不同的SCSI控制器,我长期地注意WindowsNT开发组创建的小端口驱动程序类型。不久就认识到重新构造必要的映象加载器(image loader)和小端口驱动程序需要的执行环境比把这些小端口驱动程序...

    寒江独钓《Windows内核安全编程》

    有助于读者熟悉Windows内核驱动的体系结构,并精通信息安全类的内核编程技术。本书的大部分代码具有广泛的兼容性,适合从Windows 2000一直到目前最新的Windows 7 Beta版。  本书则基本上介绍的是正统的内核编程...

    arm-linux-gcc-3.4.5 交叉编译器

    交叉编译器简单地说,就是在一个平台上生成另一个平台上的可执行代码。...而x86 WinNT平台实际上是Intel x86体系结构和Windows NT for x86操作系统的简称。 这个arm-linux-gcc-3.4.5 是个通用的arm嵌入式平台编译器

    windows2003 terminal service 部署指南

    早在 1998 年,Microsoft 发布了 Windows NT 4.0 Terminal Server Edition(代号为“Hydra”)。Microsoft 获得授权使用 Citrix Systems 的技术,创建了它的第一个瘦客户端/ 服务器产品。对于系统管理员而言,部署...

    微软的USB2.0开发包2.0

    WDM(Win32 Driver Model)是Microsoft公司力推的一种符合Windows2k/XP下的内核模式驱动程序的分层体系结构的驱动程序模式。它源于 Windows NT的分层32位设备驱动程序模型,它支持更多的特性,如即插即用( PnP ,Plug...

    MFC Windows程序设计(第2版修订版)--源代码

    如果没有特别说明它们都与Windows 98、WindowsNT4.0及Windows 2000兼容,其中大部分也与Windows 95及WindowsNT 3.51兼容。  您可用CD—ROM的根目录下的安装程序来将CD-ROM中,的内容复制到硬盘里,也可只复制...

    异构数据库体系结构

    异构数据库系统的异构性主要体现在以下几个方面: 计算机体系结构的异构 各个参与的数据库可以分别运行在大型机、小型机、工作站、PC或嵌入式系统中。 基础操作系统的异构 各个数据库系统的基础操作系统可以是Unix...

Global site tag (gtag.js) - Google Analytics