Evolution of Windows (Cont.)

Download Report

Transcript Evolution of Windows (Cont.)

CE01000-6 Operating
Systems
Lecture 4
Overview of Windows
Operating Systems
Overview of Windows OS
In this lecture we shall give an overview of
1. Evolution of Windows operating systems
2. Versions, Builds and Service Packs
3. Design goals of Windows
4. Overall design of Windows

Evolution of Windows


Original versions of Windows – Windows 1.0,
2.0, 3.0, 3.1 – were essentially just a GUI
front end to a simple command line driven
operating system – MS-DOS
Microsoft then focused developments aimed
at 2 separate markets


Domestic consumer market with Windows 95, 98
& ME
Corporate business market with Windows NT 3.1,
3.51 & 4.0
Evolution of Windows
(Cont.)



Windows 95 took over responsibility for
some of the OS functionality from DOS
and introduced real OS elements e.g.
virtual memory & multiprogramming –
hence proper multi-tasking.
But still much of the OS functions were still
provided by DOS including the file system
In addition much of the code in Windows
95 was legacy code i.e. older code that ran
more slowly and had various limitations
Evolution of Windows
(Cont.)



Windows 98 & ME had further developments
but were still limited by the legacy code and
were often quite unstable
Windows NT – NT = ‘New Technology’ was
developed from scratch with newer 32 bit
code. It was a joint venture with IBM and is
similar to OS2
Goal for corporate business market meant it
emphasised security and reliability over
friendliness of the user interface and
multimedia/gaming support
Evolution of Windows
(Cont.)

The 2 separate families of OS were
independent of each other with completely
separate code even for elements of the 2 OS
that performed exactly the same function in
both OS families - the code had to be
different as the rest of the OS code for both
families was different
Evolution of Windows
(Cont.)



Having 2 separate OS ‘lines’ proved
expensive for Microsoft so they wanted to
bring the 2 markets together
Windows 2000 was aimed at both the
domestic and business markets
Windows 2000 was a user friendly renaming or re-branding of what was in fact
Windows NT 5 – i.e. Windows 2000 is a
development from Windows NT 4
Evolution of Windows
(Cont.)

Windows XP is essentially Windows NT 5.1
and was a simple development from
Windows 2000 (NT 5)



The XP? is just a brand name
Windows Vista is NOT a new operating
system it is just an evolution from XP and is
essentially Windows NT 6.
Windows 7 is a rewrite of the Vista kernel in
RISC code to improve speed and efficiency.
Version numbers, Builds
and Service Packs

