Operating System Concepts, Terminology, and History

Download Report

Transcript Operating System Concepts, Terminology, and History

Operating System Concepts,
Terminology and History
Chapter 2
Chapter Objectives
• Define a few of the terms which we use in
the book.
• Understand a few basic concepts the are the
foundation of Operating System design.
• Explore Operating System history.
Operating System Concepts
• For purposes of this book, we'll consider an
operating system to be the supporting software
structure on which application programs run.
– This support structure includes the facilities to
manage the computer system's resources and any
utility programs needed to maintain and configure
the operating system.
• The heart of system administration is configuring
an operating system to create an environment
suitable for the applications that the users require.
Operating System Concepts
• One can classify operating systems into two broad
groups, early and modern, based on an analysis of
three key features:
– Ability to share CPU resources between multiple
programs.
– Methods employed to control access to system
storage.
– Methods employed to protect system and application
memory from corruption.
Operating System Concepts
• Early operating systems provided poor
support for these three features.
– Running multiple programs, while possible,
was done via a cooperative system which
depended on each application program to
release the CPU periodically to allow its peer
processes to run.
– Protection of system storage was limited.
Critical system files and user files were not
protected from damage by user-level
applications.
Operating System Concepts
• Finally, early operating systems did not provide
memory protection for individual processes or the
operating system kernel, thus allowing application
“bugs” to result in damage to the parts of the
operating system and applications loaded into
memory.
• The poor reliability of early operating systems
is (in part) due to the lack of support for these
features.
Operating System Concepts
• Modern operating systems are those which
provide good support for these three
features.
– All of the UNIX variants, Linux, Mac OS X and
Windows NT, 2000 and XP provide support
for these features.
• As a result, these modern operating
systems are more robust and reliable.
Operating System Concepts
• UNIX systems refer to the Operating System’s core
component as the kernel.
– A UNIX kernel handles the interaction with the
system hardware.
– The UNIX kernel is specific to a particular computer
or group of computers that share a common
hardware design.
– UNIX kernels are built around one of two designs:
• a single, monolithic kernel or
• a micro-kernel.
Operating System Concepts
• The monolithic design is older and uses a single
binary image to provide the resource management
and hardware interface functions of the core layer.
Some examples of the monolithic design are Linux
and Solaris.
• A micro-kernel design uses a very small task
management component and a suite of modules for all
other resource management functions. Windows NT,
Windows 2000, Windows XP and Mac OS X are
examples of micro-kernel designs.
Operating System Concepts
• The recent incarnations of Windows; NT, 2000,
and XP share a similar layered construction
approach with UNIX.
– These recent versions of Windows are based on a
micro-kernel design using a small kernel layer and
hardware abstraction layer at their base.
– The middle layer is made up of dynamically loaded
libraries and services.
– The applications layer contains the familiar
applications such as text processors, spreadsheet,
web browsers, etc.
Operating System Concepts
• Hardware designs are often called hardware
architectures.
– Fine distinctions between hardware architectures
matter most at the core level of the operating system.
• Differences such as “Pentium III versus Intel 486” or
“SPARC 4m versus SPARC 4c” are important in the
selection of a kernel or operating system distribution.
– On many vendor’s hardware this simple description is
sufficient to make a choice of operating system.
Operating System Concepts
• On PC hardware, the hardware architecture is
often only part of the information needed to select
an operating system.
– The variety of PC hardware (models of video, I/O,
and network cards) all require specific software
drivers.
– The availability of drivers for a specific device and a
specific operating system is critical.
– All components in the PC, including each interface
card and the motherboard, need to be supported by
the operating system vendor
Operating System Concepts
• At the application layer level, the hardware
architecture distinctions become less fine.
– At this layer general categories such as "Intel x86"
or "SPARC" are sufficient to describe whether a
particular program binary will run on a particular
machine.
– This general hardware description is sometimes
called the application architecture.
History Lessons
• The development of the various flavors of
UNIX, Windows and Mac OS give us clues to
their administration and design.
History Lessons
• The simplified UNIX history tree is a mess.
– A more complete and detailed history tree is
even more confusing.
– A complete tree is about 12 pages long! (see
http://perso.wanadoo.fr/levenez/unix/).
History Lessons
• From the late 1970s to early 1980s, UNIX
evolved into two related but distinct camps.
– One camp centered about a commercial
UNIX developed by American Telephone and
Telegraph (AT&T) .
• The AT&T versions were named System III
and later System V.
History Lessons
– The other popular UNIX variant, Berkeley Standard
Distribution or BSD UNIX, was funded by the
Department of Defense's Advanced Research
Projects Administration.
• Networking was added to BSD UNIX making it an
important force in the early development of the
Internet.
• BSD UNIX formed the basis for the early SunOS,
IRIX, NeXTSTEP and later versions of BSD.
• The most common current BSD-styled UNIXes are the
BSD triplets, OpenBSD, FreeBSD, NetBSD.
History Lessons
• Differences between flavors of UNIX become more
apparent the more sophisticated the user becomes.
– At the most basic level, all UNIX variants share a
common set of user level commands that function in
a nearly identical manner with the exception of some
option flags.
– More sophisticated users will note the different
option flags.
– Programmers will note that the BSD and System V
families of UNIX have significant differences in
libraries and system calls.
• The differences between UNIX variants will be
most apparent to the system administrator.
History Lessons
• From the perspective of a system administrator, a
BSD derived UNIX has several noteworthy
differences from its System V cousins.
– The option flags and output format for several
programs, are different from their System V
counterparts.
– BSD UNIXes use a small collection of run control
files (e.g. /etc/rc, /etc/rc.local) which each start
multiple service daemons.
– The BSD UNIX device naming convention for disk
and tape drives usually uses a flat directory scheme
with a letter, number, letter pattern (e.g. /dev/rz0a) to
specify the device driver, device number and
History Lessons
• So where does Linux fit into all this?
– Linux is sort of a mutt as far as its orientation
with regard to the BSD and System V styles
of UNIXes.
• Many of the commands share the BSD style
option flags and output
• Run-control files and other aspects of system
administration vary between distributions.
History Lessons
• Where did Windows come from?
• At nearly the same time the two major UNIX
varieties were establishing themselves and
the commercial UNIX derivatives were being
born, the personal computer was being
created.
• Bill Gates and Microsoft delivered the first
PC operating system, the command line
oriented Disk Operating System (DOS).
History Lessons
• In an effort to compete with the Apple
graphical user interface (GUI), the Windows
Operating System was developed.
– Early versions of Windows lacked the
maturity of the Apple GUI.
– The Windows development split into two
streams: a “home” or personal version of
Windows, and a “business” or commercial
version.
– Recently, Microsoft has been trying to merge
the two versions into a single offering.
History Lessons
• Apple and Mac OS X
– Driving along a third parallel set of tracks,
Apple developed Mac OS for their Macintosh
computer during roughly the same time frame
as Windows.
• Inspired by the work Xerox had done on
graphical user interfaces, Apple developed the
Macintosh, the first commercially successful
personal computer with a graphical user
interface.
History Lessons
• Apple and Mac OS X
• NeXT Computers took the look and feel of
MacOS and married it to a UNIX-like microkernel architecture to form the NeXTStep
Operating System.
• When Apple acquired NeXT, the developers
had an opportunity to update and expand the
Apple GUI interface, resulting in MacOS X.
Summary
• Basic terminology and history gives the system
administrator the background to take on the tasks
she faces.
– Understanding some basic terminology aids in the
choice of software, operating systems and hardware
and forms a common language for broad
descriptions of these items and their relation to each
other.
– The history of the development of UNIX, Windows
and Mac OS provides insights into the organization,
tools and problems one faces on a particular type of
system. An understanding and knowledge of this
history allows a system administrator to more rapidly
come up to speed when faced with a new system.