Operating System Concepts, Terminology and History By Kenneth Ayebazibwe firstname.lastname@example.org 256774185458 / 256702555890
Chapter Objectives• Define a few of the terms which we use in the Lecture.• Understand a few basic concepts the are the foundation of Operating System design.• Explore Operating System history.
Operating System Concepts• For purposes of this Lecture, well 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 systems 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 Defenses 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
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 partition or density.
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 micro-kernel 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.