Filozofię Uniksa udokumentował Doug McIlroy w Bell System Technical Journal z 1978.

BSTJ 57: 6. July-August 1978: UNIX Time-Sharing System: Forward. (McIlroy, M.D.; Pinson, E.N.; Tague, B.A.)

  1. Spraw, aby każdy program robił jedną rzecz dobrze. Aby wykonać nowe zadanie, zbuduj nowy, zamiast komplikować stare programy, dodając nowe do nich „funkcje”.
  2. Zakładaj, że wynik każdego programu stanie się wejściem innego, jeszcze nieznanego programu. Nie zaśmiecaj wyjścia dodatkowymi informacjami. Unikaj ściśle kolumnowych lub binarnych formatów wejściowych. Nie wymuszaj interaktywnego wprowadzania danych.
  3. Projektuj i twórz programy, a nawet systemy operacyjne tak, aby można je było szybko wypróbować, najlepiej w ciągu kilku tygodni. Bez wahania wyrzucaj niezdarne części i zbuduj je od nowa.
  4. Używaj narzędzi zamiast niewykwalifikowanej pomocy, aby ułatwić sobie zadanie programistyczne. Nawet jeśli musisz zbudować dodatkowe narzędzia zakładając, że niektóre z nich wyrzucisz, gdy nie będą już potrzebne.