Windows Operating System Internals - by David A. Solomon and Mark E. Russinovich with Andreas Polze
Windows Operating System Internals - by David A. Solomon and Mark E. Russinovich with Andreas Polze
Unit OS1:
Unit OS1:
Overview of Operating Systems
Overview of Operating Systems
1.2. The Evolution of Operating Systems
1.2. The Evolution of Operating Systems
2
Copyright Notice
Copyright Notice
© 2000-2005 David A. Solomon and Mark Russinovich
© 2000-2005 David A. Solomon and Mark Russinovich
These materials are part of the
These materials are part of the Windows Operating
Windows Operating
System Internals Curriculum Development Kit,
System Internals Curriculum Development Kit,
developed by David A. Solomon and Mark E.
developed by David A. Solomon and Mark E.
Russinovich with Andreas Polze
Russinovich with Andreas Polze
Microsoft has licensed these materials from David
Microsoft has licensed these materials from David
Solomon Expert Seminars, Inc. for distribution to
Solomon Expert Seminars, Inc. for distribution to
academic organizations solely for use in academic
academic organizations solely for use in academic
environments (and not for commercial use)
environments (and not for commercial use)
3
Roadmap for Section 1.2.
Roadmap for Section 1.2.
History of Operating Systems
History of Operating Systems
Tasks of an Operating System
Tasks of an Operating System
OS as extension of the hardware
OS as extension of the hardware
Main concepts: processes, files, system calls
Main concepts: processes, files, system calls
Operating system structuring
Operating system structuring
4
The Evolution of Operating
The Evolution of Operating
System Functionality
System Functionality
Batch
Batch Job
Job Processing
Processing
Linkage of library routines to programs
Linkage of library routines to programs
Management of files, I/O devices, secondary storage
Management of files, I/O devices, secondary storage
Multiprogramming
Multiprogramming
Resource managment and sharing for multiple programs
Resource managment and sharing for multiple programs
Quasi-
Quasi-simultaneous program execution
simultaneous program execution
Single user
Single user
Multiuser/Timesharing System
Multiuser/Timesharing Systems
s
Management of multiple simultaneous users interconnected via terminals
Management of multiple simultaneous users interconnected via terminals
Fair resource management
Fair resource management:
: CPU
CPU scheduling
scheduling, spooling, mutual exclusion
, spooling, mutual exclusion
Real-Time System
Real-Time Systems
s (
(process control systems
process control systems)
)
Management of time-critical processes
Management of time-critical processes
High requirements with respect to reliability and availability
High requirements with respect to reliability and availability
5
Tasks of an Operating System
Tasks of an Operating System
Processor management
Processor management - Scheduling
- Scheduling
Fairness
Fairness
Non-blocking behavior
Non-blocking behavior
Priorities
Priorities
Memory management
Memory management
V
Virtu
irtual
al versus physi
versus physical
cal memory, memory hierarchy
memory, memory hierarchy
Protection of competing/conurrent programs
Protection of competing/conurrent programs
Storage management
Storage management – File
– File system
system
Access to external storage media
Access to external storage media
Device management
Device management
Hiding of hardware dependencies
Hiding of hardware dependencies
Management of concurrent accesses
Management of concurrent accesses
Batch
Batch p
processing
rocessing
Definition of an execution order; throughput maximization
Definition of an execution order; throughput maximization
6
Kernel-
Kernel- and
and User Mode
User Mode Programs
Programs
Typical functionality implemented in either mode:
Typical functionality implemented in either mode:
Kernel:
Kernel:
Privileg
Privileged mode
ed mode
Strict assumptions about reliability/security of code
Strict assumptions about reliability/security of code
Memory resident
Memory resident
CPU-, memory-, Input/Output managment
CPU-, memory-, Input/Output managment
Multiprocessor management, diagnosis, test
Multiprocessor management, diagnosis, test
Parts of file system and of the networking interface
Parts of file system and of the networking interface
User Space:
User Space:
More flexible
More flexible
Simpler maintenance and debugging
Simpler maintenance and debugging
Compiler
Compiler, a
, assembler,
ssembler, i
interpreter
nterpreter, linker/loader
, linker/loader
File system management
File system management,
, t
tele
elec
communi
ommunic
cation,
ation, network management
network management
Editor
Editors
s,
, spreadsheets
spreadsheets,
, user applications
user applications
7
Layered Model of
Layered Model of
Operating System Concepts
Operating System Concepts
n
nr
r n
name
ame typ
typical
ical o
obje
bjec
ct
ts
s typical
typical o
operation
perations
s
1
1 Integrated circuits
Integrated circuits r
register,
egister, gate
gate,
, b
bus
us Nand, Nor, Exor
Nand, Nor, Exor
2
2 Machine language
Machine language inst
instr
ruction counter
uction counter, ALU
, ALU Add, Move, Load, Store
Add, Move, Load, Store
3
3 Subroutine linkage
Subroutine linkage procedure block
procedure block Stack Call, JSR, RTS
Stack Call, JSR, RTS
4
4 Interrupts
Interrupts interrupt handlers
interrupt handlers Bus
Bus error
error, Reset
, Reset
5
5 Simple p
Simple pro
roc
cesse
esses
s process
process,
, s
semaphor
emaphore
e wait, ready, execute
wait, ready, execute
6
6 Local memory
Local memory data block
data block,
, I/O channel
I/O channel read, write, open, close
read, write, open, close
7
7 V
Virtu
irtua
al
l model
model page, frame
page, frame read, write, swap
read, write, swap
8
8 Process communication
Process communication channel
channel (pipe),
(pipe), message
message read, write, open
read, write, open
9
9 File management
File management files
files read, write, open, copy
read, write, open, copy
10
10 Device management
Device management ext.
ext.memory
memory,
, t
terminals
erminals read, write
read, write
11
11 I/O data streams
I/O data streams data streams
data streams open, close, read, write
open, close, read, write
12
12 User processes
User processes user processes
user processes login, logout, fork
login, logout, fork
13
13 Directory management
Directory management intern
internal tables
al tables create, delete, modify
create, delete, modify
14
14 Graphical user interface
Graphical user interface window, menu, icon
window, menu, icon OS system calls
OS system calls
8
Operating Systems
Operating Systems Evolution
Evolution
55
60
65
70
75
80
85
90
95
00
03
IOCS
DOS/360
DOS/VDSE
VS
VS/ESA
OS/360
MVS/370
MVS/XA
MVS/ES
TSO
IBSYS
CTSS
CP/CM5
VM/370
VM/XA
VM/ESA
SYSTEM III
SYSTEM V
SYSTEM V.4
MULTICS
UNIX
UNIXV.7
AIX/370
AIX
SUN OS
POSIX
SOLARIS 2
4.1BSD
4.2BSD
4.3BSD
4.4BSD
MACH
OSF/1
AIX/ESA
XENIX MS-DOS 1.0
CP/M
DR/DOS
OS/2
WIN 3.0
WIN NT
WIN 2000
WIN 9X
WIN XP
LINUX
RSX-11M
VMS 1.0
VMS 5.4
VMS 7.3
WIN 3.1
SOLARIS 10
RT-11
LINUX 2.6
WIN Server 2003
9
Structuring of Operating Systems
Structuring of Operating Systems
Monolithical systems
Monolithical systems
Unstructured
Unstructured
Supervisor call
Supervisor call changes
changes
from
from user mode in
user mode into
to
kernel mode
kernel mode
App App
System services
Hardware
OS
procedures
User Mode
Kernel Mode
10
Layered OS
Layered OS
Each layer is given access only to lower-level
Each layer is given access only to lower-level
interfaces
interfaces
Application
Program
Application
Program
Application
Program
System Services
File System
Memory and I/O Device Management
Processor Scheduling
Hardware
User Mode
Kernel Mode
11
Microkernel OS
Microkernel OS
(Client/server OS)
(Client/server OS)
Kernel implements:
Kernel implements:
Scheduling
Scheduling
Memory
Memory
Management
Management
Interprocess
Interprocess
communication
communication
(IPC)
(IPC)
User-mode servers
User-mode servers
Memory
Server
Client
App
Network
Server
Process
Server
File
Server
Display
Server
Microkernel
Hardware
request
reply
User Mode
Kernel Mode
12
VMS and Windows
VMS and Windows
- a bird’s-eye view on architectures
- a bird’s-eye view on architectures
System-wide data structures
Memory
Management
I/O Subsystem
Process and
time management
System services
Kernel
Record Management Service (RMS)
Executive
Command Language Interpreter (CLI)
Supervisor
Platform-Adaptation Layer (PAL) - Alpha
Support Libraries
Utilities
Program
Development Tools
Layered Products
(Apps)
User
Layered design for VAX/VMS
operating system
Windows
high-level architecture
OS/2
Windows
POSIX
Environment Subsystems
User
Application
Subsystem DLL
Windows
User/GDI
Device
Driver
Executive
Device Drivers Kernel
Hardware Abstraction Layer (HAL)
User
Mode
Kernel
Mode
System
& Service
Processes
Windows
13
Release History
Release History
Although product name has varied, internally, each
Although product name has varied, internally, each
version identified by a “build number”
version identified by a “build number”
Internal identification - increments each time NT is built from
Internal identification - increments each time NT is built from
source (5-6 times a week)
source (5-6 times a week)
Interesting timeline:
Interesting timeline:
http://windows2000.about.com/library/weekly/aa010218a.htm
http://windows2000.about.com/library/weekly/aa010218a.htm
Build#
Build# Version
Version Date
Date
297
297 PDC developer release
PDC developer release Jul 1992
Jul 1992
511
511 NT 3.1
NT 3.1 Jul 1993
Jul 1993
807
807 NT 3.5
NT 3.5 Sep 1994
Sep 1994
1057
1057 NT 3.51
NT 3.51 May 1995
May 1995
1381
1381 NT 4.0
NT 4.0 Jul 1996
Jul 1996
2195
2195 Windows 2000 (NT 5.0)
Windows 2000 (NT 5.0) Dec 1999
Dec 1999
2600
2600 Windows XP (NT 5.1)
Windows XP (NT 5.1) Aug 2001
Aug 2001
3790
3790 Windows Server 2003 (NT 5.2)
Windows Server 2003 (NT 5.2) Mar 2003
Mar 2003
4051
4051 Longhorn PDC Developer Preview
Longhorn PDC Developer Preview Oct 2003
Oct 2003
Within the CRK, the term Windows refers to Windows 2000, XP, Server 2003
Within the CRK, the term Windows refers to Windows 2000, XP, Server 2003
14
Windows And Linux Evolution
Windows And Linux Evolution
Windows and Linux kernels are based on foundations developed in
Windows and Linux kernels are based on foundations developed in
the mid-1970s
the mid-1970s
1970 1980 1990 2000
V
M
S
v
1
.
0
W
i
n
d
o
w
s
N
T
3
.
1
N
T
4
.
0
W
i
n
d
o
w
s
2
0
0
0
W
i
n
d
o
w
s
X
P
S
e
r
v
e
r
2
0
0
3
1970 1980 1990 2000
U
N
I
X
b
o
r
n
U
N
I
X
p
u
b
l
i
c
U
N
I
X
V
6
L
i
n
u
x
v
1
.
0
v
2
.
0
v
2
.
2
v
2
.
3
v
2
.
4
v
2
.
6
(see http://www.levenez.com for diagrams showing history of Windows & Unix)
15
Further Reading
Further Reading
Dennis M. Ritchie, The Evolution of the Unix Time-sharing System,
Dennis M. Ritchie, The Evolution of the Unix Time-sharing System,
in Proc. of Lang. Design and Programming Meth. Conf., Sydney,
in Proc. of Lang. Design and Programming Meth. Conf., Sydney,
Australia, Sept 1979, Lecture Notes in Computer Science #79,
Australia, Sept 1979, Lecture Notes in Computer Science #79,
Springer-Verlag, 1980.
Springer-Verlag, 1980.
David Donald Miller, OpenVMS Operating System Concepts,
David Donald Miller, OpenVMS Operating System Concepts,
2nd Ed., Digital Press, 1997.
2nd Ed., Digital Press, 1997.
History of Digital Operating Systems (from pp. 447)
History of Digital Operating Systems (from pp. 447)
Mark E. Russinovich and David A. Solomon,
Mark E. Russinovich and David A. Solomon,
Microsoft Windows Internals,
Microsoft Windows Internals,
4th Edition, Microsoft Press, 2004.
4th Edition, Microsoft Press, 2004.
Historical Perspective (from pp. xix)
Historical Perspective (from pp. xix)
G. Pascal Zachary, Show Stopper! The Breakneck Race to Create
G. Pascal Zachary, Show Stopper! The Breakneck Race to Create
Windows NT and the Next Generation at Microsoft,
Windows NT and the Next Generation at Microsoft,
ISBN: 0029356717, Free Press, 1994.
ISBN: 0029356717, Free Press, 1994.

The evolution of an operating system.ppt

  • 1.
    Windows Operating SystemInternals - by David A. Solomon and Mark E. Russinovich with Andreas Polze Windows Operating System Internals - by David A. Solomon and Mark E. Russinovich with Andreas Polze Unit OS1: Unit OS1: Overview of Operating Systems Overview of Operating Systems 1.2. The Evolution of Operating Systems 1.2. The Evolution of Operating Systems
  • 2.
    2 Copyright Notice Copyright Notice ©2000-2005 David A. Solomon and Mark Russinovich © 2000-2005 David A. Solomon and Mark Russinovich These materials are part of the These materials are part of the Windows Operating Windows Operating System Internals Curriculum Development Kit, System Internals Curriculum Development Kit, developed by David A. Solomon and Mark E. developed by David A. Solomon and Mark E. Russinovich with Andreas Polze Russinovich with Andreas Polze Microsoft has licensed these materials from David Microsoft has licensed these materials from David Solomon Expert Seminars, Inc. for distribution to Solomon Expert Seminars, Inc. for distribution to academic organizations solely for use in academic academic organizations solely for use in academic environments (and not for commercial use) environments (and not for commercial use)
  • 3.
    3 Roadmap for Section1.2. Roadmap for Section 1.2. History of Operating Systems History of Operating Systems Tasks of an Operating System Tasks of an Operating System OS as extension of the hardware OS as extension of the hardware Main concepts: processes, files, system calls Main concepts: processes, files, system calls Operating system structuring Operating system structuring
  • 4.
    4 The Evolution ofOperating The Evolution of Operating System Functionality System Functionality Batch Batch Job Job Processing Processing Linkage of library routines to programs Linkage of library routines to programs Management of files, I/O devices, secondary storage Management of files, I/O devices, secondary storage Multiprogramming Multiprogramming Resource managment and sharing for multiple programs Resource managment and sharing for multiple programs Quasi- Quasi-simultaneous program execution simultaneous program execution Single user Single user Multiuser/Timesharing System Multiuser/Timesharing Systems s Management of multiple simultaneous users interconnected via terminals Management of multiple simultaneous users interconnected via terminals Fair resource management Fair resource management: : CPU CPU scheduling scheduling, spooling, mutual exclusion , spooling, mutual exclusion Real-Time System Real-Time Systems s ( (process control systems process control systems) ) Management of time-critical processes Management of time-critical processes High requirements with respect to reliability and availability High requirements with respect to reliability and availability
  • 5.
    5 Tasks of anOperating System Tasks of an Operating System Processor management Processor management - Scheduling - Scheduling Fairness Fairness Non-blocking behavior Non-blocking behavior Priorities Priorities Memory management Memory management V Virtu irtual al versus physi versus physical cal memory, memory hierarchy memory, memory hierarchy Protection of competing/conurrent programs Protection of competing/conurrent programs Storage management Storage management – File – File system system Access to external storage media Access to external storage media Device management Device management Hiding of hardware dependencies Hiding of hardware dependencies Management of concurrent accesses Management of concurrent accesses Batch Batch p processing rocessing Definition of an execution order; throughput maximization Definition of an execution order; throughput maximization
  • 6.
    6 Kernel- Kernel- and and UserMode User Mode Programs Programs Typical functionality implemented in either mode: Typical functionality implemented in either mode: Kernel: Kernel: Privileg Privileged mode ed mode Strict assumptions about reliability/security of code Strict assumptions about reliability/security of code Memory resident Memory resident CPU-, memory-, Input/Output managment CPU-, memory-, Input/Output managment Multiprocessor management, diagnosis, test Multiprocessor management, diagnosis, test Parts of file system and of the networking interface Parts of file system and of the networking interface User Space: User Space: More flexible More flexible Simpler maintenance and debugging Simpler maintenance and debugging Compiler Compiler, a , assembler, ssembler, i interpreter nterpreter, linker/loader , linker/loader File system management File system management, , t tele elec communi ommunic cation, ation, network management network management Editor Editors s, , spreadsheets spreadsheets, , user applications user applications
  • 7.
    7 Layered Model of LayeredModel of Operating System Concepts Operating System Concepts n nr r n name ame typ typical ical o obje bjec ct ts s typical typical o operation perations s 1 1 Integrated circuits Integrated circuits r register, egister, gate gate, , b bus us Nand, Nor, Exor Nand, Nor, Exor 2 2 Machine language Machine language inst instr ruction counter uction counter, ALU , ALU Add, Move, Load, Store Add, Move, Load, Store 3 3 Subroutine linkage Subroutine linkage procedure block procedure block Stack Call, JSR, RTS Stack Call, JSR, RTS 4 4 Interrupts Interrupts interrupt handlers interrupt handlers Bus Bus error error, Reset , Reset 5 5 Simple p Simple pro roc cesse esses s process process, , s semaphor emaphore e wait, ready, execute wait, ready, execute 6 6 Local memory Local memory data block data block, , I/O channel I/O channel read, write, open, close read, write, open, close 7 7 V Virtu irtua al l model model page, frame page, frame read, write, swap read, write, swap 8 8 Process communication Process communication channel channel (pipe), (pipe), message message read, write, open read, write, open 9 9 File management File management files files read, write, open, copy read, write, open, copy 10 10 Device management Device management ext. ext.memory memory, , t terminals erminals read, write read, write 11 11 I/O data streams I/O data streams data streams data streams open, close, read, write open, close, read, write 12 12 User processes User processes user processes user processes login, logout, fork login, logout, fork 13 13 Directory management Directory management intern internal tables al tables create, delete, modify create, delete, modify 14 14 Graphical user interface Graphical user interface window, menu, icon window, menu, icon OS system calls OS system calls
  • 8.
    8 Operating Systems Operating SystemsEvolution Evolution 55 60 65 70 75 80 85 90 95 00 03 IOCS DOS/360 DOS/VDSE VS VS/ESA OS/360 MVS/370 MVS/XA MVS/ES TSO IBSYS CTSS CP/CM5 VM/370 VM/XA VM/ESA SYSTEM III SYSTEM V SYSTEM V.4 MULTICS UNIX UNIXV.7 AIX/370 AIX SUN OS POSIX SOLARIS 2 4.1BSD 4.2BSD 4.3BSD 4.4BSD MACH OSF/1 AIX/ESA XENIX MS-DOS 1.0 CP/M DR/DOS OS/2 WIN 3.0 WIN NT WIN 2000 WIN 9X WIN XP LINUX RSX-11M VMS 1.0 VMS 5.4 VMS 7.3 WIN 3.1 SOLARIS 10 RT-11 LINUX 2.6 WIN Server 2003
  • 9.
    9 Structuring of OperatingSystems Structuring of Operating Systems Monolithical systems Monolithical systems Unstructured Unstructured Supervisor call Supervisor call changes changes from from user mode in user mode into to kernel mode kernel mode App App System services Hardware OS procedures User Mode Kernel Mode
  • 10.
    10 Layered OS Layered OS Eachlayer is given access only to lower-level Each layer is given access only to lower-level interfaces interfaces Application Program Application Program Application Program System Services File System Memory and I/O Device Management Processor Scheduling Hardware User Mode Kernel Mode
  • 11.
    11 Microkernel OS Microkernel OS (Client/serverOS) (Client/server OS) Kernel implements: Kernel implements: Scheduling Scheduling Memory Memory Management Management Interprocess Interprocess communication communication (IPC) (IPC) User-mode servers User-mode servers Memory Server Client App Network Server Process Server File Server Display Server Microkernel Hardware request reply User Mode Kernel Mode
  • 12.
    12 VMS and Windows VMSand Windows - a bird’s-eye view on architectures - a bird’s-eye view on architectures System-wide data structures Memory Management I/O Subsystem Process and time management System services Kernel Record Management Service (RMS) Executive Command Language Interpreter (CLI) Supervisor Platform-Adaptation Layer (PAL) - Alpha Support Libraries Utilities Program Development Tools Layered Products (Apps) User Layered design for VAX/VMS operating system Windows high-level architecture OS/2 Windows POSIX Environment Subsystems User Application Subsystem DLL Windows User/GDI Device Driver Executive Device Drivers Kernel Hardware Abstraction Layer (HAL) User Mode Kernel Mode System & Service Processes Windows
  • 13.
    13 Release History Release History Althoughproduct name has varied, internally, each Although product name has varied, internally, each version identified by a “build number” version identified by a “build number” Internal identification - increments each time NT is built from Internal identification - increments each time NT is built from source (5-6 times a week) source (5-6 times a week) Interesting timeline: Interesting timeline: http://windows2000.about.com/library/weekly/aa010218a.htm http://windows2000.about.com/library/weekly/aa010218a.htm Build# Build# Version Version Date Date 297 297 PDC developer release PDC developer release Jul 1992 Jul 1992 511 511 NT 3.1 NT 3.1 Jul 1993 Jul 1993 807 807 NT 3.5 NT 3.5 Sep 1994 Sep 1994 1057 1057 NT 3.51 NT 3.51 May 1995 May 1995 1381 1381 NT 4.0 NT 4.0 Jul 1996 Jul 1996 2195 2195 Windows 2000 (NT 5.0) Windows 2000 (NT 5.0) Dec 1999 Dec 1999 2600 2600 Windows XP (NT 5.1) Windows XP (NT 5.1) Aug 2001 Aug 2001 3790 3790 Windows Server 2003 (NT 5.2) Windows Server 2003 (NT 5.2) Mar 2003 Mar 2003 4051 4051 Longhorn PDC Developer Preview Longhorn PDC Developer Preview Oct 2003 Oct 2003 Within the CRK, the term Windows refers to Windows 2000, XP, Server 2003 Within the CRK, the term Windows refers to Windows 2000, XP, Server 2003
  • 14.
    14 Windows And LinuxEvolution Windows And Linux Evolution Windows and Linux kernels are based on foundations developed in Windows and Linux kernels are based on foundations developed in the mid-1970s the mid-1970s 1970 1980 1990 2000 V M S v 1 . 0 W i n d o w s N T 3 . 1 N T 4 . 0 W i n d o w s 2 0 0 0 W i n d o w s X P S e r v e r 2 0 0 3 1970 1980 1990 2000 U N I X b o r n U N I X p u b l i c U N I X V 6 L i n u x v 1 . 0 v 2 . 0 v 2 . 2 v 2 . 3 v 2 . 4 v 2 . 6 (see http://www.levenez.com for diagrams showing history of Windows & Unix)
  • 15.
    15 Further Reading Further Reading DennisM. Ritchie, The Evolution of the Unix Time-sharing System, Dennis M. Ritchie, The Evolution of the Unix Time-sharing System, in Proc. of Lang. Design and Programming Meth. Conf., Sydney, in Proc. of Lang. Design and Programming Meth. Conf., Sydney, Australia, Sept 1979, Lecture Notes in Computer Science #79, Australia, Sept 1979, Lecture Notes in Computer Science #79, Springer-Verlag, 1980. Springer-Verlag, 1980. David Donald Miller, OpenVMS Operating System Concepts, David Donald Miller, OpenVMS Operating System Concepts, 2nd Ed., Digital Press, 1997. 2nd Ed., Digital Press, 1997. History of Digital Operating Systems (from pp. 447) History of Digital Operating Systems (from pp. 447) Mark E. Russinovich and David A. Solomon, Mark E. Russinovich and David A. Solomon, Microsoft Windows Internals, Microsoft Windows Internals, 4th Edition, Microsoft Press, 2004. 4th Edition, Microsoft Press, 2004. Historical Perspective (from pp. xix) Historical Perspective (from pp. xix) G. Pascal Zachary, Show Stopper! The Breakneck Race to Create G. Pascal Zachary, Show Stopper! The Breakneck Race to Create Windows NT and the Next Generation at Microsoft, Windows NT and the Next Generation at Microsoft, ISBN: 0029356717, Free Press, 1994. ISBN: 0029356717, Free Press, 1994.

Editor's Notes

  • #3 An operating system is a program that acts as an intermediary between a user of a computer and the computer hardware. The purpose of an operating system is to provide an environment in which a user can execute programs. The primary goal is thus to make the computer system convenient to use. A secondary goal is to use the computer hardware in an efficient manner. A computer system can be divided roughly into four components: the hardware, the operating system, the applications programs, and the users. The hardware – the central processing unit (CPU), memory, and input/output (I/O) devices – provides the basic computing resources. The application programs – such as compilers, database systems, games, and business programs – define the ways in which these resources are used to solve the computing problems of the users. There may be many different users and many different application programs. The operating system controls and coordinates the use of hardware among the various applications programs for the various users.
  • #8 This diagram represents only a small fraction of the world of desktop operating systems. Due to space limitations, some important candidates had to be excluded from the picture. For comprehensive diagrams showing the Unix and Windows OS evolution see: http://www.levenez.com
  • #11 Is Windows a Microkernel-Based System? Although some claim it as such, Windows isn’t a microkernel-based operating system in the classic definition of microkernels, where the principal operating system components (such as the memory manager, process manager, and I/O manager) run as separate processes in their own private address spaces, layered on a primitive set of services the microkernel provides. For example, the Carnegie Mellon University Mach operating system, a contemporary example of a microkernel architecture, implements a minimal kernel that comprises thread scheduling, message passing, virtual memory, and device drivers. Everything else, including various APIs, file systems, and networking, runs in user mode. However, commercial implementations of the Mach microkernel operating system typically run at least all file system, networking, and memory management code in kernel mode. The reason is simple: the pure microkernel design is commercially impractical because it’s too inefficient.
  • #12 The VMS operating system and the VAX architecture were designed at the same time - several features of the VAX architecture can be traced to specific usages in the operating system. One particular design feature is the four modes of protection enforced by the hardware (Kernel, Executive, Supervisor, and User). The full instruction set of the VAX is available to programs executing in kernel mode. The entire VMS database (scheduler, IS, and memory) is accessible only in kernel mode. Most of the system services operate in kernel mode. The executive modes is reserved for RMS, the Record Management Services, responsible for managing all files on disk. The Command Language Interpreter (CLI) executes in supervisor mode, calling both RMS and VMS kernel services. The least privileged and by far the greatest number of programs execute in user mode, as do the utilities, compiler, editors, and certain Digital products. The architecture of Windows also uses a layered design. However, Windows uses only two different protection modes, namely kernel mode (privileged) and user mode. Interestingly enough, the VAX/VMS design has influenced the feature set of other processor architectures as well - even the Intel 80368 series of CPUs supports four distinct protection modes (ring 0..3).