`
` CROSSROADS EXHIBIT 2057
`Oracle Corp., et al v. Crossroads Systems, Inc.
` IPR2014-01207 and IPR2014-1209
`
`
`
`
`
`20f142
`
`2 of 142
`
`
`
`MODERN OPERATING SYSTEMS
`MODERN OPERATING SYSTEMS
`MODERN OPERATING SYSTEMS
`
`3of142
`
`3 of 142
`
`
`
`MODERN OPERATING SYSTEMS
`MODERN OPERATING SYSTEMS
`
`ANDREW S. TANENBAUM
`ANDREW S. TANENBAUM
`Vrije Universiteit
`Vrije Universiteit
`Amsterdam, The Netherlands
`Amsterdam, The Netherlands
`
`PRENTICE HALL
`PRENTICE HALL
`UPPER SADDLE RIVER, NJ 07458
`UPPER SADDLE RIVER, NJ 07458
`
`4 of 142
`
`
`
`Tanenbauo, Andrew S.
`Tanenbaum. Andrew S.
`Modern operating systens I Andrew S. Tanenbaun.
`Modern operating systems / Andrew S. Tanenbaum.
`cm.
`en.
`p.
`p. (cid:9)
`Includes bibliographical references and Index.
`Includes bibliographical references and index.
`ISBN 0-13-588187-0
`ISBN 0-13-588187-0
`1. Operating systeos <Conputers>
`1. Operating systems (Computers) (cid:9)
`CA76.76.063T359 1992
`0A76.76.063T359 1992
`005.4'3--dc20
`005.4'3--dc20
`
`I. Title.
`I. Title.
`
`91-45010
`91-45010
`CIP
`CIP
`
`Acquisitions editor: Tom McElwee
`Acquisitions editor: Tom McElwee
`Production supervisor: Bayani Mendoza de Leon
`Production supervisor: Bayard Mendoza de Leon
`Cover designer: Bruce Kenselaar
`Cover designer: Bruce Kenselaar
`Prepress buyer: Linda Behrens
`Prepress buyer: Linda Behrens
`Manufacturing buyer. Dave Dickey
`Manufacturing buyer: Dave Dickey
`Supplements editor: Alice Dworkin
`Supplements editor: Alice Dworkin
`Interior designer: Andrew S. Tanenbaum
`Interior designer: Andrew S. Tanenbaum
`
`© 1992 by Prentice Hall, Inc.
`C 1992 by Prentice Hall, Inc.
`~~ A Simon & Schuster Company
`A Simon & Schuster Company
`=-
`Upper Saddle River, New Jersey 07458
`Upper Saddle River, New Jersey 07458
`
`The author and publisher of this book have used their best efforts in preparing this book. These
`The author and publisher of this book have used their best efforts in preparing this book. These
`efforts include the development, research, and testing of the theories and programs to determine their
`efforts include the development, research, and testing of the theories and programs to determine their
`effectiveness. The author and publisher make no warranty of any kind, expressed or implied, with
`effectiveness. The author and publisher make no warranty of any kind, expressed or implied, with
`regard to these programs or the documentation contained in this book. The author and publisher
`regard to these programs or the documentation contained in this book. The author and publisher
`shall not be liable in any event for incidental or consequential damages in connection with, or arising
`shall not be liable in any event for incidental or consequential damages in connection with, or arising
`out of, the furnishing, performance, or use of these programs.
`out of, the furnishing, performance, or use of these programs.
`
`All rights reserved. No part of this book may be
`All rights reserved. No part of this book may be
`reproduced, in any form or by any means,
`reproduced, in any form or by any means,
`without permission in writing from the publisher.
`without permission in writing from the publisher.
`
`Printed in the United States of America
`Printed in the United States of America
`10
`10
`
`ISBN 0-13-588187-0
`ISBN 0-13-588187-0
`
`Prentice-Hall International (UK) Limited, London
`Prentice-Hall International (UK) Limited, London
`Prentice-Hall of Australia Pty. Limited, Sydney
`Prentice-Hall of Australia Pty. Limited, Sydney
`Prentice-Hall Canada Inc., Toronto
`Prentice-Hall Canada Inc., Toronto
`Prentice-Hall Hispanoamericana. S.A., Mexico
`Prentice-Hall Hispanoamericana. S.A., Mexico
`Prentice-Hall of India Private Limited, New Delhi
`Prentice-Hall of India Private Limited, New Delhi
`Prentice-Hall of Japan, Inc., Tokyo
`Prentice-Hall of Japan, Inc., Tokyo
`Simon & Schuster Asia Pte. Ltd., Singapore
`Simon & Schuster Asia Pte. Ltd., Singapore
`Editora Prentice-Hall do Brasil, Ltda., Rio de Janeiro
`Editora Prentice-Hall do Brasil, Ltda., Rio de Janeiro
`
`TRADEMARK INFORMATION
`TRADEMARK INFORMATION
`IBM PC is a registered trademark of
`ffiM PC is a registered trademark of
`International Business Machines
`International Business Machines
`Corporation.
`Corporation.
`UNIX is a registered trademark of AT&T
`UNIX is a registered trademark of AT&T
`(Bell Laboratories.).
`(Bell Laboratories.).
`PDP 11 and VAX are registered
`PDP ll and VAX are registered
`trademarks of Digital Equipment
`trademarks of Digital Equipment
`Corporation.
`Corporation.
`MS-DOS is a trademark of Microsoft
`MS-OOS is a trademark of Microsoft
`Corporation.
`Corporation.
`Atari is a trademark of Atari
`Atari is a trademark of Atari
`Corporation.
`Corporation.
`SPARC is a trademark of Sun
`SP ARC is a trademark of Sun
`Microsystems.
`Microsystems.
`Macintosh is a trademark of Apple
`Macintosh is a trademark of Apple
`Computer, Inc.
`Computer, Inc.
`Intel is a registered trademark of Intel
`Intel is a registered trademark of Intel
`Corporation.
`Corporation.
`
`5 of 142
`
`
`
`1
`1
`
`INTRODUCTION
`INTRODUCTION
`
`Without its software, a computer is basically a useless lump of metal. With its
`Without its software, a computer is basically a useless lump of metal. With its
`software, a computer can store, process, and retrieve information, find spelling errors
`software, a computer can store, process, and retrieve information, find spelling errors
`in manuscripts, play adventure, and engage in many other valuable activities to earn
`in manuscripts, play adventure, and engage in many other valuable activities to earn
`its keep. Computer software can be roughly divided into two kinds: the system pro-
`its keep. Computer software can be roughly divided into two kinds: the system pro(cid:173)
`grams, which manage the operation of the computer itself, and the application pro(cid:173)
`grams, which manage the operation of the computer itself, and the application pro-
`grams, which solve problems for their users. The most fundamental of all the system
`grams, which solve problems for their users. The most fundamental of all the system
`programs is the operating system, which controls all the computer's resources and
`programs is the operating system, which controls all the computer's resources and
`provides the base upon which the application programs can be written.
`provides the base upon which the application programs can be written.
`A modem computer system consists of one or more processors, some main
`A modern computer system consists of one or more processors, some main
`memory (often known as "core memory," even though magnetic cores have not been
`memory (often known as "core memory," even though magnetic cores have not been
`used in memories for over a decade), clocks, terminals, disks, network interfaces, and
`used in memories for over a decade), clocks, terminals, disks, network interfaces, and
`other input/output devices. All in all, a complex system. Writing programs that keep
`other input/output devices. All in all, a complex system. Writing programs that keep
`track of all these components and use them correctly, let alone optimally, is an
`track of all these components and use them correctly, let alone optimally, is an
`extremely difficult job. If every programmer had to be concerned with how disk
`extremely difficult job. If every programmer had to be concerned with how disk
`drives work, and with all the dozens of things that could go wrong when reading a
`drives work, and with all the dozens of things that could go wrong when reading a
`disk block, it is unlikely that many programs could be written at all.
`disk block, it is unlikely that many programs could be written at all.
`Many years ago it became abundantly clear that some way had to be found to
`Many years ago it became abundantly clear that some way had to be found to
`shield programmers from the complexity of the hardware. The way that has gradu(cid:173)
`shield programmers from the complexity of the hardware. The way that has gradu-
`ally evolved is to put a layer of software on top of the bare hardware, to manage all
`ally evolved is to put a layer of software on top of the bare hardware, to manage all
`parts of the system, and present the user with an interface or virtual machine that is
`parts of the system, and present the user with an interface or virtual machine that is
`easier to understand and program. This layer of software is the operating system, and
`easier to understand and program. This layer of software is the operating system, and
`forms the subject of this book.
`forms the subject of this book.
`The situation is shown in Fig. 1-1. At the bottom is the hardware, which in many
`The situation is shown in Fig. 1-1. At the bottom is the hardware, which in many
`
`1
`1
`
`6 of 142
`
`
`
`2 (cid:9)
`2
`
`INTRODUCTION
`INTRODUCTION (cid:9)
`
`CHAP. 1
`CHAP. 1
`
`cases is itself composed of two or more layers. The lowest layer contains physical
`cases is itself composed of two or more layers. The lowest layer contains physical
`devices, consisting of integrated circuit chips, wires, power supplies, cathode ray
`devices, consisting of integrated circuit chips, wires, power supplies, cathode ray
`tubes, and similar physical devices. How these are constructed and how they work is
`tubes, and similar physical devices. How these are constructed and how they work is
`the province of the electrical engineer.
`the province of the electrical engineer.
`
`Banking
`Banking
`system
`system
`
`Airline
`Airline
`reservation
`reservation
`
`Adventure
`Adventure
`games
`games
`
`} Application programs
`} Application programs
`
`Compilers
`Compilers
`
`Editors
`
`Editors
`
`Command
`Command
`interpreter
`interpreter
`
`Operating system
`Operating system
`
`Machine language
`Machine language
`
`Microprogramming
`Microprogramming
`
`Physical devices
`Physical devices
`
`System
`System
`programs
`programs
`
`}
`}
`
`) ,.,, ....
`
`Hardware
`
`Fig. 1-1. A computer system consists of hardware, system programs, and application
`Fig. 1-1. A computer system consists of hardware, system programs, and application
`programs.
`programs.
`Next comes a layer of primitive software that directly controls these devices and
`Next comes a layer of primitive software that directly controls these devices and
`provides a cleaner interface to the next layer. This software, called the micropro-
`provides a cleaner interface to the next layer. This software, called the micropro(cid:173)
`gram, is usually located in read-only memory. It is actually an interpreter, fetching
`gram, is usually located in read-only memory. It is actually an interpreter, fetching
`the machine language instructions such as ADD, MOVE, and JUMP, and carrying
`the machine language instructions such as ADD, MOVE, and JUMP, and carrying
`them out as a series of little steps. To carry out an ADD instruction, for example, the
`them out as a series of little steps. To carry out an ADD instruction, for example, the
`microprogram must determine where the numbers to be added are located, fetch
`microprogram must determine where the numbers to be added are located, fetch
`them, add them, and store the result somewhere. The set of instructions that the
`them, add them, and store the result somewhere. The set of instructions that the
`microprogram interprets defines the machine language, which is not really part of
`microprogram interprets defines the machine language, which is not really part of
`the hard machine at all, but computer manufacturers always describe it in their manu(cid:173)
`the hard machine at all, but computer manufacturers always describe it in their manu-
`als as such, so many people think of it as being the real "machine." On some
`als as such, so many people think of it as being the real "machine." On some
`machines the microprogram is implemented in hardware, and is not really a distinct
`machines the microprogram is implemented in hardware, and is not really a distinct
`layer.
`layer.
`The machine language typically has between 50 and 300 instructions, mostly for
`The machine language typically has between 50 and 300 instructions, mostly for
`moving data around the machine, doing arithmetic, and comparing values. In this
`moving data around the machine, doing arithmetic, and comparing values. In this
`layer, the input/output devices are controlled by loading values into special device
`layer, the input/output devices are controlled by loading values into special device
`registers. For example, a disk can be commanded to read by loading the values of
`registers. For example, a disk can be commanded to read by loading the values of
`the disk address, main memory address, byte count, and direction (READ or WRITE)
`the disk address, main memory address, byte count, and direction (READ or WRITE)
`into its registers. In practice, many more parameters are needed, and the status
`into its registers. In practice, many more parameters are needed, and the status
`returned by the drive after an operation is highly complex. Furthermore, for many
`returned by the drive after an operation is highly complex. Furthermore, for many
`I/0 devices, timing plays an important role in the programming.
`I/O devices, timing plays an important role in the programming.
`A major function of the operating system is to hide all this complexity and give
`A major function of the operating system is to hide all this complexity and give
`the programmer a more convenient set of instructions to work with. For example,
`the programmer a more convenient set of instructions to work with. For example,
`READ BLOCK FROM FILE is conceptually simpler than having to worry about the
`READ BLOCK FROM FILE is conceptually simpler than having to worry about the
`details of moving disk heads, waiting for them to settle down, and so on.
`details of moving disk heads, waiting for them to settle down, and so on.
`On top of the operating system is the rest of the system software. Here we find
`On top of the operating system is the rest of the system software. Here we find
`the command
`interpreter (shell), compilers, editors and similar application(cid:173)
`the command interpreter (shell), compilers, editors and similar application-
`independent programs. It is important to realize that these programs are definitely
`independent programs. It is important to realize that these programs are definitely
`
`7 of 142
`
`
`
`SEC. 1.1 (cid:9)
`SEC. 1.1
`
`WHAT IS AN OPERATING SYSTEM? (cid:9)
`WHAT IS AN OPERATING SYSTEM?
`
`3
`3
`
`not part of the operating system, even though they are typically supplied by the com(cid:173)
`not part of the operating system, even though they are typically supplied by the com-
`puter manufacturer. This is a crucial, but subtle, point. The operating system is that
`puter manufacturer. This is a crucial, but subtle, point. The operating system is that
`portion of the software that runs in kernel mode or supervisor mode. It is protected
`portion of the software that runs in kernel mode or supervisor mode. It is protected
`from user tampering by the hardware (ignoring for the moment some of the older
`from user tampering by the hardware (ignoring for the moment some of the older
`microprocessors that do not have hardware protection at all). Compilers and editors
`microprocessors that do not have hardware protection at all). Compilers and editors
`run in user mode. If a user does not like a particular compiler, het is free to write
`run in user mode. If a user does not like a particular compiler, bet is free to write
`his own if he so chooses; he is not free to write his own disk interrupt handler, which
`his own if he so chooses; he is not free to write his own disk interrupt handler, which
`is part of the operating system and is normally protected by hardware against
`is part of the operating system and is normally protected by hardware against
`attempts by users to modify it.
`attempts by users to modify it.
`Finally, above the system programs come the application programs. These pro-
`Finally, above the system programs come the application programs. These pro(cid:173)
`grams are written by the users to solve their particular problems, such as commercial
`grams are written by the users to solve their particular problems, such as commercial
`data processing, engineering calculations, or game playing.
`data processing, engineering calculations, or game playing.
`
`1.1. WHAT IS AN OPERATING SYSTEM?
`1.1. WHAT IS AN OPERATING SYSTEM?
`
`Most computer users have had some experience with an operating system, but it
`Most computer users have had some experience with an operating system, but it
`is difficult to pin down precisely what an operating system is. Part of the problem is
`is difficult to pin down precisely what an operating system is. Part of the problem is
`that operating systems perform two basically unrelated functions, and depending on
`that operating systems perform two basically unrelated functions, and depending on
`who is doing the talking, you hear mostly about one function or the other. Let us
`who is doing the talking, you hear mostly about one function or the other. Let us
`now look at both.
`now look at both.
`
`1.1.1. The Operating System as an Extended Machine
`1.1.1. The Operating System as an Extended Machine
`
`As mentioned earlier, the architecture (instruction set, memory organization, I/O
`As mentioned earlier, the architecture (instruction set, memory organization, I/0
`and bus structure) of most computers at the machine language level is primitive and
`and bus structure) of most computers at the machine language level is primitive and
`awkward to program, especially for input/output. To make this point more concrete,
`awkward to program, especially for input/output. To make this point more concrete,
`let us briefly look at how floppy disk I/O is done using the NEC PD765 controller
`let us briefly look at how floppy disk I/0 is done using the NEC PD765 controller
`chip, which is used on the IBM PC and many other personal computers. (Throughout
`chip, which is used on the IBM PC and many other personal computers. (Throughout
`this book we will use the terms "floppy disk" and "diskette" interchangeably.) The
`this book we will use the terms "floppy disk" and "diskette" interchangeably.) The
`PD765 has 16 commands, each specified by loading between 1 and 9 bytes into a
`PD765 has 16 commands, each specified by loading between 1 and 9 bytes into a
`device register. These commands are for reading and writing data, moving the disk
`device register. These commands are for reading and writing data, moving the disk
`arm, and formatting tracks, as well as initializing, sensing, resetting, and recalibrating
`arm, and formatting tracks, as well as initializing, sensing, resetting, and recalibrating
`the controller and the drives.
`the controller and the drives.
`The most basic commands are READ and WRITE, each of which requires 13
`The most basic commands are READ and WRITE, each of which requires 13
`parameters, packed into 9 bytes. These parameters specify such items as the address
`parameters, packed into 9 bytes. These parameters specify such items as the address
`of the disk block to be read, the number of sectors per track, the recording mode used
`of the disk block to be read, the number of sectors per track, the recording mode used
`on the physical medium, the intersector gap spacing, and what to do with a deleted-
`on the physical medium, the intersector gap spacing, and what to do with a deleted(cid:173)
`data-address-mark. If you do not understand this mumbo jumbo, do not worry, that is
`data-address-mark. If you do not understand this mumbo jumbo, do not worry, that is
`precisely the point-it is rather esoteric. When the operation is completed, the con(cid:173)
`precisely the point—it is rather esoteric. When the operation is completed, the con-
`troller chip returns 23 status and error fields packed into 7 bytes. As if this were not
`troller chip returns 23 status and error fields packed into 7 bytes. As if this were not
`enough, the floppy disk programmer must also be constantly aware of whether the
`enough, the floppy disk programmer must also be constantly aware of whether the
`f "He" should be read as "he or she" throughout the book.
`"He" should be read as "he or she" throughout the book.
`
`8 of 142
`
`
`
`4 (cid:9)
`4
`
`INTRODUCTION (cid:9)
`INTRODUCTION
`
`CHAP. 1
`CHAP. 1
`
`motor is on or off. If the motor is off, it must be turned on (with a long start-up
`motor is on or off. If the motor is off, it must be turned on (with a long start-up
`delay) before data can be read or written. The motor cannot be left on too long, how(cid:173)
`delay) before data can be read or written. The motor cannot be left on too long, how-
`ever, or the floppy disk will wear out. The programmer is thus forced to deal with
`ever, or the floppy disk will wear out. The programmer is thus forced to deal with
`the trade-off between long start-up delays versus wearing out floppy disks (and los(cid:173)
`the trade-off between long start-up delays versus wearing out floppy disks (and los-
`ing the data on them).
`ing the data on them).
`Without going into the real details, it should be clear that the average program(cid:173)
`Without going into the real details, it should be clear that the average program-
`mer probably does not want to get too intimately involved with the programming of
`mer probably does not want to get too intimately involved with the programming of
`floppy disks (or Winchester disks, which are just as complex and quite different).
`floppy disks (or Winchester disks, which are just as complex and quite different).
`Instead, what the programmer wants is a simple, high-level abstraction to deal with.
`Instead, what the programmer wants is a simple, high-level abstraction to deal with.
`In the case of disks, a typical abstraction would be that the disk contains a collection
`In the case of disks, a typical abstraction would be that the disk contains a collection
`of named files. Each file can be opened for reading or writing, then read or written,
`of named files. Each file can be opened for reading or writing, then read or written,
`and finally closed. Details such as whether or not recording should use modified fre-
`and finally closed. Details such as whether or not recording should use modified fre(cid:173)
`quency modulation and what the current state of the motor is should not appear in the
`quency modulation and what the current state of the motor is should not appear in the
`abstraction presented to the user.
`abstraction presented to the user.
`The program that hides the truth about the hardware from the programmer and
`The program that hides the truth about the hardware from the programmer and
`presents a nice, simple view of named files that can be read and written is, of course,
`presents a nice, simple view of named files that can be read and written is, of course,
`the operating system. Just as the operating system shields the programmer from the
`the operating 8ystem. Just as the operating system shields the programmer from the
`disk hardware and presents a simple file-oriented interface, it also conceals a lot of
`disk hardware and presents a simple file-oriented interface, it also conceals a lot of
`unpleasant business concerning interrupts, timers, memory management, and other
`unpleasant business concerning interrupts, timers, memory management, and other
`low-level features. In each case, the abstraction presented to the user of the operating
`low-level features. In each case, the abstraction presented to the user of the operating
`system is simpler and easier to use than the underlying hardware.
`system is simpler and easier to use than the underlying hardware.
`In this view, the function of the operating system is to present the user with the
`In this view, the function of the operating system is to present the user with the
`equivalent of an extended machine or virtual machine that is easier to program
`equivalent of an extended machine or virtual machine that is easier to program
`than the underlying hardware. How the operating system achieves this goal is a long
`than the underlying hardware. How the operating system achieves this goal is a long
`story, which we will study in detail throughout this book.
`story, which we will study in detail throughout this book.
`
`1.1.2. The Operating System as a Resource Manager
`1.1.2. The Operating System as a Resource Manager
`
`The concept of the operating system as primarily providing its users with a con-
`The concept of the operating system as primarily providing its users with a con(cid:173)
`venient interface is a top-down view. An alternative, bottom-up, view holds that the
`venient interface is a top-down view. An alternative, bottom-up, view holds that the
`operating system is there to manage all the pieces of a complex system. Modern
`operating system is there to manage all the pieces of a complex system. Modern
`computers consist of processors, memories, timers, disks, terminals, magnetic tape
`computers consist of processors, memories, timers, disks, terminals, magnetic tape
`drives, network interfaces, laser printers, and a wide variety of other devices. In the
`drives, network interfaces, laser printers, and a wide variety of other devices. In the
`alternative view, the job of the operating system is to provide for an orderly and con(cid:173)
`alternative view, the job of the operating system is to provide for an orderly and con-
`trolled allocation of the processors, memories, and I/O devices among the various
`trolled allocation of the processors, memories, and 1/0 devices among the various
`programs competing for them.
`programs competing for them.
`Imagine what would happen if three programs running on some computer all tried
`Imagine what would happen if three programs running on some computer all tried
`to print their output simultaneously on the same printer. The first few lines of print-
`to print their output simultaneously on the same printer. The first few lines of print(cid:173)
`out might be from program 1, the next few from program 2, then some from program
`out might be from program 1, the next few from program 2, then some from program
`3, and so forth. The result would be chaos. The operating system can bring order to
`3, and so forth. The result would be chaos. The operating system can bring order to
`the potential chaos by buffering all the output destined for the printer on the disk.
`the potential chaos by buffering all the output destined for the printer on the disk.
`When one program is finished, the operating system can then copy its output from the
`When one program is finished, the operating system can then copy its output from the
`disk file where it has been stored to the printer, whi~e same time the other pro(cid:173)
`disk file where it has been stored to the printer, while at t e same time the other pro-
`gram can continue generating more output, oblivous to the fact that the output is not
`gram can continue generating more output, oblivrolls to the fact that the output is not
`really going to the printer (yet).
`really going to the printer (yet).
`
`9 of 142
`
`
`
`SEC. 1.2 (cid:9)
`SEC. 1.2
`
`HISTORY OF OPERATING SYSTEMS (cid:9)
`HISTORY OF OPERATING SYSTEMS
`
`5
`5
`
`When a computer has multiple users, the need for managing and protecting the
`When a computer has multiple users, the need for managing and protecting the
`memory, l/0 devices, and other resources is even more apparent. This need arises
`memory, I/O devices, and other resources is even more apparent. This need arises
`because it is frequently necessary for users to share expensive resources such as tape
`because it is frequently necessary for users to share expensive resources such as tape
`drives and phototypesetters. Economic issues aside, it is also often necessary for
`drives and phototypesetters. Economic issues aside, it is also often necessary for
`users who are working together to share information. In short, this view of the
`users who are working together to share information. In short, this view of the
`operating system holds that its primary task is to keep track of who is using which
`operating system holds that its primary task is to keep track of who is using which
`resource, to grant resource requests, to account for usage, and to mediate conflicting
`resource, to grant resource requests, to account for usage, and to mediate conflicting
`requests from different programs and users.
`requests from different programs and users.
`
`1.2. HISTORY OF OPERATING SYSTEMS
`1.2. HISTORY OF OPERATING SYSTEMS
`
`Operating systems have been evolving through the years. In the following sec-
`Operating systems have been evolving through the years. In the following sec(cid:173)
`tions we will briefly look at this development. Since operating systems have histori-
`tions we will briefly look at this development. Since operating systems have histori(cid:173)
`cally been closely tied to the architecture of the computers on which they run, we
`cally been closely tied to the architecture of the computers on which they run, we
`will look at successive generations of computers to see what their operating systems
`will look at successive generations of computers to see what their operating systems
`were like. This mapping of operating system generations to computer generations is
`were like. This mapping of operating system generations to computer generations is
`crude, but it does provide some structure where there would otherwise be none.
`crude, but it does provide some structure where there would otherwise be none.
`The first true digital computer was designed by the English mathematician
`The first true digital computer was designed by the English mathematician
`Charles Babbage (1792-1871). Although Babbage spent most of his life and fortune
`Charles Babbage ( 1792-1871 ). Although Babbage spent most of his life and fortune
`trying to build his "analytical engine," he never got it working properly because it
`trying to build his "analytical engine," he never got it working properly because it
`was a purely mechanical design, and the technology of his day could not produce the
`was a purely mechanical design, and the technology of his day could not produce the
`wheels, gears, cogs and other mechanical parts to the high precision that he needed.
`wheels, gears, cogs and other mechanical parts to the high precision that he needed.
`Needless to say, the analytical engine did not have an operating system.
`Needless to say, the analytical engine did not have an operating system.
`
`1.2.1. The First Generation (1945.1955): Vacuum Tubes and Plugboards
`1.2.1. The First Generation (1945-1955): Vacuum Tubes and Plugboards
`
`After Babbage's unsuccessful efforts, little progress was made in constructing
`After Babbage' s unsuccessful efforts, little progress was made in constructing
`digital computers until World War II. Around the mid-1940s, Howard Aiken at Har-
`digital computers until World War II. Around the mid-1940s, Howard Aiken at Har(cid:173)
`vard, John von Neumann at the Institute for Advanced Study in Princeton, J. Presper
`vard, John von Neumann at the Institute for Advanced Study in Princeton, J. Presper
`Eckert and William Mauchley at the University of Pennsylvania, and Konrad Zuse in
`Eckert and William Mauchley at the University of Pennsylvania, and Konrad Zuse in
`Germany, among others, all succeeded in building calculating engines using vacuum
`Germany, among others, all succeeded in building calculating engines using vacuum
`tubes. These machines were enormous, filling up entire rooms with tens of thousands
`tubes. These machines were enormous, filling up entire rooms with tens of thousands
`of vacuum tubes, but were much slower than even the cheapest home computer avail-
`of vacuum tubes, but were much slower than even the cheapest home computer avail(cid:173)
`able today.
`able today.
`In these early days, a single group of people designed, built, programmed,
`In these early days, a single group of people designed, built, programmed,
`operated, and maintained each machine. All programming was done in absolute
`operated, and maintained each machine. All programming was done in absolute
`machine language, often by wiring up plugboards to control the machine's basic
`machine language, often by wiring up plugboards to control the machine's basic
`functions. Programming languages were unknown (not even assembly language).
`functions. Programming languages were unknown (not even assembly language).
`Operating systems were unheard of. The usual mode of operation was for the pro-
`Operating systems were unheard of. The usual mode of oper