![]() |
Information Technologies
and the Information Professions |
|
Introduction
to Operating Systems and Unix-Linux
Copyright © 2002 by Carlos Ovalle, Quinn Stewart, and R. E. Wyllys IntroductionOperating systems (OSs) work together with the central processing units (CPUs) of computers, as noted in the LIS 386.13 PowerPoint presentation entitled Introduction to Computing, The CPU uses the OS to
The OS uses the CPU to
The OS in your computer is probably either a version of Windows (e.g., XP, 98, Millennium Edition, 2000), or Macintosh System 9 or X (for 10, also known as Jaguar). You are probably also aware that an OS named Unix is widely used, e.g., on many computers that house Webpages or email servers. (If you are attending classes on the UT-Austin campus, you may have noticed machines running under Unix in the iSchool Information Technology Laboratory.) You may even be aware that a variety of Unix known as Linux has become widely popular in the last few years as an alternative to Windows on PC-type microcomputers. You can think of the OS as being the manager of the computer system as whole, in the sense that it directs the operations of both the hardware and the other software, i.e., the non-OS software. This other software includes (1) applications programs, the programs like Microsoft Word and Netscape that perform the tasks that the user wants done, and (2) utility programs, programs like Telnet and WinZip that handle relatively simple tasks which, although necessary from time to time, are peripheral to the main goals of the user. Components of an OSAn OS typically has four primary modules: Process Manager, Memory Manager, File Manager, and Device Manager. Process ManagerThe Process Manager handles the scheduling of activities within the CPU and the assignment to the CPU of individual tasks involved in an application or utility program. In the typical situation in modern computers, more than one application program and/or utility program will be running at any given moment, a situation known as "multiple tasking" (which is often shortened to "multitasking"). Strictly speaking, the tasks do not run simultaneously, for the CPU can handle only one task at a time. However, the Process Manager sees to it that the CPU works on the steps of a given task for only a few microseconds at a time before the Process Manager gives the CPU a different task for another short period of time. The Process Manager chooses tasks from among all the application and utility programs that the user is using concurrently, and rotates the CPU's services among the various tasks from the various programs. The CPU does this so rapidly and smoothly that the user perceives the programs as running simultaneously. If more than one user is using the computer concurrently, i.e., if there are multiple users (a situation that is often referred to as "multiuser" operation), then the Process Manager rotates the CPU's services among all the tasks of all the users, again usually doing this so rapidly and smoothly that each individual user perceives his or her own programs as running simultaneously. The Process Manager module switches the CPU from one task to another according to complicated rules that depend on such factors as:
This description of CPU-task-switching merely scratches the surface of the complexities possible, but at least it may suggest to you why the writing of OSs is usually regarded as the pinnacle of the art of programming. Memory ManagerThe Memory Manager module controls the use of the CPU's primary memory resource, random-access memory (RAM). RAM operates at very high speeds; e.g., the RAM available today (2000) provides storage and retrieval of data in less than 100 nanoseconds. RAM consists physically of integrated circuit chips. RAM chips used to be extremely expensive but have dropped in price to current levels of around $1 per megabyte or less. The Memory Manager
File ManagerThe File Manager module handles the files used by the system, especially those stored on the system's disk drive or drives. On each disk drive, files over some threshold length (typically, somewhere between 512 and 4,096 bytes) are broken up into pieces, each of which is that threshold length or less. The File Manager keeps track of where the first piece of each file is physically located (in terms of the hardware of the disk drive), and of where the subsequent links in the chain of pieces of that individual file are located. The File Manager keeps track of what physical locations are available for the storage of new files, and it handles the deletion of files that the user(s) or the application programs discard. It also controls access to read-only files and to hidden files, keeps track of whether the file has been backed up or not, and records the time and date of each change to a file. Device ManagerThe Device Manager monitors every device, channel, and control unit. Its job is to choose the most efficient way to allocate all of the system's devices—video display, keyboard, printer, disk drives, and modem—based on a scheduling policy chosen by the system's designers. The Device Manager makes the allocation, starts [the] operation [of the device], and, finally, deallocates the device. (Endnote 1) Historical BackgroundEarly OSsEarly computers, such as those developed before and during World War II, had only minimal OSs. When first turned on, such computers relied on a few initial processes that were embodied in the hardware of the machine and sufficed to get the computer ready to receive inputs. The inputs came from such sources as toggle switches set by hand on a console, plugboards (cf. Introduction to Computing) wired in advance by humans, and signals from punched-paper-tape readers and punched-card readers. Programs consisted of instructions in the actual machine language; i.e., they consisted of sequences of 0s and 1s that directly activated the CPU and the other hardware devices. In this situation , it was hard to say which inputs constituted the OS and which the program. By the late 1940s, computer specialists had realized that it made sense to input to a computer, when it was first turned on, a small program that was designed to handle the CPU and the hardware devices in certain fairly standard ways. Application programs could then rely on this program to handle the details of their communications with the CPU and the other devices. Though tiny compared to today's OSs, these small startup programs were the OSs for the computers of that era. The initial tiny OSs soon expanded to include modules that would handle application programs written in assembly languages (rather than machine languages) and in the first generation of procedural languages (e.g., ALGOL, COBOL, and FORTRAN). As computer hardware developed rapidly during the 1950s and 1960s, so did the OSs that the various computer manufacturers supplied for their machines. Each different manufacturer used its own OSs, and these were often different for different lines of computers from a single manufacturer. UnixUnix was first developed in 1969 by programmers working at Bell Laboratories (then a unit of Western Electric, the manufacturing arm of the American Telephone and Telegraph Company [also known as "Ma Bell"]; now a unit of Lucent Corporation, the successor of Western Electric). As described in UNIX Power Tools (Endnote 2):
Unix has become a major operating system (indeed, "[m]any hackers feel that Unix is the Right Thing—the One True Operating System" [Endnote 3]) because it was designed, from its birth, to be a multitasking, multiuser system. Because of its power and sophistication, and because its source code soon became widely available, Unix also became, early in its life, a multiplatform system (i.e., an operating system capable of being adapted to run on hardware from many different manufacturers). MS-DOS, Macintosh OS, and Their PredecessorsDespite the power and robustness of Unix, some computer manufacturers, notably IBM Corporation, initially resisted the idea of using Unix on their computers, and continued using their proprietary OSs. Partly because of this stance, but also because by the mid-1970s Unix had become quite large and complex, early microcomputers did not use Unix. Apple Computer Company, founded by Steve Wozniak and Steve Jobs in 1976, put its first microcomputer, the Apple I, on the market that same year. The Apple I, Apple II, Apple III, and the early Macintoshes, introduced in 1984, were much too small to store in their memory a useful version of Unix. Hence Apple developed its own Disk Operating System, initially often called Apple DOS; later versions became known as Macintosh System 1, 2, 3, etc. Some of the other microcomputers of the late 1970s and early 1980s, such as the Osborne I and the Radio Shack TRS-80, used a compact operating system called CP/M (the letters initially stood for Control Program/Monitor, and later for Control Program for Microcomputers), which Gary Kildall first was originally wrote in 1973. Other microcomputers of this late 1970s-early 1980s period, e.g., the Atari and the Commodore, used small operating systems of their own. All of the microcomputers and their operating systems of this period used, as the basic unit of storage and processing, a "computer word" consisting of 8 bits; i.e., these systems used a "word" equal to one byte. The IBM PC (Personal Computer), introduced in 1981 and the first microcomputer to use a 16-bit computer word, was likewise too small to use Unix. In what must be one of the most costly mistakes ever made by a business, IBM, rather than developing in-house an operating system for the PC, arranged to obtain an operating system for the PC from a small Seattle company, Microsoft. The co-owner of Microsoft, Bill Gates, in turn arranged to buy a 16-bit version of the CP/M operating system, known as QD-DOS (Quick and Dirty Disk Operating System), that another small company, Seattle Computer Products, had nearly finished writing. Microsoft made minor improvements in QD-DOS and licensed it—Bill Gates being too smart to sell it—to IBM with the name MS-DOS. The IBM PC rapidly became a commercial success, and so did MS-DOS and Microsoft. Although it was developed in the 1980s, more than 10 years after the inception of Unix, MS-DOS was a single-task, single-user OS. Because the Macintosh OS was a multitasking OS, it held an early advantage over MS-DOS. Not till the 1990s did Microsoft develop a capability for multitasking, with its Windows OS. Both the Macintosh OS and Windows (98 and ME) continue to be essentially single-user OSs, although Windows NT and Windows 2000 have some multiuser capability (they can handle small numbers of simultaneous users). LinuxLinux is an operating system that is relatively compact but mimics Unix accurately. For all practical purposes, it can be thought of as a version of Unix. Its basic components were written in 1991 by Linus Torvalds. Linux immediately caught the fancy of many people in the computing community around the world, and it has been widely adopted.
An example of the freeware and shareware availability of much Linux software is an interesting library-automation system, koha, "the first open source integrated library system . . . . Made in New Zealand by Katipo Communications Ltd. and maintained by a team of volunteers from around the globe, the Koha system is a full catalogue, opac, circulation and acquisitions system . . . that [is] free." Present and Future Status of the Apple Macintosh Operating SystemInfluenced by the success of the Linux software development and Open Source communities, as well as the purchase of NeXT Software in 1997 and the return of Apple Computer's co-founder Steve Jobs, the next version of the Macintosh operating system will be Unix-based and at least partially open-source. Mac OSX is based on Darwin, which is a version of the BSD Unix operating system that utilizes the Apache web server and support for Macintosh and Unix file systems on PowerPC-based Macintosh computers. Apple is attempting a strategy by which it releases a portion of its code base to developers to utilize in an open-source model, yet retains proprietary control over other portions of its code. Apple has created its own Public Source License in its attempt to maintain control over Mac OSX, but work with the Darwin developer community to improve the code base that OSX is based upon. This arrangement has already yielded results in the development of the Darwin Streaming Server, which is freely available. Streaming technology allows the distribution of audio and video content over the Internet without long waits for file downloads. Currently there are 3 competing technologies, RealNetworks RealServer, Microsoft's Windows Media Services, and Apples' Quicktime Streaming server. Where RealNetworks products are commercially available for multiple operating systems, Microsoft and Apple have bundled their streaming servers with Windows 2000 and Mac OSX. In order to provide streaming services, an ISP had to purchase a RealServer, or operate a Windows NT/2000 or Mac OSX server. Apple chose to share its technology with the Darwin developer community, who responded by developing the Darwin Streaming Server on FreeBSD, Sun Solaris, Linux, and even Windows NT and 2000. While the future success of Apple Computers and its "hybrid" approach to Open Source remains to be seen, this model does present some interesting possibilities. The Darwin kernel is being modified to run on Intel hardware. Since Mac OSX is based upon the Darwin kernel, it is conceivable that sometime in the future, one might be able to purchase a license of Mac OSX that could work on Intel hardware, thanks to the efforts of Darwin developers. Present and Future Status of the Windows Operating SystemsWhere the Windows operating systems are heading is far from clear. Microsoft announced some years ago that it was planning to combine its Windows 95 and 98 OSs with its Windows NT OS in the product that was then expected to be called Windows 2000. Windows 98 was supposed to be the end of the line for the Windows OSs that began with Windows 1.0 in the late 1980s. However, the current Windows 2000 is not a combined product; it is essentially what was at one time called Windows NT 5.0, an update of Windows NT 4.0, which was originally released in 1996; and Windows 98 has given rise to a successor, Windows Millennium Edition, also called Windows ME. The problem in combining the Windows 95-ME line of software with the Windows NT-2000 line has undoubtedly been a technical one: viz., the two lines are different in major ways, as discussed below. Windows 1.0 through Windows ME are not true operating systems; instead, they are best described as a series of increasingly sophisticated and (supposedly) user-friendly interfaces on top of the single-user, single-task-oriented MS-DOS operating system, which has remained the same, except for minor revisions, throughout the series of versions of Windows 1.0 through ME. The Windows 1.0-ME interfaces handle multitasking, to various degrees of satisfactoriness, despite the single-task nature of MS-DOS. On the other hand, Windows NT is a true operating system, designed from the ground up as a multitasking, multiuser OS. Its development began in 1988 as a cooperative endeavor between IBM and Microsoft. The cooperation ended in 1990 when Microsoft decided to go ahead on its own with Windows 1.0, a technically much less sophisticated product than the cooperative venture envisioned. The OS whose development had begun jointly took two separate paths after the end of the cooperative venture. Microsoft's continuation of the once joint OS reached the market in 1993 under the name Windows NT 1.0, which was aimed at the corporate marketplace rather than the consumer marketplace. IBM's continuation reached the market about the same time, under the name OS/2, and was aimed at both the corporate and the consumer marketplaces. The IBM OS/2 operating system succeeded briefly in the mass-consumer marketplace but, despite its technical superiority to Windows 95, succumbed to Microsoft's marketing power after Windows 95 was released. However, it remains in use in certain market niches, especially that of financial networks; for example, most ATMs run under OS/2. Late in 2001 Microsoft combined Windows ME and Windows 2000 in a successor product, Windows XP, based on Windows NT-2000 technology but with the consumer orientation of windows ME. Windows XP is available in two versions, XP Home and XP Professional, the latter having additional security features beyond those of XP Home. SummaryThe development of operating systems has been in the direction of increasing their power, their sophistication, and their user-friendliness—even Unix is widely used these days via graphic user interfaces (GUIs) such as X Windows (which looks much like the Microsoft Windows GUI). The increasing sophistication has involved not only the addition of new capabilities, such as the addition of Internet Explorer to MS Windows, but also increasing attention to making the OSs handle multitasking and multiuser environments more smoothly (more "seamlessly" in the jargon of OSs) and making the OSs more resistant to use by unauthorized users (e.g., to attacks by hackers). Finally, the development of OSs has worked toward more making them ever less noticeable to the casual user. You can expect OS development to continue in this direction for the foreseeable future. Endnotes
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| © 2000-2003. The material displayed
here is under copyright by the LIS 386.13 class team of the School of
Information of the University of Texas at Austin, TX: Ronald Wyllys, Philip
Doty, Quinn Stewart, Carlos Ovalle, Lori Eichelberger, Tony Cherian, and
Don Drumtra. Appropriate educational and other non-profit use of the material
is encouraged, provided that this copyright notice is appended, full attribution
is given, and no fees are charged for access to the material. For-profit
use is strictly forbidden.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||