Site icon Nuventure Blog

Unix Philosophy

Before we get started with UNIX philosophy, let’s figure out what UNIX is. First things first.

What is Unix?

Unix is a family of multitasking, multi user computer operating systems. The current Unix is derived from the original AT&T Unix. The development for the original UNIX started in the 1970s at the Bell Labs research centre by Ken Thompson, Dennis Ritchie, and others. The basic building blocks of Unix includes a hierarchical file system. i.e, the concepts of processes and a command-line interpreter for the PDP-7. Now, multiple generations of Unix are developed for various machines.

What is the Unix Philosophy

Unix programs are designed around some core philosophies. This includes requirements like single purpose, interoperable, and working with a standardized text interface. Originated by Ken Thompson, Unix philosophy is a set of cultural norms and philosophical approaches to minimalist, modular software development. The philosophy is based on the experience of leading developers of the Unix operating system

Courtesy Wiki

The Predecessor

Keep It Simple and Stupid (KISS)

This philosophy is the predecessor of the Unix philosophy.  The KISS philosophy was coined by Kelly Johnson, lead engineer at the Lockheed Skunk Works, the creator of the fastest airplane ever. Johnson used to handle a team of design engineers, with the challenge that the jet aircraft they were designing must be repairable by an average mechanic in the field, thus giving rise to the concept. He believed that most systems work best if they are kept simple rather than complicated. Simplicity should be the key to any successful design, rather than over complicating things.

The Unix Philosophy

The Bell System Technical Journal

The Bell System technical journal has published an article by Douglas McIlroy in 1978 which specified certain guidelines to programming. He is best known for having originally developed Unix pipelines, software componentry and several Unix tools, such as spell, diff, sort, join, graph, speak, and tr. The philosophy emphasized on starting afresh for a new job rather than adding new features to the existing program. The output of one program used to be the input for another. The article also specified not to insist on interactive input. They specified to design and build software ideally within weeks, without hesitating to throw away clumsy codes. The philosophy also emphasised to use tools in preference to unskilled help to lighten a programming task, even if you have to detour to build the tools and expect to throw some of them out after you’ve finished using them.

Peter H Salus’s philosophy

Peter H. Salus put forward this “A Quarter-Century of Unix” philosophy in 1994. The philosophy stated to write programs that do one thing and do it well, to work together and to handle text streams, because that is a universal interface.

17 Rules of Unix programming by Eric Raymond

Eric Raymond, an American software developer and open-source advocate put forward 17 rules to be followed in Unix programming in 2003. The rules are the following:

Why is the Unix philosophy relevant today?

The Unix Philosophy is an important part of what makes Unix unique and powerful. Operating Systems like Linux is derived from Unix, thus the values are still important. The Unix philosophy strongly believes in one point. “Programs should do one thing, and do it well, and elegantly. If you need more functionality, bring more programs, interconnected to each other through a seamless functional path.” And this states how relevant the philosophy is.

Exit mobile version