The UNIX Philosophy

created by Foxy Penguin
(idea) by Foxy Penguin (8.5 y) (print)   (I like it!) Sat Nov 13 1999 at 10:21:29
The fundamental philosophy which has guided UNIX development since it's birth. Composed of several tenets, it promotes certain "radical" ideas which have been proven to be extremely useful in software development. Very much different from other software design concepts. Does not teach a person how to use UNIX, but rather why they should use UNIX.

Also, a book by Mike Gancarz about The UNIX Philosophy.
(idea) by Hai-Etlik (6.8 mon) (print)   (I like it!) Tue Mar 28 2000 at 6:55:21
Some of the tenents of what I understand to be UNIX Philosophy are: I'll add more as I think of them or stea^H^H^H^Henlist the aid of my fellow noders and give full credit on their ideas.
(idea) by everyone (4.7 mon) (print)   (I like it!) Mon Oct 30 2000 at 21:28:11
From what I understand it (and no, I haven't read the book), it is largely dominated by minimalism and rich I/O such as pipes and sockets. (all of which, you will notice, from a programmer's point of view, have file descriptors, and are read and written through the same calls; again, back to "everything is a file")

mcc suggested I append a hardlink to "jwz: The Rise of ``Worse is Better''". Very well, but I don't think much of those who bitch about UNIX sucking. Either way, an interesting essay about the UNIX philosophy.

(idea) by ameoba (2.4 y) (print)   (I like it!) Wed Nov 20 2002 at 17:37:06
Mike Gancarz's book The UNIX Philosophy (Digital Press, 1995) describes many of the ideas and conventions that have made unix a great sytem. It starts with a short run down of the history, quickly getting to the meat of things, discussion of the major ideas of Unixdom and illustrations of why they are such good ideas. While many of the ideas may seem relatively obvious to anyone who's worked with the system before, it makes an excellent introduction to the traditions of the Unix world, as well as an excelent bit of advocacy for why the Unix way is the Right Way.


Listed in the first chapter, the following nine points are the key tenets:
  1. Small is beautiful
  2. Make each program do one thing
  3. Build a prototype as soon as possible
  4. Choose portability over efficiency
  5. Store numerical data in flat ASCII files
  6. Use software leverage to your advantage
  7. Use shell scripts to increase leverage and portability
  8. Avoid captive user interfaces
  9. Make every program a filter


...and the ten lesser points:
  1. Allow the user to tailor the environment:
  2. Make operating system kernels small and lightweight:
  3. Use lower case and keep it short
  4. Save trees
  5. Silence is golden
  6. Think parallel
  7. The sum of the parts is greater than the whole
  8. Look for the 90 percent solution
  9. Worse is better
  10. Think hierarchiacally
Y'know, if you log in, you can write something here, or contact authors directly on the site. Create a New User if you don't already have an account.