throbber
1 of 142
`
` 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

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket