An Introduction To Operating Systems
An Introduction To Operating Systems
Systems
What’s an OS?
• It’s a program that mediates between application programs
and the hardware
• It provides abstractions to simplify building applications:
– files instead of “bytes on a disk”
– contiguous memory regions instead of “bits in a RAM chip”
– processes to run applications
• It allows application programs to co-exist peacefully
– enforces security policies
– enforces safety measures
• Allows effective usage of hardware resources
The 5 Views of OS
Your view of an OS depends on who you are:
• The hardware view
• The operating system designer’s view
• The application programmer’s view
• The end-user’s view
• The system administrator’s view
The Hardware View
The operating system is the layer of software that interacts
directly with the hardware, concerns revolve around:
• The boot process
• Devices and how the OS can use them
• The interactions between H/W and OS
The OS Designer’s View
The interest revolves mainly about the OS itself, its internal structure, its
efficiency, performance, data structures, etc..
• How can we make the OS more efficient
• How can we add more functionality?
• How do we debug the OS? Make it more reliable, scalable, etc..
Often, this view can become so insular to the point of forgetting what the
OS is supposed to do in the first place (e.g. UNIX)
The Application Programmer’s
View
The OS is like a library with a well defined set of API’s
• What abstractions are available from the OS?
• How well is the API structured? Not too low-level, or high-level.
• How portable is the interface?
• Protection of the intellectual investment-- don’t want to keep rewriting
the same program for each new OS release.
Explain why Windows have been so successful
The End-User’s View
The OS is just a program that happens to be pre-installed
• Must not crash or externalize the ugly aspects of the machine
• Must protect investment in existing software & applications
• Users care about applications, not the OS
• A good OS is the one that is most transparent
Contrast Windows, Apple & UNIX
The System Administrator View
An OS is a program that allows the efficient and equitable
usage of resources:
• How can it track usage for accounting?
• How easy is it to install new software?
• Security
• Fairness
Contrast Windows, Apple, UNIX, and mainframe systems
The Conflicts Between Views
• Hardware vs. OS designer
• API vs. User
• API vs. OS designer
• User vs. System administrator
A Short History
• Early machines -- 1940’s--1950
– No OS. Machines programmed directly
• Early machines -- 1940’s--1955
– Monitors -- a small program to manage devices, bootstrap, etc.
• Batch OS 1950’s--beyond
– Input & output processing separated from central processing
– Pipelining for increased throughput
• Time-sharing OS, 1960’s--
– Several people can use the machine interactively (MVS, VMS,..)
A Short History (cont’d)
• Portable OS, 1970--
– UNIX
• PC OS’s, 1974--
– Apple II, and others
• MSDOS 1980--
– The PC revolution
• Windowing OS 1980--
– Apple (MacOS) & Xerox (Pilot OS)
– Windows 3.1, OS/2
A Short History (cont’d)
• Free/open OS 1985--
– Linux, NetBSD, FreeBSD
• Distributed OS’s 1985--
– UNIX, Novell, ...
The Big Consolidation (1995--)
• Desktop is mostly Windows 95/98
• Workstation is mostly Windows NT or a UNIX variant
• Mainframes & servers have their own proprietary OS’s
• Embedded systems have still their OS’s
OS Types & Examples
• Desktop: MSDOS, Win95/98, MacOS, Linux
• Server: HPUX, AIX, Solaris,
• Minicomputers: AS/400, VMS
• Mainframes: CMS/MVS
• Embedded: OS-9, Vxworks, Lynx, PalmOS, Windows CE