Movatterモバイル変換


[0]ホーム

URL:


Microsoft Wiki

DiscordTwitter (X)Fanon Wiki

READ MORE

Microsoft Wiki
Don't have an account?
Register
Sign In
Skip to content
Microsoft Wiki
1,356
pages

Architecture of Windows NT

Windows 2000 architecture

The Windows NT operating system family'sarchitecture consists of two layers (user mode andkernel mode), with many different modules within both of these layers.

Thearchitecture ofWindows NT, a line ofoperating systems produced and sold byMicrosoft, is a layered design that consists of two main components, user mode andkernel mode. It is apreemptive,reentrant operating system, which has been designed to work withuniprocessor andsymmetrical multi processor (SMP)-based computers. To processinput/output (I/O) requests, they use packet-driven I/O, which utilizesI/O request packets (IRPs) andasynchronous I/O. Starting withWindows 2000, Microsoft began making 64-bit versions of Windows available—before this, these operating systems only existed in32-bit versions.

Programs and subsystems in user mode are limited in terms of what system resources they have access to, while the kernel mode has unrestricted access to the system memory and external devices. The Windows NTkernel is known as ahybrid kernel. The architecture comprises asimple kernel,hardware abstraction layer (HAL), drivers, and a range of services (collectively namedExecutive), which all exist in kernel mode.Template:Sfn

User mode in Windows NT is made of subsystems capable of passing I/O requests to the appropriate kernel modesoftware drivers by using the I/O manager. Two subsystems make up the user mode layer of Windows NT: the Environment subsystem (which runs applications written for many different types of operating systems), and the Integral subsystem (operates system specific functions on behalf of the environment subsystem). Kernel mode in Windows NT has full access to the hardware and system resources of the computer. The kernel mode stops user mode services and applications from accessing critical areas of the operating system that they should not have access to what to nothing

The Executive interfaces, with all the user mode subsystems, deals with I/O, object management, security and process management. The kernel sits between the Hardware Abstraction Layer and the Executive to providemultiprocessor synchronization, thread and interrupt scheduling and dispatching, and trap handling and exception dispatching. The kernel is also responsible for initializing device drivers at bootup. Kernel mode drivers exist in three levels: highest level drivers, intermediate drivers and low level drivers.Windows Driver Model (WDM) exists in the intermediate layer and was mainly designed to be binary and source compatible betweenWindows 98 andWindows 2000. The lowest level drivers are either legacy Windows NT device drivers that control a device directly or can be aPnP hardware bus.

User mode[]

The user mode is made up of subsystems which can pass I/O requests to the appropriate kernel mode drivers via the I/O manager (which exists in kernel mode).[citation needed] Two subsystems make up the user mode layer of Windows NT: theEnvironment subsystem and theIntegral subsystem.

The environment subsystem was designed to run applications written for many different types of operating systems. None of the environment subsystems can directly access hardware, and must request access to memory resources through the Virtual Memory Manager that runs in kernel mode.[citation needed] Also, applications run at a lower priority than kernel mode processes.[citation needed]

There are three main environment subsystems: theWin32 subsystem, anOS/2 subsystem and aPOSIX subsystem.[1]

  • The Win32 environment subsystem can run 32-bit Windows applications. It contains the console as well as text window support, shutdown and hard-error handling for all other environment subsystems. It also supportsVirtual DOS Machines (VDMs), which allowMS-DOS and16-bit Windows (Win16) applications to run on Windows NT. There is a specific MS-DOS VDM which runs in its own address space and which emulates anIntel 80486 running MS-DOS 5.0. Win16 programs, however, run in a Win16 VDM. Each program, by default, runs in the same process, thus using the same address space, and the Win16 VDM gives each program its ownthread to run on. However, Windows NT does allow users to run a Win16 program in a separate Win16 VDM, which allows the program to be preemptively multitasked as Windows NT will pre-empt the whole VDM process, which only contains one running application. The Win32 environment subsystem process (csrss.exe) also includes the window management functionality, sometimes referred to as a "window manager". It handles input events (such as from the keyboard and mouse), then passes messages to the applications that need to receive this input. Each application is responsible for drawing or refreshing its own windows and menus, in response to these messages.
  • The OS/2 environment subsystem supports 16-bit character-based OS/2 applications and emulates OS/2 1.x, but not 32-bit or graphical OS/2 applications as used with OS/2 2.x or later.
  • The POSIX environment subsystem supports applications that are strictly written to either the POSIX.1 standard or the relatedISO/IEC standards. The POSIX subsystem has been an area of recent active development and is a major feature ofWindows Compute Cluster Server 2003.

