windows 2000 system architecture n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Windows 2000 System Architecture PowerPoint Presentation
Download Presentation
Windows 2000 System Architecture

Loading in 2 Seconds...

play fullscreen
1 / 20

Windows 2000 System Architecture - PowerPoint PPT Presentation


  • 181 Views
  • Uploaded on

Windows 2000 System Architecture. Computing Department, Lancaster University, UK. Overview. Goals Explain internal architecture and operation of core Windows 2000 components Discuss the role of subsystems and their operation. System Architecture. User. Kernel. Registry.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Windows 2000 System Architecture' - marnin


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
windows 2000 system architecture

Windows 2000 System Architecture

Computing Department,

Lancaster University, UK

overview
Overview
  • Goals
    • Explain internal architecture and operation of core Windows 2000 components
    • Discuss the role of subsystems and their operation
windows 2000 architecture

User

Kernel

Registry

Windows 2000 Architecture

Replicator

Alerter

Event Log

Win32

POSIX

OS/2

Session Mgr

WinLogon

System

Processes

Services

User Apps

Environment

Subsystems

Interface DLL

Subsystem DLL

Executive Services API

I/O

System

Security

Monitor

Win32

GDI

Object

Services

Memory

Mgmt

Processes/

Threads

File

Systems

Object Management

Device

Drivers

Kernel

Exec.

RTL

Hardware Abstraction Layer (HAL)

I/O

Devices

DMA/Bus

Control

Cache

Control

Clocks/

Timers

Privileged

Architecture

Interrupt

Dispatch

windows 2000 simplified architecture
Windows 2000 Simplified Architecture

Environment Subsystems

System & Service

Processes

User Apps

OS/2

POSIX

Win32

Subsystem DLL

User

Kernel

Executive

Win32

User/GDI

Device

Drivers

Kernel

Hardware Abstraction Layer (HAL)

architecture components 1
Architecture Components (1)
  • Windows 2000 Executive
    • Upper layers of the operating system
    • Provides “generic operating system” functions
      • Creating/deleting processes and threads
      • Memory management
      • I/O
      • Interprocess communication
      • Security
    • Executes in kernel mode
    • API not documented!
      • Accessed indirectly via subsystem APIs
architecture components 2
Architecture Components (2)
  • Windows 2000 Kernel
    • Low level operating system functions
      • Thread scheduling
      • Interrupt and exception dispatching
      • Multiprocessor synchronisation
  • HAL (Hardware Abstraction Layer)
    • Isolates Kernel and Executive from platform specific details
      • E.g. differences between motherboards
    • Presents uniform model of I/O hardware interface to drivers
architecture components 3
Architecture Components (3)
  • Device Drivers
    • Loadable Kernel modules that interface between I/O manager and relevant hardware
      • File system drivers, network protocol drivers, hardware device drivers
    • Drivers call HAL functions to interface with hardware
    • View loaded drivers within Computer Management
  • Win32 User/GDI (Graphics Device Interface)
    • Implements graphical user interface (GUI)
    • Window manipulation, user interface controls
    • Drawing
memory layout in windows 2000
Memory Layout in Windows 2000

4Gb

System

(Kernel, Executive, HAL)

Privileged Memory Addresses

2Gb

Application

(User Process Space)

Unprivileged Memory Addresses

0

environment subsystems
Environment Subsystems
  • Three environment subsystems provided with Windows 2000:
    • OS/2
    • POSIX (POSIX 1003.1)
    • Win32
  • Provide exposed, documented interface between application and 2000 native API
    • Each subsystem defines a different set of APIs
  • Executables are bound to one subsystem only!
  • Function calls can’t be mixed between subsystems
  • User applications don’t calls Windows 2000 system services directly – they go via subsystem DLLs
environment subsystem components
Environment Subsystem Components
  • API DLLs
      • For Win32: Kernel32.DLL, Gdi32.DLL, User32.DLL
  • Subsystem process
      • For Win32: CSRSS.EXE
  • Kernel-Mode GDI Code (Win32 only)

1

2

3

Environment Subsystems

System & Service

Processes

2

User Apps

OS/2

POSIX

Win32

Subsystem DLL

