Linux and the Unix Philosophy

Most of what we've covered thus far has been abstract. Although we have seen that there are practical reasons behind every tenet of the Unix philosophy, some of you may still believe that they wouldn't work in the real world. "Small is beautiful" is fine, but what about the big jobs? Is it really possible to build a complete application from a collection of small programs? Can a program without a CUI serve a useful purpose? These are fair questions, to be sure. You will find the answers to them and more in this chapter.
We're going to look at MH, a mail-handling application developed by the RAND Corporation. It consists of a series of programs that when combined give the user an enormous ability to manipulate email messages. A complex application, it shows that not only is it possible to build large applications from smaller components, but also that such designs are actually preferable.
If a program is valuable, it will be ported from one platform to the next. Such is the case with MH. The original ideas remain the same, but newer versions have come along through the years that enhance the original. In today's Linux distributions, New MH (NMH) has largely superceded MH. NMH incorporates all of the major features of MH and most importantly adheres to the original philosophy of MH. For the purpose of this discussion, we will be covering the ideas behind MH, recognizing that they apply equally well to NMH.
Before Web-based email...