The integral subsystem looks after operating system specific functions on behalf of theenvironment subsystem.[citation needed] It consists of asecurity subsystem, aworkstation service and aserver service. The security subsystem deals with security tokens, grants or denies access to user accounts based on resource permissions, handles login requests and initiates login authentication, and determines which system resources need to be audited by Windows NT.[citation needed] It also looks afterActive Directory.[citation needed] The workstation service is an API to the network redirector, which provides the computer access to the network.[citation needed] The server service is an API that allows the computer to provide network services.[citation needed]

Kernel mode[]

Windows NTkernel mode has full access to the hardware and system resources of the computer and runs code in a protected memory area.[2] It controls access to scheduling, thread prioritization, memory management and the interaction with hardware. The kernel mode stops user mode services and applications from accessing critical areas of the operating system that they should not have access to; user mode processes must ask the kernel mode to perform such operations on their behalf.

While thex86 architecture supports four different privilege levels (numbered 0 to 3), only the two extreme privilege levels are used. Usermode programs are run with CPL 3, and the kernel runs with CPL 0. These two levels are often referred to as "ring 3" and "ring 0", respectively. Such a design decision had been done to achieve code portability toRISC platforms that only support two privilege levels,[3] though this breaks compatibility withOS/2 applications that contain I/O privilege segments that attempt to directly access hardware.[4]

Kernel mode consists ofexecutive services, which is itself made up of many modules that do specific tasks,kernel drivers, akernel and aHardware Abstraction Layer, or HAL.[2]

Executive[]

The Windows Executive services make up the low-level kernel-mode portion, and are contained in the fileNTOSKRNL.EXE.[2] It deals with I/O, object management, security and process management. These are divided into severalsubsystems, among which areCache Manager,Configuration Manager,I/O Manager,Local Procedure Call (LPC),Memory Manager,Object Manager,Process Structure andSecurity Reference Monitor (SRM). Grouped together, the components can be calledExecutive services (internal nameEx).System Services (internal nameNt), i.e.,system calls, are implemented at this level, too, except very few that call directly into the kernel layer for better performance.[citation needed]

The term "service" in this context generally refers to a callable routine, or set of callable routines. This is distinct from the concept of a "service process," which is a user mode component somewhat analogous to adaemon inUnix-like operating systems.

File:Object Manager (Windows) screenshot.png

Each object in Windows NT exists in a globalnamespace. This is ascreenshot fromSysInternalsWinObj.

