or
Sign in to turn on 1-Click ordering.
or
Amazon Prime Free Trial required. Sign up when you check out. Learn More
Sell Back Your Copy
For a $3.25 Gift Card
Trade in
More Buying Choices
Have one to sell? Sell yours here
The Design of the UNIX Operating System [Prentice-Hall Software Series]
 
See larger image
 
Tell the Publisher!
I'd like to read this book on Kindle

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.

The Design of the UNIX Operating System [Prentice-Hall Software Series] [Paperback]

Maurice J. Bach (Author)
4.7 out of 5 stars  See all reviews (26 customer reviews)

List Price: $80.00
Price: $61.81 & this item ships for FREE with Super Saver Shipping. Details
You Save: $18.19 (23%)
  Special Offers Available
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
In Stock.
Ships from and sold by Amazon.com. Gift-wrap available.
Only 10 left in stock--order soon (more on the way).
Want it delivered Monday, January 30? Choose One-Day Shipping at checkout. Details
Textbook Student FREE Two-Day Shipping for Students. Learn more

Formats

Amazon Price New from Used from
Hardcover --  
Paperback $61.81  
Sell Back Your Copy for $3.25
Whether you buy it used on Amazon for $7.06 or somewhere else, you can sell it back through our Book Trade-In Program at the current price of $3.25.
Used Price$7.06
Trade-in Price$3.25
Price after
Trade-in
$3.81

Book Description

0132017997 978-0132017992 June 6, 1986 1st

Classic description of the internal algorithms and the structures that form the basis of the UNIX operating system and their relationship to programmer interface. The leading selling UNIX internals book on the market.


Special Offers and Product Promotions

  • Buy $50 in qualifying physical textbooks, get $5 in Amazon MP3 Credit. Here's how (restrictions apply)

Frequently Bought Together

The Design of the UNIX Operating System [Prentice-Hall Software Series] + Unix Programming Environment (Prentice-Hall Software Series) + C Programming Language (2nd Edition)
Price For All Three: $143.09

Show availability and shipping details

Buy the selected items together
  • In Stock.
    Ships from and sold by Amazon.com.
    This item ships for FREE with Super Saver Shipping. Details

  • Unix Programming Environment (Prentice-Hall Software Series) $40.75

    In Stock.
    Ships from and sold by Amazon.com.
    This item ships for FREE with Super Saver Shipping. Details

  • C Programming Language (2nd Edition) $40.53

    In Stock.
    Ships from and sold by Amazon.com.
    This item ships for FREE with Super Saver Shipping. Details



Editorial Reviews

From the Publisher

This book describes the internal algorithms and the structures that form the basis of the UNIX ®operating system and their relationship to the programmer interface. The system description is based on UNIX System V Release 2 supported by AT&T, with some features from Release 3.

From the Inside Flap

Preface

The UNIX system was first described in a 1974 paper in the Communications of the ACM Thompson 74 by Ken Thompson and Dennis Ritchie. Since that time, it has become increasingly widespread and popular throughout the computer industry where more and more vendors are offering support for it on their machines. It is especially popular in universities where it is frequently used for operating systems research and case studies.

Many books and papers have described parts of the system, among them, two special issues of the Bell System Technical Journal in 1978 BSTJ 78 and 1984 BLTJ 84. Many books describe the user level interface, particularly how to use electronic mail, how to prepare documents, or how to use the command interpreter called the shell; some books such as The UNIX Programming Environment Kernighan 84 and Advanced UNIX Programming Rochkind 85 describe the programming interface. This book describes the internal algorithms and structures that form the basis of the operating system (called the kernel) and their relationship to the programmer interface. It is thus applicable to several environments. First, it can be used as a textbook for an operating systems course at either the advanced undergraduate or first-year graduate level. It is most beneficial to reference the system source code when using the book, but the book can be read independently, too. Second, system programmers can use the book as a reference to gain better understanding of how the kernel works and to compare algorithms used in the UNIX system to algorithms used in other operating systems.

Finally, programmers on UNIX systems can gain a deeper understanding of how their programs interact with the system and thereby code more-efficient, sophisticated programs.

The material and organization for the book grew out of a course that I prepared and taught at AT&T Bell Laboratories during 1983 and 1984. While the course centered on reading the source code for the system, I found that understanding the code was easier once the concepts of the algorithms had been mastered. I have attempted to keep the descriptions of algorithms in this book as simple as possible, reflecting in a small way the simplicity and elegance of the system it describes. Thus, the book is not a line-by-line rendition of the system written in English; it is a description of the general flow of the various algorithms, and most important, a description of how they interact with each other. Algorithms are presented in a C-like pseudo-code to aid the reader in understanding the natural language description, and their names correspond to the procedure names in the kernel. Figures depict the relationship between various data structures as the system manipulates them. In later chapters, small C programs illustrate many system concepts as they manifest themselves to users. In the interests of space and clarity, these examples do not usually check for error conditions, something that should always be done when writing programs. I have run them on System V; except for programs that exercise features specific to System V, they should run on other versions of the system, too.