1

User

Kernel

Executive

3

Win32

User/GDI

Device

Drivers

Kernel

Hardware Abstraction Layer (HAL)

role of subsystem components
Role of Subsystem Components
  • API DLLs
    • Export APIs defined by the subsystem
    • Implement them by calling “native” services, or by asking the subsystem process to do the work
  • Subsystem process
    • Maintains global state of subsystem
  • Win32K.SYS
    • Implements Win32 User/GDI functions
    • Also used by POSIX & OS/2 subsystems to access the display
win32 subsystem
Win32 Subsystem
  • Implemented in CSRSS.EXE process (Client/ Server Run-time SubSystem)
    • Supports console (text) windows
    • Creating and deleting Win32 processes/threads
  • Kernel mode driver WIN32K.SYS contains
    • Window Manager
      • Keyboard/mouse input, screen output, window displays
    • Graphics Device Interface (GDI)
  • Subsystem DLLs map Win32 API functions onto kernel-mode system service calls
    • USER32.DLL, KERNEL32.GDI -> NTOSKRNL
posix subsystem
POSIX Subsystem
  • Portable Operating System Interface based on Unix
    • Encourages compatibility – aids application porting
    • Included to meet US Government requirements
    • Windows 2000 implements POSIX 1003.1
    • Provides limited set of services
      • Can’t create threads, windows or use sockets!
    • Executables linked against POSIX subsystem library (Psxdll.dll)
    • Commercial Unix-to-Win32 library better approach for porting UNIX applications
os 2 subsystem
OS/2 Subsystem
  • Limited in usefulness
  • Supports OS/2 1.2 16-bit character & video I/O (VIO) applications
  • OS/2 applications attempting to access hardware directly aren’t supported
  • Both OS/2 and POSIX subsystems start automatically the first time an associated application is started
environment subsystems1
Environment Subsystems
  • Provide exposed, documented interface between applications and native APIs
  • Each subsystem defines a set of APIs
    • Implemented by invoking native APIs
      • Subsystem “wraps up” native APIs
      • Example: Win32 Kernel32.dll invokes kernel/base services in Ntdll.dll
  • When application calls subsystem DLL function, one of the following occurs:
    • Function implemented completely in user mode inside subsystem DLL (no Win2k system services called)
    • Function calls Windows 2000 Executive
    • Function requires work to be done in subsystem process (sends messages to subsystem
subsystem function paths
Subsystem Function Paths

Environment Subsystems

  • Most Win32 Kernel APIs
  • Most Win32 User/GDI APIs
  • A Few Win32 APIs

System & Service

Processes

User Apps

OS/2

POSIX

Win32

Subsystem DLL

1

3

2

User

NtDll.dll

Kernel

Executive

Win32

User/GDI

Device

Drivers

Kernel

Hardware Abstraction Layer (HAL)

1

2

3

image headers
Image Headers
  • Subsystem for each .exe specified in image header

IMAGE_SUBSYSTEM_UNKNOWN 0 Unknown Subsystem

IMAGE_SUBSYSTEM_NATIVE 1 Image doesn’t require subsystem

IMAGE_SUBSYSTEM_WINDOWS_GUI 2 Win32 subsystem (graphical app)

IMAGE_SUBSYSTEM_WINDOWS_CUI 3 Win32 subsystem (character app)

IMAGE_SUBSYSTEM_OS2_CUI 5 OS/2 subsystem

IMAGE_SUBSYSTEM_POSIX_CUI 7 POSIX subsystem

Use exetype (from Resource Kit) to view header:

native images
Native Images
  • .EXE not linked against any subsystem
    • Interfaces to Executive directly via NTDLL.DLL
  • Two examples
    • Smss.exe (Session Manager)
    • Csrss.exe (Win32 subsystem)
experimenting with posix
Experimenting with POSIX
  • Locate POSIX applications on Windows 2000 Resource Kit
    • Open command prompt
    • Look at subsystem type for one of the images (e.g. “exetype ls.exe”)
    • Type “ls ls.exe” and compare with “ls LS.EXE”
      • Why does one work?
    • Check that POSIX subsystem process is now running (psxss.exe)