If you look at the internal version number for
XP you will see something like:
Microsoft ®Windows
Version 5.1 (Build 2600.xpsp_sp3_gdr.0902601234: Service Pack 3

The internal version number gives the
version number of the evolution from the
Windows NT operating system
Version numbers, Builds
and Service Packs (Cont.)


The Build number represents how many
times the various software components have
been compiled together to produce a
complete running OS
Service packs are sets of updates and bug
fixes (patches) for the OS that are bundled
together for convenience – there have been
3 service pack releases for Windows XP
Version numbers, Builds
and Service Packs (Cont.)

So Build numbers and Service Packs that are
incorporated into a particular running
Windows may vary from one instance of XP
to another, but ALL show the same version
number of 5.1
Original design goals of
Windows NT


Extensibility - easy to modify, add new
features/code - implies that a highly modular
structure is needed, with each module having
clearly defined responsibilities and interface
to other modules
Portability - easy to move to different
hardware platforms - implies that most of the
code is platform independent, limiting direct
hardware access to a small amount of code
in specific modules
Original design goals
(Cont.)

Reliability – OS must be able to protect itself
and user’s programs and data from errors
created by hardware or by software
(maliciously or from bugs). This implies that


Application programs should never be able to
crash the operating system or harm other peoples
code/data
System behaviour should be predictable under
error conditions.
Original design goals
(Cont.)



Compatibility - OS should be able to run
existing software that was designed to run
on earlier systems (Dos/Windows xx), and
other competing systems (Unix/ OS/2).
Performance - maximise performance on
each hardware platform consistent with
the achievement of the other goals
Multiprocessing and scalability - should
be able to exploit the processing power
available on multiprocessor systems
Original design goals
(Cont.)


Distributed computing - should be able to
distribute its computing tasks automatically
across a network to other computers as
required
Security - government-certifiable – to
provide security features as specified by US
government C2 certification
Reminder – OS models

Remember from last lecture – there are 3
common types of operating system model –
ways of designing overall structure of OS:



Monolithic operating systems
Layered operating systems
Client/Server operating systems
Windows NT design


Windows NT uses a mixed design using
both a layered/modular and client/server
approach to its overall structure - though
layered/modular approach is predominant
Layered portions of OS consist in:



Hardware Abstraction Layer (HAL)
Device drivers and the kernel
NT Executive
Windows NT design (Cont.)


the client/server portion consists in the
various subsystems and Windows services
that user programs call to carry out the
services they want
Fundamental core components of the OS
are designed using basic object oriented
design principles so that for example code
from one module does not directly interact
with data structures of another component
but only does so via a defined interface
Windows NT design (Cont.)


Problem/issue: Most of Windows code is
written in C rather than in an OO
programming language like C++ (though a
small amount is written in C++) – reason was
when they started development of NT, C++
had itself only just been developed
Hence C is used to mimic OO structures and
approaches
Windows structure overview
USER APPLICATION
SUBSYSTEM DLL
SYSTEM
SUPPORT
ENVIRONMENT SUBSYSTEM
NTDLL.DLL
USER MODE
KERNEL MODE
EXECUTIVE
API
I/O
MANAGER
CACHE
MANAGER
PROCESS &
THREAD
MANAGER
SECURITY
REFERENCE
MONITOR
FILE
SYSTEMS
PLUG & PLAY
MANAGER
POWER
MANAGER
CONFIGUARI
ON
MANAGER??
OBJECT
MANAGER /
LOCAL
PROCEDURE
CALL
DEVICE
DRIVERS
HARDWARE
VIRTUAL
MEMORY
MANAGER
Graphics drivers
KERNEL
ABSTRACTION
Win32 USER and
GDI (Graphics
engine)
LAYER
(HAL)
SYSTEM
SERVICES
Hardware Abstraction
Layer

Hardware Abstraction Layer (HAL) – provides a
low level interface to the hardware platform the OS is
running on - presents an abstract representation of
underlying hardware to other parts of operating
system



hides hardware specific details by providing a common
interface by which other OS components can access
hardware
Windows internal components access hardware via
HAL
Relevant HAL to use with your hardware is selected
at installation time
Device drivers


Device drivers - software that
controls/manages the operation of the various
IO devices. However – uniquely to Windows they do not manipulate hardware directly but do
so via calls to HAL
Device drivers are for

hardware IO devices (where IO involves anything not
on the motherboard of the PC e.g. hard disks, etc.
are considered as IO as well as printers, visual
display, mice, keyboard, game controllers, etc.)
Device drivers (Cont.)


File system access – file system drivers
control/manage the lower level details of the file
system
Network access - Network drivers implement
network protocols such as TCP/IP or redirect
requests to other machines on a network
Kernel

Kernel – Ntoskrnl.exe – provides
mechanisms for other components of OS
to use the processor, but it also isolates
processor hardware specific variations
from rest of OS i.e. rest of OS sees a
common set of services regardless of
processor architecture OS is running on
Kernel (Cont.)

The Kernel includes:




Thread scheduling and synchronisation
Interrupt handling and exception processing
Context switching, etc.
Kernel manages a set of kernel objects
that represent processor events and
resources
NT Executive


NT Executive - hardware independent organised as a set of modules at the same
level but that talk to each other through
defined interfaces.
Provides an interface via Ntdll.dll to user
applications to use OS functions
NT Executive Components



Major components of NT executive:
IO manager – provides services to other
components to allow device independent IO and
manages device drivers to do this
Process and thread manager – provides
service to other components allowing them to
create, manage and terminate threads and
processes – uses kernel and kernel objects to
do this
NT Executive Components
(Cont.)



Memory manager – implements virtual memory –
providing address space exceeding actual physical
memory
Cache manager – manages disk cache of recently
accessed files/data from secondary storage –
handles replacement and updating of data on disk
Configuration manager – implements and
manages the system Registry – briefly Registry is a
database of configuration information that is
specific to the set up of the OS on an individual PC
NT Executive
Components (Cont.)



Security Reference Monitor – enforces security
policy on objects/components in the system –
limiting access to resources and auditing that
access
Plug and play manager – determines which
drivers are required for which IO devices and loads
appropriate drivers without user intervention
Power manager – provides power management
services – particularly reducing power consumption
of various devices including processor
NT Executive
Components (Cont.)


Object manager –all elements within
Executive are represented as objects –
object manager supports creation, deletion
and management of those executive objects
for other components of OS
LPC (Local Procedure Call) – implements
client/server communication local to the
machine i.e. provides mechanism to support
client/server components of OS
NT Executive
Components (Cont.)


Win32 GDI & USER – provides window management
functions – allows user code to define interface controls –
menus, buttons, etc, and set up windows/dialog boxes, etc.
Windows manger uses GDI – Graphics Device Interface –
which provides a set of device independent 2 dimensional
graphics functions for other components on the system to
use


in turn GDI graphics functions are implemented by graphical device
drivers for relevant graphical display device
Win32 GDI & USER originally ran as user level services –
but were later incorporated into lower level of OS to increase
speed of processing graphics requests
Subsystems and Services


Above the NT Executive comes the user
programs and the various environmental
subsystems which user programs call
Different subsystems are designed to
provide different environments for programs
to execute in i.e. allow a program written to
execute using a different operating systems
to execute on Windows
Subsystems and Services
(Cont.)


Various system support processes and
system services – that provide a variety of
services to support user and user application
programs – such as logon and spooling
The subsystems and services have a
client/server organisation with user programs
making requests for service to the
subsystems or the support services
NTDLL



NTDLL is a system interface library module
it provides an interface to the Windows NT
Executive services that all the
environmental subsystems can access
the various environmental subsystems
translate the user application API requests
into calls to the library of routines provided
by NTDLL
NTDLL (Cont.)

NTDLL translates those requests into
system calls to services provided by the
various NT Executive modules

[Note - the ‘.dll’ means Dynamic Linked
Library – which is a set of code modules which
can be incorporated dynamically into the code of
other programs, but do not form a separate
program [no main() function]
References

Operating System Concepts. Chapter 22 &
Appendix C.