Many exercises originally prepared for the course have been included at the end of each chapter, and they are a key part of the book. Some exercises are straightforward, designed to illustrate concepts brought out in the text. Others are more difficult, designed to help the reader understand the system at a deeper level. Finally, some are exploratory in nature, designed for investigation as a research problem. Difficult exercises are marked with asterisks.

The system description is based on UNIX System V Release 2 supported by AT&T, with some new features from Release 3. This is the system with which I am most familiar, but I have tried to portray interesting contributions of other variations to the operating system, particularly those of Berkeley Software Distribution (BSD). I have avoided issues that assume particular hardware characteristics, trying to cover the kernel-hardware interface in general terms and ignoring particular machine idiosyncrasies. Where machine-specific issues are important to understand implementation of the kernel, however, I delve into the relevant detail. At the very least, examination of these topics will highlight the parts of the operating system that are the most machine dependent.

The reader must have programming experience with a high-level language and, preferably, with an assembly language as a prerequisite for understanding this book. It is recommended that the reader have experience working with the UNIX system and that the reader knows the C language Kernighan 78. However, I have attempted to write this book in such a way that the reader should still be able to absorb the material without such background. The appendix contains a simplified description of the system calls, sufficient to understand the presentation in the book, but not a complete reference manual.

The book is organized as follows. Chapter I is the introduction, giving a brief, general description of system features as perceived by the user and describing the system structure. Chapter 2 describes the general outline of the kernel architecture and presents some basic concepts. The remainder of the book follows the outline presented by the system architecture, describing the various components in a building block fashion. It can be divided into three parts: the file system, process control, and advanced topics. The file system is presented first, because its concepts are easier than those for process control. Thus, Chapter 3 describes the system buffer cache mechanism that is the foundation of the file system. Chapter 4 describes the data structures and algorithms used internally by the file system. These algorithms use the algorithms explained in Chapter 3 and take care of the internal bookkeeping needed for managing user files. Chapter 5 describes the system calls that provide the user interface to the file system; they use the algorithms in Chapter 4 to access user files.

Chapter 6 turns to the control of processes. It defines the context of a process and investigates the internal kernel primitives that manipulate the process context. In particular, it considers the system call interface, interrupt handling, and the context switch. Chapter 7 presents the system calls that control the process context. Chapter 8 deals with process scheduling, and Chapter 9 covers memory management, including swapping and paging systems.

Chapter 10 outlines general driver interfaces, with specific discussion of disk drivers and terminal drivers. Although devices are logically part of the file system, their discussion is deferred until here because of issues in process control that arise in terminal drivers. This chapter also acts as a bridge to the more advanced topics presented in the rest of the book. Chapter 11 covers interprocess communication and networking, including System V messages, shared memory and semaphores, and BSD sockets. Chapter 12 explains tightly coupled multiprocessor UNIX systems, and Chapter 13 investigates loosely coupled distributed systems.

The material in the first nine chapters could be covered in a one-semester course on operating systems, and the material in the remaining chapters could be covered in advanced seminars with various projects being done in parallel.

A few caveats must be made at this time. No attempt has been made to describe system performance in absolute terms, nor is there any attempt to suggest configuration parameters for a system installation. Such data is likely to vary according to machine type, hardware configuration, system version and implementation, and application mix. Similarly, I have made a conscious effort to avoid predicting future development of UNIX operating system features Discussion of advanced topics does not imply a commitment by AT&T to provide particular features, nor should it even imply that particular areas are under investigation.

It is my pleasure to acknowledge the assistance of many friends and colleagues who encouraged me while I wrote this book and provided constructive criticism of the manuscript. My deepest appreciation goes to Ian Johnstone who suggested that I write this book, gave me early encouragement, and reviewed the earliest draft of the first chapters. Ian taught me many tricks of the trade, and I will always be indebted to him. Doris Ryan also had a hand in encouraging me from the very beginning, and I will always appreciate her kindness and thoughtfulness. Dennis Ritchie freely answered numerous questions on the historical and technical background of the system. Many people gave freely of their time and energy to review drafts of the manuscript, and this book owes a lot to their detailed comments. They are Debby Bach, Doug Bayer, Lenny Brandwein, Steve Buroff, Tom Butler, Ron Gomes, Mesut Gunduc, Laura Israel, Dean Jagels, Keith Kelleman, Brian Kernighan, Bob Martin, Bob Mitze, Dave Nowitz, Michael Poppers, Marilyn Safran, Curt Schimmel, Zvi Spitz, Tom Vaden, Bill Weber, Larry Wehr, and Bob Zarrow. Mary Frubstuck provided help in preparing the manuscript for typesetting. I would like to thank my management for their continued support throughout this project and my colleagues, for providing such a stimulating atmosphere and wonderful work environment at AT&T Bell Laboratories. John Wait and the staff at Prentice-Hall provided much valuable assistance and advice to get the book into its final form. Last, but not least, my wife, Debby, gave me lots of emotional support, without which I could never have succeeded.


