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