Unix Philosophy

The Unix philosophy is a set of cultural norms and philosophical approaches to software development established by the pioneers of the Unix operating system. It prioritizes composability over monolithic complexity.

At its core, the philosophy can be summarized by three main tenets originally articulated by Doug McIlroy:

  1. Do One Thing and Do It Well: Each program should be a "filter" that solves a single, well-defined problem. By limiting the scope, you reduce the "bug surface" and make the code easier to maintain.
  2. Write Programs to Work Together: Software should not be an island. It should expect to receive input from and send output to other, as-yet-unknown programs.
  3. Use a Universal Interface (Text): By using text streams (files and pipes) as the universal interface, tools can be "chained" together regardless of their internal implementation.