510 likes | 613 Views
Lecture 2 System architecture. xlanchen@03/04/2005. Review of last class. Win32 API and its functions System service (int 2e) Win32 services Process and threads in windows 2000 Virtual memory (0G~2G~4G) Kernel mode vs. user mode Objects and handles. Contents of this lecture.
E N D
Lecture 2 System architecture xlanchen@03/04/2005
Review of last class • Win32 API and its functions • System service (int 2e) • Win32 services • Process and threads in windows 2000 • Virtual memory (0G~2G~4G) • Kernel mode vs. user mode • Objects and handles Understanding the Inside of Windows2000
Contents of this lecture • Design goals • Operating system model • Key system components Understanding the Inside of Windows2000
Design Goals • True 32-bit, pre-emptive, re-entrant, virtual memory • Multiple hardware platforms • Symmetric multi-processor architecture • Support networked computing • Support 16-bit MS-DOS and Win3.x apps • POSIX 1003.1 compliance • TCSEC C2 certification • Support Unicode Understanding the Inside of Windows2000
Design Goals • Extensibility • Portability • Reliability and robustness • Compatibility • Performance Understanding the Inside of Windows2000
Windows 2000 VS. Consumer Windows • Consumer Windows • Windows 95, Windows 98, and Windows Millennium Edition • Both are part of the "Windows family of operating systems • Sharing a common subset API (Win32 and COM) and in some cases operating system code • And WDM (Windows Driver Model) except 95 Understanding the Inside of Windows2000
Windows 2000 VS. Consumer Windows • Multiprocessor systems, security • True 32-bit • Fully reentrant • Address space for 16-bit Windows applications • Visibility of shared memory • Writable system pages from user mode • Fully compatibility with MS-DOS and Windows 3.1 Understanding the Inside of Windows2000
Operating system model • Similar to most UNIX systems • Kernel mode VS. User mode • most of OS and device driver code shares the same kernel-mode protected memory space • Then, Windows 2000 • Monolithic operating systemORMicrokernel-Based System Understanding the Inside of Windows2000
Kernel-mode components and OO • Not an strict OO system • Follows Basic OO design principles • Mostly C not C++ • C doesn't directly support OO constructs, such as dynamic binding of data types, polymorphic functions, or class inheritance • What C brings? Understanding the Inside of Windows2000
Portability • Windows 2000 achieves portability across hardware architectures and platforms in two primary ways • Layered design • Language C Understanding the Inside of Windows2000
Multitasking vs. multiprocessing • Multitasking: sharing a single processor among multiple threads of execution • Multiprocessing • SMP vs. ASMP Understanding the Inside of Windows2000
Architecture Overview • Key system components Understanding the Inside of Windows2000
Architecture Overview • Four basic types of user-mode processes User applications Service processes Environment subsystems System support processes Understanding the Inside of Windows2000
User mode processes [1] • Systemsupport processes • not Windows 2000 services (not started by the service control manager) • Example: • Logon process • Session manager Understanding the Inside of Windows2000
User mode processes [2] • Service processes • Windows 2000 services • Example: • Task scheduler • Spooler • … Understanding the Inside of Windows2000
User mode processes [3] • User applications • One of five types • Win32 • Windows 3.1 • MS-DOS • POSIX • OS/2 1.2 Understanding the Inside of Windows2000
User mode processes [4] • Environment subsystems • Environment subsystems expose the native operating system services to user applications through a set of callable functions • Three environment subsystems • Win32, POSIX, and OS/2 Understanding the Inside of Windows2000
Architecture Overview Subsystem DLLs Understanding the Inside of Windows2000
Architecture Overview • Subsystem DLLs • User applicationsthrough one or more subsystem DLLs to call the native Windows 2000 operating system servicesindirectly • Role of the subsystem DLLs • Function appropriate internal 2K system service calls • Sometimes, sending a message to the appropriate environment subsystem process Understanding the Inside of Windows2000
Architecture Overview Kernel mode component Understanding the Inside of Windows2000
Kernel mode component • Executive: Base OS services • memory management, process and thread management, security, I/O, and IPC • Kernel: low-level OS functions • thread scheduling, interrupt and exception dispatching, and multiprocessor synchronization • Device drivers • HAL = hardware abstraction layer • Windowing and graphics system Understanding the Inside of Windows2000
Core Windows 2000 System Files • Ntoskrnl.exe • Executive and kernel • Ntkrnlpa.exe • Executive and kernel with support for PAE • Hal.dll • Different hardware platform has different HAL User mode Kernel mode Ntoskrnl.exe Hal.dll Understanding the Inside of Windows2000
Core Windows 2000 System Files • Kernel32.dll • Win32 API functions • Advapi32.dll • Advance application interface • Ntdll.dll • Internal support functions • system service dispatch stubs Core Win32 subsystem DLLs Understanding the Inside of Windows2000
Core Windows 2000 System Files • Why kernel32/advapi32 + Ntdll? Advapi32.dll Kernel32.dll Ntdll.dll User mode int 0x2e Kernel mode Ntoskrnl.exe Understanding the Inside of Windows2000
Core Windows 2000 System Files • User32.dll • Gdi32.dll • Win32k.sys • a particular diver • Kernel-mode part of the Win32 subsystem Core Win32 subsystem DLLs User32.dll Gdi32.dll User mode int 0x2e Kernel mode Win32k.sys Understanding the Inside of Windows2000
Key System Components • Windows 2000 archtecture Understanding the Inside of Windows2000
Environment Subsystems and DLLs • Win32 subsystem • POSIX Subsystem • OS/2 Subsystem • See registry key HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems Understanding the Inside of Windows2000
An example (your system may different) Understanding the Inside of Windows2000
Win32 subsystem [1] • Implemented in the Csrss.exe process • Supports basic text windows • Creating and deleting Win32 processes/threads • and in the kernel mode driver WIN32K.SYS • Parts of the Windows manager (“User”) • Parts of the GDI • And in subsystem DLLs mapping Win32 calls onto NT supervisor functions • Kernel32.dll, Advapi32.dll User32.dll, Gdi32.dll • And Graphics device drivers Understanding the Inside of Windows2000
Win32 subsystem [2] • E.g. App create windows by calling USER functions which call GDI functions which call graphic device drivers App Win32 (csrss.exe) User32.dll, Kernel32.dll, Gdi32.dll Ntdll.dll User mode Kernel mode Ntoskrnl.exe, win32k.sys Understanding the Inside of Windows2000
Window manager and graphics • In win32 process or kernel • Prior to NT4.0 • Required multiple thread and process context switches which consumed considerable CPU cycles and memory resources • In NT4.0 • moving the windowing and graphics system into kernel mode Understanding the Inside of Windows2000
POSIX Subsystem • a portable operating system interface based on UNIX • Standard: POSIX 1 • a mandatory goal for Windows 2000 • Fairly limited in usefulness Understanding the Inside of Windows2000
OS/2 Subsystem • Supports only OS/2 1.2 16-bit character-based or video I/O (VIO) applications Understanding the Inside of Windows2000
Key components (cont.) • NTDLL.DLL: • Stubs to Executive entry points • NTCreateFile, NtSetEvent etc. • Support functions for subsystems Understanding the Inside of Windows2000
Key components (cont.) • Executive (Ntoskrnl.exe), include • Functions • User mode callable or kernel mode callable • components • Such as configuration manager, process and thread manager, I/O manager, plug and play manager, power manager, virtual memory manager, and so on. • Support functions • Object manager, LPC, synchronisation primitives Understanding the Inside of Windows2000
Key components (cont.) • Kernel (in Ntoskrnl.exe) • provide fundamental mechanisms used by the executive components • Kernel objects, thread scheduling, trap and exception handling, interrupt handling Understanding the Inside of Windows2000
Ntoskrnl.exe Understanding the Inside of Windows2000
Key components (cont.) • Hardware Abstraction Layer (Hal.dll) • List of Hals • Hal.dll for Standard PCs • Halacpi.dll for ACPI PCs • Halapic.dll for APIC PCs • Halaacpi.dll for APIC ACPI PCs • Halmps.dll for Multiprocessor PCs • Halmacpi.dll for Multiprocessor ACPI PCs • Halborg.dll for Silicon Graphics Workstation (no longer marketed) • Halsp.dll for Compaq SystemPro Hal.dll Hardware Understanding the Inside of Windows2000
Key components (cont.) • EXPERIMENT: Determining Which HAL You're Running • Open \Winnt\Repair\Setup.log, search for Hal.dll Or, • In Device Manager, look at the Computer device(My ComputerPropertiesHardwareDevice Manager) • ACPI= Advanced Configuration and Power Interface • APIC= Advanced Programmable Interrupt Controller Understanding the Inside of Windows2000
Key components (cont.) • Device Drivers • loadable kernel-mode modules (mostly .sys) • run in kernel mode in one of three contexts • a user thread that initiated an I/O function • a kernel-mode system thread • an interrupt handling I/O Manager Drivers HAL Hardware Understanding the Inside of Windows2000
Device drivers • Types of device drivers • Hardware device drivers • Handle different physical devices • File system drivers • Implement file abstraction • File system filter drivers • e.g. disk mirroring, encryption and so on • Network redirectors and servers • Transmit I/O requests across network • Protocol drivers • Kernel streaming filter drivers Understanding the Inside of Windows2000
EXPERIMENTViewing the Installed Device Drivers • Run msinfo32 • An example: Understanding the Inside of Windows2000
Undocumented functions • EXPERIMENTListing Undocumented Functions • Depends.exe open system32\Ntoskrnel.exe • An example: Understanding the Inside of Windows2000
System processes • System process (0)Idle process System (8)System process smss.exe (144)Session manager csrss.exe (172) Win32 subsystem process winlogon.exe (192) Logon process services.exe (220) Service control manager svchost.exe (384)Generic service host image spoolsv.exe (480) Spooler service regsvc.exe (636) Remote registry servicemstask.exe (664) Task scheduler service lsass.exe (232) Local security authentication server Understanding the Inside of Windows2000
System Processes • Idle Process (ID 0) • System process • Always process ID 8 • The home for kernel mode system threads • Session Manager (SMSS.EXE) • First user-mode process • Completes system initialization • Win32 subsystem (csrss.exe) • Logon (winlogon.exe) Understanding the Inside of Windows2000
Logon (winlogon.exe) • Handles interactive user logons and logoffs • SAS: Ctrl+Alt+Delete • Calls Userinit.exe to create user proc • performs some initialization • creates a process to run the system-defined shell (Explorer.exe) • Exit • Local Security Authentication Server (Lsass.exe) • Validates authentication data and creates access token Understanding the Inside of Windows2000