Product Details

  • Paperback: 486 pages
  • Publisher: Prentice Hall; 1st edition (June 6, 1986)
  • Language: English
  • ISBN-10: 0132017997
  • ISBN-13: 978-0132017992
  • Product Dimensions: 9.1 x 7 x 1 inches
  • Shipping Weight: 2 pounds (View shipping rates and policies)
  • Average Customer Review: 4.7 out of 5 stars  See all reviews (26 customer reviews)
  • Amazon Best Sellers Rank: #95,966 in Books (See Top 100 in Books)

More About the Author

Discover books, learn about writers, read author blogs, and more.

 

Customer Reviews

26 Reviews
5 star:
 (23)
4 star:
 (1)
3 star:
 (1)
2 star:    (0)
1 star:
 (1)
 
 
 
 
 
Average Customer Review
4.7 out of 5 stars (26 customer reviews)
 
 
 
 
Share your thoughts with other customers:
Most Helpful Customer Reviews

28 of 29 people found the following review helpful:
5.0 out of 5 stars Excellent explaination of SysV internals and design, December 31, 2000
By 
none (Goleta, CA United States) - See all my reviews
This review is from: The Design of the UNIX Operating System [Prentice-Hall Software Series] (Paperback)
UNIX in its many derivatives is a 30-year old operating system. Why has it stood the test of time? Because it was designed with a simple philosophy: to give the user the ability to create his own tools to solve problems. This book has been a classic in UNIX architecture since it was published in 1987. Although some of the sections are a bit dated (e.g., IPC, file systems), it is still a valuable source of information. You will begin to understand the design philosophy of UNIX after reading this book. You will see why some of the design decisions were made (primarily due to the hardware of the time) and some of the really neat kluges that was devised to get around those problems. This book deserves its status as one of classics of UNIX literature. I highly recommend it.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


22 of 22 people found the following review helpful:
5.0 out of 5 stars Perfect foundational book, October 18, 2004
By 
Joshua Davies (Dallas, TX United States) - See all my reviews
(VINE VOICE)    (REAL NAME)   
This review is from: The Design of the UNIX Operating System [Prentice-Hall Software Series] (Paperback)
After becoming a Linux enthusiast, I bought the book "Understanding the Linux Kernel", which I unfortunately found to be almost completely impenetrable. I had heard good things about this book ("The Design of the UNIX Operating System") - in fact, I read somewhere that this was the book that taught Linus to write OS code. I put down the Linux book and picked up Maurice Bachs, which I found perfectly readable - it's abstract treatment of kernel algorithms made it easy to get the "big picture". Now, with Bach's complete treatment of the design philosophy under my belt, I'm going back to the linux kernel book, and I've found it to be a breeze... even the linux kernel source code itself now makes sense. This book is excellent for anybody who's serious about programming.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


14 of 14 people found the following review helpful:
5.0 out of 5 stars A model for how technical books should be written, October 20, 2004
By 
Tom Clark (Duvall, WA United States) - See all my reviews
(REAL NAME)   
This review is from: The Design of the UNIX Operating System [Prentice-Hall Software Series] (Paperback)
Maurice Bach's The Design of the Unix Operating System still holds the place of honor on my technical reference bookshelf. After almost 20 years, it provides a clear overview of basic Unix organization and operations and is a model for how technical books should be written. Readers who complain that the text is dated evidently did not bother to notice the 1986 copyright date. Its age, however, has not diminished its clarity of content or usefulness in understanding the Unix operating system. Bach deserves an award for excellence in technical writing.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No

Share your thoughts with other customers: Create your own review
 
 
 
Most Recent Customer Reviews











Only search this product's reviews



What Other Items Do Customers Buy After Viewing This Item?


Tags Customers Associate with This Product

 (What's this?)
Click on a tag to find related items, discussions, and people.
 
(10)

Your tags: Add your first tag
 

Sell a Digital Version of This Book in the Kindle Store

If you are a publisher or author and hold the digital rights to a book, you can sell a digital version of it in our Kindle Store. Learn more

Customer Discussions

This product's forum
Discussion Replies Latest Post
No discussions yet

Ask questions, Share opinions, Gain insight
Start a new discussion
Topic:
First post:
Prompts for sign-in
 


Active discussions in related forums
Search Customer Discussions
Search all Amazon discussions
   
Related forums





Look for Similar Items by Category


Look for Similar Items by Subject