The system utilities lie below the application layer. These are user-accessible programs such as the shells, e-mail delivery agents, and tools such as awk, ls or vi; the tools discussed in this book. You can log in and use these programs without worrying about the intricacies of the underlying system. The tools level provides a set of components which you can use to build special-purpose programs of your own (see ``Automating frequent tasks'' ), or use as simple filters for manipulating files.
Also accessible at this level are a number of user-oriented systems. For example, the (optional) UNIX text processing system appears at this level; so do the tools of the development system (used by C programmers to write applications).
In general, the main difference between a tool and an application
is that the application tends to shield you from having to know
anything about the UNIX system, whereas to make effective use
of software tools, it is necessary to have at least some
understanding of the way components of the system fit together.