Windows NT:修订间差异

TeodoroSeccombe​(留言 | 贡献)
小 创建页面,内容为“。”
云云​(留言 | 贡献)
无编辑摘要
 
第1行: 第1行:
<includeonly>[[英语|英语]]:''{{{1|{{{text|}}}}}}''{{{2|}}}</includeonly><noinclude>
{| class="infobox" style="border:1px solid #ccc; background:#f8f9fa; width:24em; float:right; margin:0 0 1em 1em; border-spacing:5px;"
----
|-
'''模板文档'''
! colspan="2" style="text-align:center;" | '''NT内核'''
=== 用法 ===
|-
<pre>{{Lang-en|英文内容}}</pre>
| 中文名 || '''NT内核'''
=== 示例 ===
|-
{{Lang-en|Hello World}}
| 英文名 || '''NT Kernel / Windows NT Kernel'''
=== 参数 ===
|-
; 1 或 text:必填,要标注的英文内容
| 开发者 || '''微软([[Microsoft]])'''
</noinclude>
|-
| 首次发布 || '''1993年7月(Windows NT 3.1)'''
|-
| 操作系统 || '''Windows NT系列'''
|-
| 内核类型 || '''混合内核(Hybrid Kernel)'''
|-
| 核心文件 || '''ntoskrnl.exe'''
|}
 
'''NT内核'''(全称:'''Windows NT内核''',英语:''Windows NT Kernel'')是[[微软]]公司[[Windows]] NT系列[[操作系统]]的核心组件,采用[[混合内核]](Hybrid Kernel)架构设计。该内核最初于1989年启动开发,旨在构建一个真正的32位、[[抢占式多任务处理|抢占式]]、可重入、支持[[虚拟内存]]且具备跨硬件平台能力的操作系统核心<ref name=":0">[https://ivizlab.sfu.ca/arya/Papers/IEEE/HTML%20Docs/NT%20Kernel.htm The Windows NT Kernel Architecture - IEEE Computer, 1998]</ref>。NT内核负责[[线程]]调度、中断与异常分派、[[多处理器]]同步等底层机制,并与[[硬件抽象层]](HAL)及执行体(Executive)共同构成Windows NT的[[核心态]]基础<ref name=":1">[https://microsoft.fandom.com/wiki/Architecture_of_Windows_NT Architecture of Windows NT - Microsoft Wiki]</ref>。
 
== 概述 ==
 
=== 架构定位 ===
 
NT内核是Windows NT操作系统家族的基础层,其设计目标包括可移植性、可靠性、向后兼容性与可扩展性<ref name=":0" />。内核代码主要以[[C语言]]编写,关键部分使用[[汇编语言]]实现,以便直接操作处理器寄存器与专用指令<ref name=":2">[https://blog.csdn.net/hongmy525/article/details/1807531 Windows NT Kernel Architecture - CSDN博客]</ref>。作为混合内核,NT内核兼具[[微内核]]与[[宏内核]]的特点:核心层仅提供最基本的调度与同步机制,而大量系统服务(如内存管理、I/O管理)运行于核心态的执行体中,从而兼顾了模块化与性能<ref name=":1" />。
 
=== 核心功能 ===
 
NT内核的核心功能包括[[线程]]调度与分派、[[陷阱(Trap)]]处理、异常分派、中断处理与分派,以及多处理器同步<ref name=":0" />。此外,内核还负责在系统启动时初始化必要的[[驱动程序|设备驱动程序]],以确保操作系统能够正常加载<ref name=":1" />。内核提供两类基础对象:控制对象(Control Objects,如APC对象、DPC对象、中断对象)与调度对象(Dispatcher Objects,如线程、互斥体、事件、信号量、定时器),供执行体构建更高层对象使用<<ref name=":0" />。
 
== 体系结构 ==
 
=== 用户态与核心态 ===
 
[[Windows]] NT体系结构分为用户态(User Mode)与核心态(Kernel Mode)两层。用户态程序仅能访问受限制的系统资源,而核心态组件拥有对系统内存与外部设备的完全访问权限<<ref name=":1" />。用户态包含环境子系统(Environment Subsystem,负责运行各类应用程序)与集成子系统(Integral Subsystem,执行系统相关函数);核心态则由内核、执行体、硬件抽象层及核心态驱动程序组成<<ref name=":3">[https://baike.baidu.com/item/Windows%20NT/759962 Windows NT - 百度百科]</ref>。
 
=== 内核层 ===
 
内核层位于硬件抽象层与执行体之间,是NT内核中最底层的组件,实现了传统微内核理念下的核心机制<<ref name=":3" />。它提供多处理器同步、线程与中断调度、自陷处理、异常分派等功能,并始终运行于核心态,其代码不会被分页换出内存,执行也不会被其他线程抢占<<ref name=":0" />。
 
=== 执行体 ===
 
执行体(Executive)位于内核之上,是NTOSKRNL.EXE的上层部分,提供内存管理、进程与线程管理、安全引用监视、I/O系统、缓存管理等基础操作系统服务<ref name=":0" />。执行体通过对象管理器创建和管理Windows NT执行对象,并通过本地过程调用(LPC)机制实现同一计算机上客户端进程与服务器进程之间的通信<ref name=":0" />。
 
=== 硬件抽象层 ===
 
硬件抽象层(Hardware Abstraction Layer,HAL)是隔离内核、设备驱动程序与执行体免受平台特定硬件差异影响的代码层<<ref name=":0" />。HAL使得同一套操作系统代码能够在不同硬件架构(如[[x86]]、[[MIPS]]、[[DEC Alpha]]、[[PowerPC]]、[[x86-64]]及[[ARM]])上运行,从而实现了Windows NT的可移植性目标<ref name=":3" />。
 
== 技术特性 ==
 
=== 抢占式多任务 ===
 
NT内核采用完全[[抢占式多任务处理|抢占式多任务]]机制,能够中断正在运行的任务以调度其他任务,无需依赖用户程序自愿放弃[[CPU]]控制权<ref name=":3" />。这一特性保证了系统对高优先级线程的及时响应,提升了整体系统的稳定性与实时性。
 
=== 多处理器支持 ===
 
NT内核自设计之初即支持[[对称多处理]](SMP)架构,能够高效调度线程运行于多个处理器之上<ref name=":0" />。随着Windows版本演进,NT内核对处理器数量的支持不断增加,从Windows 2000 Datacenter Server支持32路SMP,到后续版本支持更多核心与更复杂的[[NUMA]]架构<ref name=":3" />。
 
=== 可移植性 ===
 
NT内核通过硬件抽象层与内核接口的抽象设计,实现了跨硬件平台的可移植性。系统仅需为不同平台提供对应的HAL,即可将同一套核心代码部署到多种处理器架构上<ref name=":0" />。此外,NT内核原生支持[[Unicode]],便于适应全球不同语言市场<ref name=":0" />。
 
== 版本演进 ==
 
NT内核随Windows NT系列操作系统不断演进。Windows NT 3.1至3.51采用NT 3.x内核架构;Windows NT 4.0将图形设备接口(GDI)移入核心态以提升性能;Windows 2000(NT 5.0)引入即插即用管理器与电源管理器;Windows XP及后续版本持续扩展内核功能,支持64位运算与新一代硬件架构<ref name=":3" />。从Windows 10开始,系统内核版本由NT 6.4升级为NT 10.0,标志着内核架构进入新的发展阶段<ref name=":3" />。
 
== 参考文献 ==
 
<references />