Object Manager
TheObject Manager (internal nameOb) is an executive subsystem that all other executive subsystems, especially system calls, must pass through to gain access to Windows NT resources—essentially making it a resource management infrastructure service.Template:Sfn The object manager is used to reduce the duplication of object resource management functionality in other executive subsystems, which could potentially lead to bugs and make development of Windows NT harder.Template:Sfn To the object manager, each resource is an object, whether that resource is a physical resource (such as a file system or peripheral) or a logical resource (such as a file). Each object has a structure orobject type that the object manager must know about.
Object creation is a process in two phases,creation andinsertion.Creation causes the allocation of an empty object and the reservation of any resources required by the object manager, such as an (optional) name in the namespace. If creation was successful, the subsystem responsible for the creation fills in the empty object.Template:Sfn Finally, if the subsystem deems the initialization successful, it instructs the object manager toinsert the object, which makes it accessible through its (optional) name or acookie called ahandle.Template:Sfn From then on, the lifetime of the object is handled by the object manager, and it's up to the subsystem to keep the object in a working condition until being signaled by the object manager to dispose of it.Template:Sfn
Handles are identifiers that represent a reference to a kernel resource through an opaque value.[5] Similarly, opening an object through its name is subject to security checks, but acting through an existing, open handle is only limited to the level of access requested when the object was opened or created.[citation needed]
Object types define the object procedures and any data specific to the object. In this way, the object manager allows Windows NT to be anobject oriented operating system, as object types can be thought of as polymorphicclasses that defineobjects. Most subsystems, though, with a notable exception in the I/O Manager, rely on the default implementation for all object type procedures.[citation needed]
Each instance of an object that is created stores its name, parameters that are passed to the object creation function, security attributes and a pointer to its object type. The object also contains an object close procedure and a reference count to tell the object manager how many other objects in the system reference that object and thereby determines whether the object can be destroyed when a close request is sent to it.Template:Sfn Every named object exists in a hierarchical objectnamespace.
Cache Controller
Closely coordinates with the Memory Manager, I/O Manager and I/O drivers to provide a common cache for regular file I/O. Uniquely, the Windows Cache Manager operates on file blocks (rather than device blocks), for consistent operation between local and remote files, and ensures a certain degree of coherency withmemory-mapped views of files, since cache blocks are a special case of memory-mapped views and cache misses a special case of page faults.
Configuration Manager
Implements theWindows registry.
I/O Manager
Allows devices to communicate with user-mode subsystems. It translates user-mode read and write commands into read or write IRPs which it passes to device drivers. It acceptsfile system I/O requests and translates them into device specific calls, and can incorporate low-level device drivers that directly manipulate hardware to either read input or write output. It also includes a cache manager to improve disk performance by caching read requests and write to the disk in the background.
Local Procedure Call (LPC)
Provides inter-process communication ports with connection semantics. LPC ports are used by user-mode subsystems to communicate with their clients, by Executive subsystems to communicate with user-mode subsystems, and as the basis for the local transport forMSRPC.
Memory Manager
Managesvirtual memory, controlling memory protection and thepaging of memory in and out of physical memory to secondary storage, and implements a general-purpose allocator of physical memory. It also implements a parser of PE executables that lets an executable be mapped or unmapped in a single, atomic step.
Starting from Windows NT Server 4.0, Terminal Server Edition, the memory manager implements a so-calledsession space, a range of kernel-mode memory that is subject to context switching just like user-mode memory. This lets multiple instances of the kernel-mode Win32 subsystem and GDI drivers run side-by-side, despite shortcomings in their initial design. Each session space is shared by several processes, collectively referred to as a "session".
To ensure a degree of isolation between sessions without introducing a new object type, the association between processes and sessions is handled by the Security Reference Monitor, as an attribute of a security subject (token), and it can only be changed while holding special privileges.
The relatively unsophisticated and ad-hoc nature of sessions is due to the fact they weren't part of the initial design, and had to be developed, with minimal disruption to the main line, by a third party (Citrix) as a prerequisite for theirterminal server product for Windows NT, calledWinFrame. Starting with Windows Vista, though, sessions finally became a proper aspect of the Windows architecture. No longer a memory manager construct that creeps into user mode indirectly through Win32, they were expanded into a pervasive abstraction affecting most Executive subsystems. As a matter of fact, regular use of Windows Vista always results in a multi-session environment.[6]
Process Structure
Handlesprocess andthread creation and termination, and it implements the concept ofJob, a group of processes that can be terminated as a whole, or be placed under shared restrictions (such a total maximum of allocated memory, or CPU time). Job objects were introduced inWindows 2000.
PnP Manager
HandlesPlug and Play and supports device detection and installation at boot time. It also has the responsibility to stop and start devices on demand—this can happen when a bus (such asUSB orFireWire) gains a new device and needs to have a device driver loaded to support it. Its bulk is actually implemented in user mode, in thePlug and Play Service, which handles the often complex tasks of installing the appropriate drivers, notifying services and applications of the arrival of new devices, and displaying GUI to the user.
SAVE
Power Manager
Deals with power events (power-off, stand-by, hibernate, etc.) and notifies affected drivers with special IRPs (Power IRPs).
Security Reference Monitor (SRM)
The primary authority for enforcing the security rules of the security integral subsystem.[7] It determines whether an object or resource can be accessed, via the use ofaccess control lists (ACLs), which are themselves made up of access control entries (ACEs). ACEs contain asecurity identifier (SID) and a list of operations that the ACE gives a select group of trustees—a user account, group account, or login session[8]—permission (allow, deny, or audit) to that resource.Template:Sfn[9]
GDI
TheGraphics Device Interface is responsible for tasks such as drawing lines and curves, rendering fonts and handling palettes. TheWindows NT 3.x series of releases had placed the GDI component in the user-modeClient/Server Runtime Subsystem, but this was moved into kernel mode with Windows NT 4.0 to improve graphics performance.[10]

Kernel[]

The kernel sits between the HAL and the Executive and provides multiprocessor synchronization, thread and interrupt scheduling and dispatching, and trap handling and exception dispatching; it is also responsible for initializing device drivers at bootup that are necessary to get the operating system up and running. That is, the kernel performs almost all the tasks of a traditional microkernel; the strict distinction between Executive and Kernel is the most prominent remnant of the original microkernel design, and historical design documentation consistently refers to the kernel component as "the microkernel".

