Operating Systems WT 2019/20 - dcl.hpi.uni-potsdam.de · Abridged History of Operating Systems....
Transcript of Operating Systems WT 2019/20 - dcl.hpi.uni-potsdam.de · Abridged History of Operating Systems....
Operating Systems WT 2019/20Abridged History of Operating Systems
Operating Systems 2
Something to Ponder
What is an Operating System?try to come up with a definition of what the term operating system means.
Discuss your findings amongst yourselves.
Operating Systems 5
Operating System Definition
My attempt:An operating system is a program that runs and orchestrates other programs, based on a set of optimization criteria.
Operating Systems 6
Hardware and Software
Hardware Development
Operating System Development
Operating Systems 7
The First Computer
Q: What was the first computer?
Operating Systems 8
First Computers● 1801: Power loom driven by wooden punch cards
● 1822: Steam- driven analytical engine by Charles Babbage
● Mechanical decimal stored ‐program computer, programmable by punch cards, support for calculation and conditional statements
● Remained unbuilt; Based on concepts, Ada Byron later invented subroutines and loops as programming concepts
● 1890: U.S. census supported by Hollerith desk - punch card reader, counting units, wall of dial indicators
● Built by Tabulating Machine Company, which eventually became International Business Machines
● Invented the idea of output punch cards independent from Babbage
Operating Systems 9
First Computers● 1944: Harvard Mark I developed in partnership between Harvard
and IBM (ballistic firing tables)
● First programmable digital computer made in the U.S.
● Constructed of switches, relays, rotating shafts, clutches
● Grace Hopper found the first computer bug, invented the predecessor of COBOL and the first compiler
● 1941: Konrad Zuse completed the work on the Z3
● First programmable electromechanical computer
● Punch film for program and data (lack of paper)
● Mapping of Boolean algebra to relays, developed independently from original Shannon work
● Plankalkül – programming language
Operating Systems 10
Von Neumann Architecture● 1946: ENIAC as first fully electronic computer in the U.S.
● No program memory, re-wiring for each program
● EDVAC: Revolutionary extension with a stored program computer concept by John von Neumann
● Memory contains both the program and the data
● Introduction of a general purpose computer concept
Operating Systems 11
Serial Processing● Computers from 1940 to 1955 were able to perform serial processing
● Programs for the machine (relays, vacuum tubes) written in assembly language
● Console with display lights, switches, punch card reader / plugboard, printer
● Re-wiring or punch card reading necessary for filling the program memory
● Program had complete control of the machinefor the entire run-time
● Manual reservation, user either finished early(wasted time) or could not debug their problem
● Long setup time -Job may involve running the compilerprogram first and feeding in the output again
Operating Systems 13
1st Idea: Batch Processing● A job control language (JCL) operates the monitor
application
● Instructions about the compiler to use, data to work on etc. (Fortran prefix $)
● Early version of system calls
● Monitor needed to switch between itself and the application
● Resident monitor parts always in memory
● Demands on hardware: memory protection, timer, privileged instructions for I/O
● User mode vs. monitor mode (system mode, kernel mode, supervisor mode)
Operating Systems 14
2nd Idea: Multiprogramming● Batch processing increases utilization, but jobs still need to
wait for I/O operations
● Idea: Load multiple jobs into memory at the same time
● While one is waiting for I/O results, switch to another one
● Multiplexing of resources between a set of jobs became a basic monitor / operating system task -> multi-programming or multi-tasking
● Goal: Maximize CPU utilization
Operating Systems 15
2nd Idea: Multiprogramming
Operating Systems 16
2nd Idea: Multiprogramming
● Multiprogramming begets interactivity● Idea: add dedicated job that is always loaded and
processes user input (“terminal”)● Time Sharing Option (TSO) on IBM Mainframe● Decouples the user from the processing● But: multiprogramming is cooperative
→ terminal is unresponsive while the machine is occupied
Operating Systems 17
3rd Idea: Preemption / Time Sharing● Users started to demand interaction with their program,
e.g. for retry on errors
● Perform multi-tasking, but act like the machine is exclusively used
● Advent of time-sharing / preemptive multi-tasking systems
● Goal: Minimize single user response time
● Extension of multi-programming to multiple interactive (non-batch) jobs
● Preemptive multi-tasking became a single user demand in modern times
● Leave one application running while starting another one
● Pure batch processing systems still exist: TPM, SAP R/3, HPC
Operating Systems 18
Time Sharing – CTSS & MULTICS● Compatible Time-Sharing System (CTSS)
● Operating system developed at MIT, first for the IBM 7094 in 1961 (32.768 36bit words memory)
● Program always loaded to start at the location of the 5000th word
● System clock generated interrupts roughly every 0.2 seconds
● At each clock interrupt, the system regained control and assigned the processor to another user - time slicing
● Parts of the active program that would be overwritten are written to disk
● Other parts remained inactive in the system memory
● Direct successor MULTICS pioneered many modern operating system concepts
Operating Systems 19
Time Sharing – CTSS & MULTICS
Source Code:● https://gitlab.hpi.de/osm-teaching/opsys19labs/multics● https://gitlab.hpi.de/osm-teaching/opsys19labs/ctss
… and more
Operating Systems 20
Genealogy of Operating Systems55
60
65
70
75
80
85
90
95
00
03
IOCS
DOS/360
DOS/VSE
VSE
VSE/ESA
OS/360
MVS/370
MVS/XA
MVS/ESA
TSO
IBSYS
CTSS
CP/CM5
VM/370
VM/XA
VM/ESA
SYSTEM III
SYSTEM V
SYSTEM V.4
MULTICS
UNIX
UNIXV.7
AIX/370
AIXSUN OS
POSIX
SOLARIS 2
4.1BSD
4.2BSD
4.3BSD
4.4BSD
MACHOSF/1
AIX/ESA
XENIX MS-DOS 1.0
CP/M
DR/DOSOS/2WIN 3.0
WIN NT
WIN 2000
WIN 9X
WIN XP
GNU/LINUX
RSX-11M
VMS 1.0
VMS 5.4
VMS 7.3
WIN 3.1
SOLARIS 10
RT-11
GNU/LINUX 2.6WIN Server 2003
OS/390
z/OSz/VSE z/VM
https://www.tele-task.de/lecture/video/7083/from 49:50
Operating Systems 21
Genealogy of Unix (simplified)
OpenServer 6.x
UnixWare 7.x
(System V R5)
HP-UX 11i+
1969
1971 to 1973
1974 to 1975
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
19992000
2001 to 2004
2006 to 2007
2008
2005
2009
2010
2011
2012 to 2015
2016
2017
Open source
Mixed/shared source
Closed source
HP-UX 1.0 to 1.2
OpenSolaris & derivatives (illumos, etc.)
System III
System V R1 to R2
OpenServer 5.0.5 to 5.0.7
OpenServer 5.0 to 5.04
SCO UNIX 3.2.4
SCO Xenix V/386
SCO Xenix V/386
SCO Xenix V/286
SCO Xenix
Xenix 3.0
Xenix 1.0 to 2.3
PWB/Unix
AIX 1.0
AIX 3.0-7.2
OpenBSD 2.3-6.1
OpenBSD 1.0 to 2.2
SunOS 1.2 to 3.0
SunOS 1 to 1.1
Unix/32V
Unix Version 1 to 4
Unix Version 5 to 6
Unix Version 7
Unnamed PDP-7 operating system
BSD 1.0 to 2.0
BSD 3.0 to 4.1
BSD 4.2
Unix Version 8
Unix 9 and 10
(last versions from
Bell Labs)
NexTSTEP/ OPENSTEP 1.0 to 4.0
Mac OS X Server
Mac OS X, OS X,
macOS 10.0 to 10.12
(Darwin 1.2.1 to 17)
Minix 1.x
Minix 2.x
Minix 3.1.0-3.4.0
Linux 2.x
Linux 0.95 to 1.2.x
Linux 0.0.1
BSD 4.4-Lite
& Lite Release 2
NetBSD 0.8 to 1.0
NetBSD 1.1 to 1.2
NetBSD 1.3
NetBSD 1.3-7.1
FreeBSD 1.0 to 2.2.x
386BSD
BSD Net/2
Solaris 10
Solaris 11.0-11.3
System V R4
Solaris 2.1 to 9
BSD 4.3
SunOS 4
HP-UX 2.0 to 3.0
HP-UX 6 to 11
System V R3
UnixWare 1.x to 2.x (System V
R4.2)
BSD 4.3 Tahoe
BSD 4.3 Reno
FreeBSD 3.0 to 3.2
FreeBSD 3.3-11.x
Linux 3.x
Linux 4.x OpenServer
10.x
1969
1971 to 1973
1974 to 1975
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
19992000
2001 to 2004
2006 to 2007
2008
2005
2009
2010
2011
2012 to 2015
2016
2017
DragonFly BSD
1.0 to 4.8
BSD Net/1
Unix-like systems
Operating Systems 22
Unix Historyhttps://www.tuhs.org/
Operating Systems 23
Genealogy of Linux
https://upload.wikimedia.org/wikipedia/commons/1/1b/Linux_Distribution_Timeline.svg
(too large for this slide)
Operating Systems 24
Genealogy of Operating Systems55
60
65
70
75
80
85
90
95
00
03
IOCS
DOS/360
DOS/VSE
VSE
VSE/ESA
OS/360
MVS/370
MVS/XA
MVS/ESA
TSO
IBSYS
CTSS
CP/CM5
VM/370
VM/XA
VM/ESA
SYSTEM III
SYSTEM V
SYSTEM V.4
MULTICS
UNIX
UNIXV.7
AIX/370
AIXSUN OS
POSIX
SOLARIS 2
4.1BSD
4.2BSD
4.3BSD
4.4BSD
MACHOSF/1
AIX/ESA
XENIX MS-DOS 1.0
CP/M
DR/DOSOS/2WIN 3.0
WIN NT
WIN 2000
WIN 9X
WIN XP
GNU/LINUX
RSX-11M
VMS 1.0
VMS 5.4
VMS 7.3
WIN 3.1
SOLARIS 10
RT-11
GNU/LINUX 2.6WIN Server 2003
OS/390
z/OSz/VSE z/VM
https://www.tele-task.de/lecture/video/7083/from 49:50
Operating Systems 25
POSIX● family of standards for maintaining compatibility between
operating systems● on source code level● on system tools level
● Specification follows existing UNIX implementations● committee does not invent functionality
Operating Systems 26
SummaryOperating System Development intricately tied to:
● Utilization: Cost of Labour vs, Cost of Machine● Use case – commercial / military / government
– still relevant today● Hardware Development
– Operating Systems features required implementation in hardware for efficiency
– Hardware advancements required adaption of Operating Systems (e.g. mobile, NVRAM, ...)
Operating Systems 27
Critical Innovations● Batch Job Processing
● Linkage of library routines to programs ● Management of files, I/O devices, secondary storage
● Multiprogramming● Resource management and sharing for multiple programs ● Quasi-simultaneous program execution● Single user
Operating Systems 28
Critical Innovations● Multiuser/Timesharing Systems
● Management of multiple simultaneous users interconnected via terminals
● 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
Operating Systems 29
Genealogy of Operating Systems55
60
65
70
75
80
85
90
95
00
03
IOCS
DOS/360
DOS/VSE
VSE
VSE/ESA
OS/360
MVS/370
MVS/XA
MVS/ESA
TSO
IBSYS
CTSS
CP/CM5
VM/370
VM/XA
VM/ESA
SYSTEM III
SYSTEM V
SYSTEM V.4
MULTICS
UNIX
UNIXV.7
AIX/370
AIXSUN OS
POSIX
SOLARIS 2
4.1BSD
4.2BSD
4.3BSD
4.4BSD
MACHOSF/1
AIX/ESA
XENIX MS-DOS 1.0
CP/M
DR/DOSOS/2WIN 3.0
WIN NT
WIN 2000
WIN 9X
WIN XP
GNU/LINUX
RSX-11M
VMS 1.0
VMS 5.4
VMS 7.3
WIN 3.1
SOLARIS 10
RT-11
GNU/LINUX 2.6WIN Server 2003
OS/390
z/OSz/VSE z/VM
https://www.tele-task.de/lecture/video/7083/from 49:50