Operating Systems WT 2019/20 Abridged History of Operating Systems
Something to Ponder What is an Operating System? try to come up with a defjnition of what the term operating system means. Discuss your fjndings amongst yourselves. Operating Systems 2
Operating System Defjnition My attempt: An operating system is a program that runs and orchestrates other programs, based on a set of optimization criteria . Operating Systems 5
Hardware and Software Hardware Development Operating System Development Operating Systems 6
The First Computer Q : What was the fjrst computer? Operating Systems 7
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 8
First Computers 1944: Harvard Mark I developed in partnership between Harvard ● and IBM (ballistic fjring tables) First programmable digital computer made in the U.S. ● Constructed of switches, relays, rotating shafts, clutches ● Grace Hopper found the fjrst computer bug, invented ● the predecessor of COBOL and the fjrst compiler 1941: Konrad Zuse completed the work on the Z3 ● First programmable electromechanical computer ● Punch fjlm 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 9
Von Neumann Architecture 1946: ENIAC as fjrst 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 10
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 fjlling the program memory ● Program had complete control of the machine ● for the entire run-time Manual reservation, user either fjnished early ● (wasted time) or could not debug their problem Long setup time - ● Job may involve running the compiler program fjrst and feeding in the output again Operating Systems 11
1 st Idea: Batch Processing A job control language (JCL) operates the monitor ● application Instructions about the compiler to use, data to work on ● etc. (Fortran prefjx $) 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 13
2 nd 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 14
2 nd Idea: Multiprogramming Operating Systems 15
2 nd 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 16
3 rd 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 17
Time Sharing – CTSS & MULTICS Compatible Time-Sharing System (CTSS) ● Operating system developed at MIT, fjrst 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 18
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 19
Genealogy of Operating Systems https://www.tele-task.de/lecture/video/7083/ IBSYS IOCS 55 from 49:50 60 CTSS DOS/360 OS/360 65 MULTICS CP/CM5 RSX-11M UNIX 70 TSO RT-11 CP/M UNIXV.7 VMS 1.0 75 DOS/VSE MVS/370 VM/370 4.1BSD XENIX MS-DOS 1.0 SYSTEM III DR/DOS SUN OS 80 4.2BSD VSE MVS/XA VM/XA SYSTEM V AIX OS/2 POSIX MACH WIN 3.0 85 OSF/1 4.3BSD VMS 5.4 WIN 3.1 AIX/370 SYSTEM V.4 VSE/ESA MVS/ESA VM/ESA 90 AIX/ESA SOLARIS 2 GNU/LINUX 4.4BSD WIN NT WIN 9X OS/390 95 z/VSE z/VM VMS 7.3 WIN 2000 z/OS 00 GNU/LINUX 2.6 WIN XP SOLARIS 10 WIN Server 2003 03 Operating Systems 20
Unnamed PDP-7 operating system 1969 1969 Open source Genealogy of Unix (simplifjed) Unix 1971 to 1973 1971 to 1973 Mixed/shared source Version 1 to 4 Unix 1974 to 1975 1974 to 1975 Closed source PWB/Unix Version 5 to 6 1978 1978 BSD 1.0 to 2.0 Unix 1979 1979 Version 7 Unix/32V 1980 1980 BSD 3.0 to 4.1 Xenix System III 1981 1981 1.0 to 2.3 1982 1982 Xenix 3.0 BSD 4.2 SunOS 1983 1983 System V 1 to 1.1 R1 to R2 1984 SCO Xenix 1984 Unix 1985 Version 8 SCO Xenix 1985 System V AIX V/286 BSD 4.3 Unix-like systems R3 1986 1.0 HP-UX 1986 SunOS 1.0 to 1.2 SCO Xenix 1.2 to 3.0 Unix V/386 1987 1987 9 and 10 HP-UX (last versions BSD 4.3 System V 1988 1988 2.0 to 3.0 from T ahoe R4 Bell Labs) SCO Xenix 1989 1989 BSD Net/1 V/386 BSD 4.3 1990 Reno 1990 BSD Net/2 1991 1991 Linux 0.0.1 SunOS 4 Minix 386BSD 1.x NexTSTEP/ OPENSTEP 1992 HP-UX 1992 1.0 to 4.0 NetBSD 6 to 11 0.8 to 1.0 Linux BSD SCO UNIX UnixWare 1993 0.95 to 1.2.x 4.4-Lite 1993 3.2.4 1.x to 2.x & FreeBSD (System V 1994 1994 Lite Release 2 1.0 to R4.2) 2.2.x NetBSD 1995 OpenBSD 1995 OpenServer 1.1 to 1.2 1.0 to 2.2 Solaris 5.0 to 5.04 1996 2.1 to 9 1996 1997 1997 NetBSD 1.3 FreeBSD 1998 1998 3.0 to 3.2 OpenServer Minix Mac OS X 1999 AIX 1999 5.0.5 to 5.0.7 2.x Server 3.0-7.2 2000 2000 2001 to 2004 2001 to 2004 Linux 2.x 2005 2005 UnixWare 7.x 2006 to 2007 (System V 2006 to 2007 R5) OpenBSD 2.3-6.1 Solaris 2008 2008 Mac OS X, FreeBSD NetBSD 10 OS X, 3.3-11.x OpenServer 1.3-7.1 HP-UX 2009 macOS 6.x 11i+ 2009 DragonFly 10.0 to 10.12 Minix BSD 2010 (Darwin 2010 3.1.0-3.4.0 1.0 to 4.8 1.2.1 to 17) Operating Systems 21 OpenSolaris & derivatives 2011 2011 (illumos, etc.) Linux 2012 to 2015 2012 to 2015 3.x Solaris 11.0-11.3 2016 2016 Linux 4.x OpenServer 2017 2017 10.x
Unix History https://www.tuhs.org/ Operating Systems 22
Genealogy of Linux https://upload.wikimedia.org/wikipedia/commons/1/1b/Linux_Distribution_Timeline.svg (too large for this slide) Operating Systems 23
Genealogy of Operating Systems https://www.tele-task.de/lecture/video/7083/ IBSYS IOCS 55 from 49:50 60 CTSS DOS/360 OS/360 65 MULTICS CP/CM5 RSX-11M UNIX 70 TSO RT-11 CP/M UNIXV.7 VMS 1.0 75 DOS/VSE MVS/370 VM/370 4.1BSD XENIX MS-DOS 1.0 SYSTEM III DR/DOS SUN OS 80 4.2BSD VSE MVS/XA VM/XA SYSTEM V AIX OS/2 POSIX MACH WIN 3.0 85 OSF/1 4.3BSD VMS 5.4 WIN 3.1 AIX/370 SYSTEM V.4 VSE/ESA MVS/ESA VM/ESA 90 AIX/ESA SOLARIS 2 GNU/LINUX 4.4BSD WIN NT WIN 9X OS/390 95 z/VSE z/VM VMS 7.3 WIN 2000 z/OS 00 GNU/LINUX 2.6 WIN XP SOLARIS 10 WIN Server 2003 03 Operating Systems 24
POSIX ● family of standards for maintaining compatibility between operating systems ● on source code level ● on system tools level ● Specifjcation follows existing UNIX implementations ● committee does not invent functionality Operating Systems 25
Recommend
More recommend