Unix philosophy

The Unix philosophy, originated by Ken Thompson, is a set of cultural norms and philosophical approaches to minimalist, modular software development.

The Unix philosophy emphasizes building simple, compact, clear, modular, and extensible code that can be easily maintained and repurposed by developers other than its creators.

"[4] In October 1984, Brian Kernighan and Rob Pike published a paper called Program Design in the UNIX Environment.

[5] The design of cat is typical of most UNIX programs: it implements one simple but general function that can be used in many different applications (including many not envisioned by the original author).

"[8] He contrasts this with the earlier approach taken at Bell Labs when developing and revising Research Unix:[9] Everything was small... and my heart sinks for Linux when I see the size of it.

There are limited sources for the acronym DOTADIW on the Internet, but it is discussed at length during the development and packaging of new operating systems, especially in the Linux community.

Patrick Volkerding, the project lead of Slackware Linux, invoked this design principle in a criticism of the systemd architecture, stating that, "attempting to control services, sockets, devices, mounts, etc., all within one daemon flies in the face of the Unix concept of doing one thing and doing it well.

He says that UNIX philosophy suffers from similar problems to microservices: without overall supervision, big architectures end up ineffective and inefficient.

Ken Thompson and Dennis Ritchie , key proponents of the Unix philosophy
Brian Kernighan has written at length about the Unix philosophy