UNIX The Famous Unknown Operating System Part Two
63
Dennis Ritchie
In Part One of this series, we introduced UNIX and the UNIX philosophy, which has influenced the development of both commercial and personal computers for decades and which has led to some of the most valuable advances in the science of computers and all of the many varied businesses that depend on them.
Another element of the UNIX philosophy that is probably one of its most powerful concepts, given its applicability to all manner of pursuits outside the realm of computers, operating systems and programming languages, is the concept of "reduction to simplicity" in the development of UNIX utilities. Einstein is famously quoted as saying "everything should be made as simple as possible, but no simpler." In UNIX, each utility or program is designed to do one thing as fast and as efficiently as possible. There is no such thing as a "feature list" with a UNIX program. Oh, there might be a list of flags for the command itself, but most UNIX utilities have one and only one function. For example, the famous "grep" utility finds certain strings of text within other strings of text. That's it. No seminars. No brochures. No presentations with free danish. Now, grep might sound a little too simple when compared with say, Photoshop, but simply put, there is no block of machine language on Earth that does what grep does better. Because of this, there are personal computers being sold at retail stores right now with grep pre-installed. This is a program that, like many of its fellow UNIX utilities, was invented over 35 years ago. This is remarkable considering nearly all other commercial software from 35 years ago would neither run nor even compile on most modern personal computers. Very early in its development, UNIX was considered by AT&T and Bell Labs to be a commercial project. However, during the time UNIX was being developed into what eventually became the famous "System V" release in the early 1980s, the first of many "forks" of the system occurred when some academic institutions eschewed the commercial license of AT&T UNIX in favor of developing a "free" version of the same system for academic use and study. This new "free" version of UNIX became known as "BSD" UNIX for "Berkeley Software Distribution" since it was developed at the University of California at Berkeley.Around the same time, Richard Stallman announced the formation of the GNU Project, a recursive acronym which stands for "GNU's Not UNIX." The purpose of the GNU Project was to independently develop a completely free implementation of UNIX for study, academic use and development. The GNU Project eventually combined their work with the Linux kernel project to become GNU/Linux, of which there are literally hundreds of versions available for almost every electronic device invented in the 20th century. The chief reason for this nearly constant development is that UNIX was developed using the C programming language. This made the source code, or "recipe" for building UNIX itself portable, meaning that the same instructions for building grep on a PDP-11 in 1979 could be used to build grep on an Intel Xeon, iPod, or SGI Workstation in 2007.The other reason is that many of the great traditions of the UNIX community are found within its academic ideals. Many, if not all UNIX systems are distributed with the source code, meaning that the system is completely self-contained. With access to the source code a sufficiently knowledgeable programmer could continue development of UNIX on their own, or make adjustments to the operation of the operating system by simply modifying and then recompiling the source into a new "version" of UNIX.Because of another of its conventions, UNIX was one of the first, if not the first, operating system to provide a uniform programming interface to developers, something which is known as an "API" or Application Programmer's Interface to modern programmers. Since in UNIX everything is a file, knowing how to work with files meant that developers knew how to work with UNIX in general. This had a major influence on the entire industry because it standardized the knowledge required to be a developer. With a standardized programming interface, UNIX also combined process control with the command interface, further simplifying the level of knowledge required by a user to operate the machine. On older systems, process control required the use of a seperate set of instructions, such as the IBM "JCL" or Job Control Language. Users could sit down and write a set of instructions designed to control and prioritize processes using the exact same set of instructions they would normally use interactively at the command line. These sets of instructions became known as "shell scripts" and are one of the most powerful features of UNIX and UNIX-like operating systems. But the average person need look no further than their web browser to see the power and influence of UNIX in action. Whatever claims commercial companies may make to and of the Internet, the fact remains that the Internet runs on text, and that text, somewhere between server and browser, is probably being processed by at least one machine running some variant of UNIX.Share it! — Rate it: up down [flag this hub]


FinancePortal says:
3 months ago
An excellent followup to the first article - thanks! It's a testament to the design ideals behind UNIX that over 35 years one it's still going from strength to strength.