Early Computers • First Computer • Charles Babbage (1791-1871) designed the first true digital computer called the analytical engine. • That was purely mechanical and intended to do math operations • The engine was supposed to be made of brass, and steam powered • He did not actually built the machine but inspired others in the field. • He had previously designed and started building a special-purpose “computer” called Difference Engine
In 1991, on the occasion of the 200th anniversary of the birth of Charles Babbage, the Science Museum in Kensington, England, constructed a complete Difference Engine from the drawings left behind by Babbage. They found only two major errors in the drawings; they were easy to remedy.
Early Computers Babbage also thought of the concept of software And hired the first programmer (Lady Ada, Countess of Lovelace) for his analytical engine From Ada Lovelace’s notes: The analytical machine was suited for "developing [!!!] and tabulating any function whatever. . . the engine [is] the material expression of any indefinite function of any degree of generality and complexity." Ada language named in her honor
History of Operating Systems (1) • First generation 1945 - 1955 • Technology: vacuum tubes & plugboards • Programming: setting some switches • Programming language: machine language • Tasks: tables of sine, cosine, logarithms • OS: none • Computer designer is: • builder and • programmer and • operator and • “sys admin” Program from those days:
A Famous Remark (1943) • "I think there is a world market for maybe five computers." • Thomas Watson, chairman of IBM
History of Operating Systems (2) • Second generation 1955 – 1965 • Technology: Transistors • Programming: Punched cards • Programming languages: FORTRAN & Assembly • Tasks: Scientific • Computer: Mainframes • OS: Batch system • Universities started to buy computers (millions $) • Separation between computer designers, builders, operators, programmers and maintenance personnel.
Early Batch System • bring cards to IBM 1401 machine (good at card reading) • read cards to tape • put tape on IBM 7094 which does computing • put tape on IBM 1401 which prints output offline
A Famous Remark (1957) • "I have traveled the length and breadth of this country and talked with the best people, and I can assure you that data processing is a fad that won't last out the year.“ • The editor in charge of business books for Prentice Hall
History of Operating Systems (3) • Third generation 1965 – 1980 • Technology: ICs • Programming: Punched cards • Programming languages: FORTRAN & Assembly • Tasks: Scientific & commercial • Computers: IBM 360, DEC PDPs • OS: Multiprogramming/timesharing, spooling • OSes Developed: • MULTICS (father of all modern OSes) • UNIX (System V, BSD) • POSIX (by IEEE) • MINIX (by Tanenbaum) • Linux (derived from MINIX)
A Famous Remark (1977) • “There is no reason anyone would want a computer in their home.“ • Ken Olson, president, chairman and founder of Digital Equipment Corp.
History of Operating Systems (4) • Fourth generation 1980-Present • Technology: VLSI • Programming: High level • Programming languages: C/C++, Java, …… • Computer: PC • OS: Windows, MacOS, Linux …… • Cheap PCs
A Famous Remark (1989) • “We don't see Windows as a long-term graphical interface for the masses.“ • A Lotus Software Development official, while demonstrating a new DOS version
Operating Systems (1) • Mainframe operating systems • Room-size computers • High I/O capacity • Offers: • Batch processing (no interaction, such as large reports) • Transaction processing (large number of small requests) • Timesharing (multiple users sitting in front of clients)
Famous Forecast (1949) • "Computers in the future may weigh no more than 1.5 tons." • Popular Mechanics, forecasting the relentless march of science, 1949
Operating Systems (2) • Server operating systems • Offer services like print, file, or web • UNIX, Windows 2000, Linux • Multiprocessor operating systems • Parallel computing • Personal computer operating systems • Single user with a good GUI, such as Windows (98, 2000, XP, Vista?), Macintosh OS, Linux
Operating Systems (3) • Real-time operating systems • E.g. industrial process control systems where each job must be completed in the specified time. • Hard real-time (nuclear reactor control systems) or soft-real time systems (e.g multimedia systems) depending on the acceptance of missing deadlines • Embedded operating systems: • Real-time systems with some resource constraints like memory, CPU, power. • Smart card operating systems • Extremely primitive OS running on credit card sized devices with a CPU.
Influential operating systems • Atlas, CTSS, MULTICS, IBM OS/360, UNIX, Alto, Mach • Case studies • Linux • Windows XP
Influential operating systems • Atlas (1961), University of Manchester • batch system with spooling (uses disk as buffer for reading ahead or storing output) • introduced many OS features: device drivers, demand paging, reference bit • CTSS (1962), MIT • first practical timesharing system, supported up to 32 users at terminals • CPU scheduling involved priorities, multilevel feedback queue to age programs • swapped entire program out to fast drum • MULTICS (1965), MIT (+ GE + Bell Labs) • designed as a general-purpose extension to CTSS (~300,000 lines of code) • utilized paged segments, multilevel feedback queue • hierarchical directory structure, protection via access lists • not fully functional until 1969 • OS/360 (1966), IBM • designed as a common OS for all IBM computers • reduced development & maintenance costs, allowed migration of users & programs • suffered from bloated code, too many complex & interleaved features
Influential operating systems • UNIX (1972), Bell Labs • first portable OS, written entirely in C (developed by Thompson & Ritchie) • open source for academic use, led to BSD UNIX & other variants • Alto (1978), Xerox PARC • introduced modern GUI interface, WIMP • viewed by Jobs, co-opted for Apple Mac OS (and eventually Windows) • Mach (1986), CMU • built upon the BSD UNIX kernel • goals: emulate BSD, support memory models & parallel/distributed, microkernel • provided support for multiprocessing, threads • versions of Mach underlie the NeXT OS, Mac OS X
MULTICS : MULTiplexed Information andComputing Service • Multics is a timesharing OS begun in 1965 and used until 2000. • Primary usage was with a mainframe and multiple terminals. • CPUs, memory, I/O controllers, disk drives could be added or removed while the system is running
MULTiplexed Information andComputing Service • Designed to run 24/7 • Changed the idea of the computer from being a tool for scientists to a reliable and powerful resource for a large number of people
Brief History • Joint project between MIT, Bell Labs, and GE • Bell labs withdrew in 1969 • GE Sold its computer business to Honeywell in 1970 who sold Multics as a commercial product
Features • High-level language implementation • On-line reconfiguration • Large virtual memory with segments, paging, and generalized addresses • First hierarchical file system • Dynamic linking and function call by name • Shared memory multiprocessor • Security and rings
Language Implementation • Written in PL/I language • In 1965 this was a new proposal by IBM • Only a small part of the OS was written in assembly • Writing an OS in a high-level language was a radical idea at the time
Operating Systems Evolution IBSYS IOCS 55 60 65 70 75 80 85 90 95 00 03 CTSS DOS/360 OS/360 MULTICS CP/CM5 RSX-11M UNIX TSO RT-11 CP/M UNIXV.7 VMS 1.0 DOS/VDSE MVS/370 VM/370 4.1BSD XENIX MS-DOS 1.0 SYSTEM III DR/DOS SUN OS 4.2BSD VS MVS/XA VM/XA SYSTEM V AIX OS/2 POSIX MACH WIN 3.0 OSF/1 4.3BSD VMS 5.4 WIN 3.1 AIX/370 SYSTEM V.4 VS/ESA MVS/ES VM/ESA AIX/ESA SOLARIS 2 LINUX 4.4BSD WIN NT WIN 9X VMS 7.3 WIN 2000 LINUX 2.6 WIN XP SOLARIS 10 WIN Server 2003
Linux history • Linux is a modern, free operating system based on UNIX standards • first developed as a small but self-contained kernel in 1991 by Linus Torvalds, with the major design goal of UNIX compatibility. • its history has been one of collaboration by many users from all around the world, corresponding almost exclusively over the Internet • it has been designed to run efficiently and reliably on common PC hardware, but also runs on a variety of other platforms (68000-series, Sun SPARC, PowerMac, …) • Linux kernel is original, but full system incorporates existing UNIX software • uses many tools developed as part of Berkeley’s BSD operating system, MIT’s X Window System, and the Free Software Foundation's GNU project • Linux kernel is distributed under the GNU General Public License (GPL): free to modify code but cannot make proprietary; also must distribute source code • many companies (e.g., Slackware, Red Hat, Debian/GNU, Mandrake) market Linux distributions: precompiled Linux packages with installation and management utilities
Linux design principles • Linux is a multiuser, multitasking system with UNIX-compatible tools • its file system adheres to traditional UNIX semantics, and it fully implements the standard UNIX networking model • main design goals are speed, efficiency, and standardization • Linux is designed to be compliant with the relevant POSIX documents like most UNIX implementations, Linux is composed of 3 main bodies of code: • system utilities perform individual specialized management tasks • system libraries define standard set of functions through which apps interact with the kernel • kernel is responsible for maintaining the important abstractions of the OS • executes in unrestricted kernel mode • all kernel code & data in one address space
Windows XP history & goals • Microsoft Windows XP is a 32/64-bit preemptive multitasking OS • successor of Windows NT/2000, replaces Windows 95/98 • released in October 2001, server version in 2002 • introduced "better" visual design, simpler menus, easier HCI • multiuser support through multiple instances of GUI via Windows terminal server • design goals • security: strict adherence to design standards, extensive code review & testing utilizes sophisticated automatic analysis tools to identify security vulnerabilities • reliability: most reliable, stable version of Windows extensive manual and automatic code review, driver verification & error-checking • compatibility: introduces compatibility layer to ensure execution of older software also provides POSIX support, so can compile and run most UNIX software • performance: uses a variety of techniques to build on performance of 2000/NT • extensibility: uses a layered architecture to allow for changes/updates • portability: mostly written in C/C++ CPU-dependent code isolated in hardware-abstraction layer (HAL) • international support: uses UNICODE, provides support for local languages/formats
XP layered architecture • hardware abstraction layer (HAL) hides hardware differences from the OS • kernel provides the foundation for the executive and the subsystems • executive provides services, including process manager, VM manager, I/O manager • environmental subsystems are user-mode processes that enable XP to run processes developed for other OS's (Win32 is base)
Hyper-threading • since 2002, Intel Xeon & Pentium 4 processors have supported Hyper-Threading Technology (HT) • two architectural states (registers, IC, …) are available on the same processor • each state can execute an instruction stream (virtually) concurrently a single physical processor behaves as two logical processors • while it looks like two processors, the execution engine, on-board cache, and system bus interface are shared • Intel claims 10-30% gain in performance on standard test suites • (depends upon how much resource sharing goes on between threads)
P1 P2 L1 L2 L3 L4 Dual cores • with the new Intel Core Duo processor, two separate execution cores are embedded in the same chip • can achieve true parallelism – have two threads running concurrently • with hyper-threading, will appear to the OS as 4 logical processors
Windows 7 – 2010(?) • Windows 7 (formerly codenamed Blackcomb, then Vienna) is a future version of Microsoft Windows. • It will include a new version of Windows Explorer that is being built by the same team that designed the Ribbon user interface in Office 2007. • It will likely include some form of the "Hypervisor" (Windows Virtualization) technologies that will ship shortly after Windows Server 2008. • It will also likely include the WinFS (Windows Future Storage) technologies, though they won't be packaged or branded as WinFS. • Microsoft says it might also make a subscription-based version of the OS available to consumers, but that's still in flux Source : Wikipedia, Paul Thurrott’s web site
Doom, XXI gcc emacs OS hardware Review: What is an OS? • software between applications and reality: • abstracts hardware and makes portable • makes finite into (near)infinite • provides protection
What If? • Process abstraction looked just like hardware! Doom,XXI gcc emacs OS OS hardware hardware OS/Virtual Machine Monitor hardware
Virtual Machines • A virtual machine treats hardware and the operating system kernel as though they were all hardware. • A virtual machine provides an interface identical to the underlying bare hardware. • For example, the operating system creates the illusion of multiple processes, each executing on its own processor with its own (virtual) memory. • The resources of the physical computer are shared to create the virtual machines. • A normal user time-sharing terminal serves as the virtual machine operator’s console.
System Models Virtual Machine Non-virtual Machine