Chapter overviews

Chapter 1-"The Unix Philosophy: A Cast of Thousands" explores the history of the Unix philosophy and how it came about. It also briefly describes the tenets of the Unix philosophy as a prelude to the longer explanations provided in subsequent chapters.

Chapter 2-"One Small Step for Humankind" shows why small components are best for building large systems. It discusses their ability to interface well with each other, both in software systems and in the physical world. The last part of the chapter focuses on the importance of having programs that do one thing well.

Chapter 3-"Rapid Prototyping for Fun and Profit" stresses the necessity of constructing prototypes early when designing a successful product. A discussion of the Three Systems of Man illustrates the phases that all software passes through. It defends rapid prototyping as the fastest route to the Third System, the most correct of the three.

Chapter 4-"The Portability Priority" provides a different perspective on software portability. It emphasizes that software developers must choose between efficiency and portability in their designs. The Atari VCS is studied as a model of high efficiency and limited portability. The chapter also highlights data portability as an important, though often overlooked, goal. A case study of the typical Unix user's collection of tools provides an excellent example of software longevity due to portability.

Chapter 5-"Now That's Leverage!" discusses the idea of "software leverage," where reusing components results in greater impact. We see how the use of shell scripts achieves a high degree of leverage.

Chapter 6-"The Perils of Interactive Programs" begins by defining Captive User Interfaces. It suggests that developers limit their usage and instead focus on making programs interact better with other programs. It expresses the idea that all programs are filters. The chapter ends with a discussion of filters in the Unix environment.

Chapter 7-"More Unix Philosophy: Ten Lesser Tenets" lists several notions that Unix developers generally follow but don't consider primary elements of the Unix philosophy. Since this chapter deals with some concepts at deeper levels than the rest of the book, the less technical reader should feel free to skip this chapter. Unix purists, however, will likely find it quite entertaining.

Chapter 8-"Making Unix Do One Thing Well" presents the Unix mail handler MH as an example of how good Unix applications are built. It finishes with a summary of the Unix philosophy that shows how it derives its strength from each element working together.

Chapter 9-"Unix and Other Operating System Philosophies" compares Linux and the Unix philosophy to several other operating system philosophies to emphasize the uniqueness of the Unix approach.

Chapter 10-"Through the Glass Darkly: Linux vs. Windows" starts with a high-level comparison between Linux and Microsoft Windows. It makes the case for text-based computing versus the use of graphical user interfaces. It then wraps up with a look at how Windows adheres to the Unix philosophy in some areas and departs from it in others.

Chapter 11-"A Cathedral? How Bizarre!" takes a look at how the concept of Open Source Software (OSS) popularized by the Linux community fits with the Unix philosophy. The propagation of OSS works best when it employs the "Unix way of thinking" in all areas.

Chapter 12-"Brave New (Unix) World" examines how the tenets of the Unix philosophy are being adopted in new technological areas. It focuses on several key and a few not-so-key technologies to illustrate that Unix ideas are not just for Unix developers anymore. This book's developmental reviewers' most frequent comment about Chapter 12 was "I never thought of it that way before." Read it and it will open your mind.

As you've probably already seen from a quick glance, the text avoids many technical details as they vary from one Linux implementation to another. Instead, it stresses that the Unix philosophy is a design methodology that depends less on specifics and more on a general approach defined at a higher level.

I've tried to keep an upbeat tone throughout the book. While some people may enjoy reading massive technical tomes lacking humanity, the rest of us prefer writing that is both entertaining and informative, i.e., the "infotainment" approach. This, too, is in keeping with the Linux and Unix culture. The Unix community and its offspring Linux community has always had a wry sense of humor. It shows in places in the original Bell Laboratories' Unix documents and on the networks frequented by Linux people. Perhaps it's why Linux developers enjoy their work so much.

Do not be dissuaded by the levity, however. This is serious stuff. People have found or lost software fortunes by observing or ignoring the tenets covered here. Proper applications of the Unix philosophy have usually resulted in tremendously successful products. Operating in direct conflict with these tenets has often caused developers to miss important windows of market opportunity.

Students of my lectures have mentioned that, while you may at first superficially absorb ideas expressed here, they return to your conscious mind at odd times. Powerful ideas tend to do that. If you have never been exposed to the Unix philosophy before, prepare yourself for an interesting journey.

The introduction to the original Unix philosophy book is included here for a couple of reasons. The first is that people have immortalized it by quoting from it on the Internet. Keeping it in this edition will enable those people who have not purchased the original book to benefit from it. The second reason is because of the prophetic statement in the last paragraph: "it is only a matter of time before Unix becomes the world's operating system." Linux, as the new namesake of Unix, is fulfilling that statement day by day, machine by machine, application by application.



Linux and the Unix Philosophy
Linux and the Unix Philosophy
ISBN: 1555582737
EAN: 2147483647
Year: 2005
Pages: 92
Authors: Mike Gancarz

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net