`
美丽的小岛
  • 浏览: 310708 次
  • 性别: 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操作系统家族中的一个重要分支,它的设计旨在提供一个稳定、可靠的平台,以支持各种企业和个人用途。Windows NT体系结构不仅涵盖了传统桌面操作系统,如Windows XP和Windows Server...

    MySQL中文参考手册.chm

    &lt;br/&gt;4.16.1 从一个 3.22 版本升级到 3.23 &lt;br/&gt;4.16.2 从一个 3.21 版本升级到 3.22 &lt;br/&gt;4.16.3 从一个 3.20 版本升级到 3.21 &lt;br/&gt;4.16.4 升级到其他的体系结构 &lt;br/&gt;5 MySQL 与标准的兼容性?&lt;br/&gt;5.1 MySQL对...

    深入解析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

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

    Windows操作系统家族是一个庞大且多元的体系,包含了多个版本,如Windows 9X系列、Windows NT 4、Windows CE等,它们各自具有独特的体系结构,同时也存在一些共通之处。这些差异主要是由于微软在不同历史时期对市场...

    windowsnt 技术内幕

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

    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,...

    深入研究Windows内部原理系列之二:Windows体系结构-从操作系统的角度.zip

    在深入探讨Windows操作系统内部原理的过程中,我们首先需要理解Windows的体系结构。这是一门复杂的科学,涉及硬件交互、进程管理、内存分配、中断处理、驱动程序接口等多个层面。本系列的第二部分主要聚焦于Windows...

    深入研究Windows内部原理系列之二:Windows体系结构

    深入研究Windows内部原理系列之二:Windows体系结构 在探讨Windows体系结构时,我们进入了一个复杂而精细的领域,这是操作系统设计与实现的核心部分。Windows作为全球最广泛使用的桌面操作系统之一,其体系结构的...

    UNIX和WINDOWSNT系统的比较.doc

    它的可移植性使得它能在多种硬件平台上运行,这得益于其分层的体系结构和使用C语言编写,使得源代码可供修改和再利用。UNIX在工程领域和高性能计算中占据主导地位,常用于服务器、数据库、网络服务(如Web服务器、...

    Oracle9i for Windows NT&2000数据库系统培训教程(基础篇).rar

    本教程“Oracle9i for Windows NT&2000数据库系统培训教程(基础篇)”是针对初学者和想要深入理解Oracle数据库体系结构的专业人士而编写的,旨在帮助读者建立坚实的Oracle数据库理论基础和技术实践能力。 一、Oracle...

    windows nt课件

    《深入探索Windows NT技术》 Windows NT,全称Windows New Technology,是微软公司推出的一款操作系统...北京邮电大学的课程内容严谨而实用,对于IT从业者或有志于深入研究Windows NT体系的人来说,是一份宝贵的资源。

    ARM开发环境

    - `target-options`:指定目标处理器或ARM体系结构。 - `debug-options`:调试选项。 - `code-generation-options`:代码生成选项。 - `warning-options`:警告选项。 - `additional-checks`:额外检查。 - `error-...

    ADS1.2教程中文经典版实用.pdf

    ADS1.2是ARM公司推出的最新版本,它不仅适用于Windows NT4、Windows 2000、Windows 98和Windows 95,还支持Windows XP和Windows Me操作系统。 ADS主要由以下几个部分组成: 1. **命令行开发工具**:这些工具负责将...

Global site tag (gtag.js) - Google Analytics