Introduction
Windows OS is computer OS developed by
Microsoft Corporation to run PCs.
Microsoft is an American Company which was
founded by Bill Gates and Paul Allen in 1975.
Windows provides GUI, virtual memory
management , multitasking and support for
many devices.
History of Windows
• MS-DOS (1981)
• Windows 1.0 – 2.0 (1985-1992)
• Windows 3.0 – 3.1 (1990-1994)
• Windows 95 (June 1998)
• Windows 98 (June 1998)
• Windows NT 3.1 – 4.0 (1993 – 1996)
• Windows 2000 (February 2000)
• Windows ME – Millennium Edition (Sep 2000)
• Windows XP (Oct 2001)
• Windows Vista (Nov 2006)
• Windows 7 (Oct 2009)
• Windows 8 (Aug 2012)
• Windows 10 (July 2015)
MS-DOS (1981)
• Developed by Microsoft for IBM.
• A user can interact with this OS only through
command prompt.
• There are several commands with options are
provided for furnishing the computer related
tasks.
Windows 1.0-2.0 (1985-1992)
• Instead of typing MS-DOS commands, Windows 1.0
allowed user to point and click to access the windows.
• You can display the contents of electronic folders and
files with the click of a mouse button, rather than
typing commands and directory paths at a text prompt.
Windows 2.0 was designed for the Intel 286 processor
(16 – bit microprocessor).
This version added desktop icons , keyboard shortcuts
and improved graphics support.
Windows 3.0 – 3.1 (1990 – 1994)
• It allowed better icons , performance and advanced
graphics with 16 colors designed for Intel 386 processors.
• It supports standard “look and feel” of Microsoft Windows
for many years to come.
• This included Program Manager , File Manager and Print
Manager and games.
• Microsoft released Windows 3.1 in 1992 with few changes.
Windows 95 (1995)
• As the name implies, Windows 95 was arrived
in August 1995.
• It bought the first ever start button and start
menu.
• It supported 32 – bit applications.
Windows 98 ( June 1998)
• Windows 98 bought with it IE 4 (Internet
Explorer 4).
• It supported a number of new technologies.
Windows NT 3.1 – 4.0 (1993-1996)
• Windows NT – 32 bit OS that supports
multitasking.
• It is processor independent , multiprocessing
and multi – user OS.
• There are two versions of Windows NT :
Windows NT Server and Windows NT
Workstation.
Windows 2000 (February 2000)
• It is abbreviated as “W2K”.
• Windows 2000 is an operating system for business
desktop and laptop systems to run software
applications , connect to internet and intranet sites,
and access files, printers, and network resources.
• There are 4 versions of Windows 2000 : Professional (
for business desktop and laptop systems), Server(both
Web Server and an office server), Advanced Server (for
line of business applications) and Datacenter Server
(for high traffic computer networks).
Windows ME – Millennium Edition
(Sep 2000)
• Windows ME was an update to the Windows
98 core and included some features of the
windows 2000 OS .
• It also removed the “boot in DOS” option.
• This was the last windows to be based on MS-
DOS.
Windows XP (Oct 2001)
• Windows XP is based on Windows 2000 kernel
; giving user a more stable and reliable
environment than previous versions of
windows.
• There are two versions of Windows : Home
and Professional.
Windows Vista (November 2006)
• Windows vista offered an advancement in
security , performance , ease of deployment
and manageability over Windows XP.
• It has capabilities to detect hardware
problems before they occur.
• Faster start-up time.
• Low power consumption.
• New sleep state.
Windows 7 (October 2009)
• Improved performance and start-up time.
• It bought with it IE 8 (Internet Explorer 8) and
multi-touch support.
• Improved security.
• It was intended to fix all the problems faced
by Vista.
Windows 8 (August 2012)
• Windows 8 is a completely redesigned OS.
• It was designed with touch screen use in mind.
• Start up in a matter of seconds rather than in minutes.
• Windows 8 replaced traditional “MS-DOS look and
feel” with a new “Metro” design system interface.
• The Metro user interface consists of “Start screen” and
“Live Tiles”.
• Windows 8 supports both x86 PCs and ARM
processors.
Windows 10 ( July 2015)
• Fast start up and resume, built in security.
• Return of the Start Menu , New task menu ,
central notification screen, Anti key logging
support, advanced search facility and many
more features.
Programming Windows
• Win32 programming subsystem introduced as a part of
NTbased system and the modern WinRT that was
introduced in Windows 8.
• Main feature is NTOS kernel mode program which uses the
same system call interface upon which the OS was built on.
• It’s not open source.
• It has Modern Software Development Kit which includes
WinRT API.
• The libraries implement high level OS functions that uses
inter-process communication using the subsystem.
• Calls of subsystem takes place in kernel mode.
The Native NT Application Programming
Interface
• In this API, calls are available to create new kernel
mode objects or to access existing ones.
• Every call creating or opening an object returns a
result called handle to the caller.
• Handles are specific to the process that created
them.
• Following table provides a list of some of the
common categories of kernel-mode objects
supported by the kernel in Windows:
The Win32 Application Programming Interface
• The function calls are called as Win32 API.
• Most of the functionality of NT APIs is available
through the Win32 API.
• Some Win32 calls take path names and NT calls
use handles.
• The table below shows the Win32 API calls and
corresponding native NT API calls:
The Windows Registry
• Windows Registry is used to store information that is necessary to
configure the system for one or more users, application, hardware
etc.
• This includes information such as profiles of each users, apps
installed on PC, what type of documents that can be created and so
on.
• A registry stores a group of keys, subkeys and values in the registry
that has a set of supporting files that contains backups of its data.
• The supporting files for all except HKEY_CURRENT_USER are in the
%SystemRoot%\System32\Config folder on Windows.
Operating System Structure
• Windows OS is divided into user mode and kernel mode.
• The Virtual Memory, also known as virtual RAM, allows
hard disk space to be used as if it were additional memory.
• The kernel mode in Windows is comprised of the Windows
Executive, which includes the Executive Services, the
kernel, and the hardware abstraction layer(HAL).
Booting Windows
• Booting is the process of starting fresh(Cold Booting)
or resetting (Warm Booting) the computer.
• When you start your PC, BIOS Initialization starts.
• Then runs a Power On Self Test (POST) which ends
when BIOS detects a valid system disk.
• Then reads the Master Boot Record from it and then
opens Booting.exe.
• This finds and starts Winload.exe which begins the
OSloader phase.
• It is necessary to update BIOS version and hardware
components to keep computer optimized.
• OSloader then loads the system registry hive and
additional drvies that are marked as BOOT_START into
memory.
Implementation of the object Manager
• The Object Manager is the Executive
subsystem,which provides a resource
management support infrastructure tht all other
NT Executive subsystem is dependent on.
• Handles:The handle is an abstraction which
hides a real memory address from the API
user,allowing the system to reorganize physical
memory transparently to the program.
• The Object Namespace:To protect named object
from unauthorized access,an object namespace
is used.
Subsystems,DLLs,and User-Mode
Services
• The subsystems are the way of supporting
multiple operating system with the same
underlying software in kernal mode.
• A second key aspect of the user-mode design of
windows is Dynamic link library(DLLs),which is a
library that contain code and data that can be
used by more than one program at the same
time.
• The user mode services are not having ability to
directly access hardware or reference memory.
PROCESSES AND THREADS IN WINDOWS
• A process is nothing but an executing program which contains its own
independent virtual address sopace with both code and data,protected from
other process.
• The windows thread is the basic executable unit.Threads are scheduled on the
basis of the usual factors such as availability of resource(CPUs and physical
memory).
• Jobs and fibres
The jobs are used for resource management as once a process is in a job,all
processes threads in those process create will also be in the job.
The fibers are created by allocating a stack and a user mode fiber data structure for
storing registers and data associated with the fiber.
• Thread pools and user-mode scheduling
The thread pool is a facility that provide a better abstraction for certain types of
programs.
The implementation of UMS(User-Mode scheduling) has three key elements.
1.User-mode switching
2.Re-entering the user-mode scheduler
3.System-call completion
Job,Process,Thread,and fiber
Management API Calls
• Interprocess Communication(IPC)
It allows the exchange of data between
processes.
• Synchronization
Windows provides synchronization
mechanisms such as
semaphores,mutexes,critical regions ,and
events.
Implementation of Process aand
Threads
•
MEMORY
Virtual Address Allocation
MANAGEMENT
• Each page of virtual address can be in on of the three states:
1.Invalid
2.Reserved
3.Committed
• Pagefiles
The backing store to committed pages which are not being mapped to specific files uses the
pagefiles.
Memory-Management system calls
Implementation of Memory
Management
• Page Fault Handling
A page fault is a type of interrupt called trap,raised by
computer hardware when a running program accesses a
memory page that is mapped into the virtual address space
but not actually loaded into main memory.
• The Page Replacement Algorithm
1.Lots of memory available
2.Memory Getting Tight
3.Memory is tight
• Physical Memory Management
When a physical is no longer mapped by the page table in
any process it goes onto one of three list:
1.Free
2.Modified
3.Standby