The kernel often interfaces with the process manager.Template:Sfn The level of abstraction is such that the kernel never calls into the process manager, only the other way around (save for a handful of corner cases, still never to the point of a functional dependence).

Kernel-mode drivers[]

Windows NT uses kernel-modedevice drivers to enable it to interact withhardware devices. Each of the drivers has well defined system routines and internal routines that it exports to the rest of the operating system. All devices are seen by user mode code as a file object in the I/O manager, though to the I/O manager itself the devices are seen as device objects, which it defines as either file, device or driver objects. Kernel mode drivers exist in three levels: highest level drivers, intermediate drivers and low level drivers. The highest level drivers, such as file system drivers forFAT andNTFS, rely on intermediate drivers. Intermediate drivers consist of function drivers—or main driver for a device—that are optionally sandwiched between lower and higher level filter drivers. The function driver then relies on a bus driver—or a driver that services abus controller, adapter, or bridge—which can have an optional bus filter driver that sits between itself and the function driver. Intermediate drivers rely on the lowest level drivers to function. TheWindows Driver Model (WDM) exists in the intermediate layer. The lowest level drivers are either legacy Windows NT device drivers that control a device directly or can be a PnP hardware bus. These lower level drivers directly control hardware and do not rely on any other drivers.

Hardware abstraction layer[]

The Windows NThardware abstraction layer, or HAL, is a layer between the physical hardware of the computer and the rest of the operating system. It was designed to hide differences in hardware and therefore provide a consistent platform on which the kernel is run. The HAL includes hardware-specific code that controls I/O interfaces,interrupt controllers and multiple processors.

However, despite its purpose and designated place within the architecture, the HAL isn't a layer that sits entirely below the kernel, the way the kernel sits below the Executive: all known HAL implementations depend in some measure on the kernel, or even the Executive. In practice, this means that kernel and HAL variants come in matching sets that are specifically engineered to work together.

In particular hardware abstraction doesnot involve abstracting the instruction set, which generally falls under the wider concept ofportability. Abstracting the instruction set, when necessary (such as for handling the several revisions to thex86 instruction set, or emulating a missing math coprocessor), is performed by the kernel, or viaplatform virtualization.

See also[]

  • Windows NT
  • Windows library files
  • MinWin
  • Linux architecture
  • Unix architecture
  • Comparison of operating system kernels
  • User-Mode Driver Framework
  • Kernel-Mode Driver Framework
  • ReactOS

Notes and references[]

Notes
  1. "Appendix D - Running Nonnative Applications in Windows 2000 Professional". Microsoft Windows 2000 Professional Resource Kit. Microsoft. 
  2. 2.02.12.2Roman, Steven (1999). "Windows Architecture". Win32 API Programming with Visual Basic. O'Reilly and Associates, Inc.. ISBN 1565926315. 
  3. "MS Windows NT Kernel-mode User and GDI White Paper". Windows NT Workstation documentation. Microsoft TechNet. Retrieved 2007-12-09. 
  4. "Chapter 28 - OS/2 Compatibility". Windows NT Workstation Resource Kit. Microsoft. Retrieved 2009-01-18. 
  5. "Handles and Objects". MSDN - Win32 and COM Development. Microsoft. Retrieved 2009-01-17. 
  6. "Impact of Session 0 Isolation on Services and Drivers in Windows Vista". Microsoft. 
  7. "Active Directory Data Storage". Microsoft. 
  8. "Trustee definition". MSDN. 
  9. "ACE definition". MSDN. 
  10. "The Windows NT 4.0 Kernel mode change". MS Windows NT Kernel-mode User and GDI White Paper. Microsoft. Retrieved 2009-01-19. 
References

External links[]

Microsoft Windows components
Core
Management
Applications
Games
Kernel
Services
  • SCM
  • BITS
  • Task Scheduler
  • Wireless Zero Configuration
  • Shadow Copy
  • Error Reporting
  • Multimedia Class Scheduler
  • CLFS
File Systems
Server
Architecture
Security
Compatibility
Edit -View

hr:Arhitektura Windowsa NTja:Windows NT系tl:Kernel

Community content is available underCC-BY-SA unless otherwise noted.

[8]ページ先頭

©2009-2025 Movatter.jp