The UNIX Programming Environment
Brian W. Kernighan, Rob Pike
I believe I read The UNIX Programming Environment, by Brian W. Kernighan and Rob Pike (henceforth K&P) shortly after it came out in 1983. I had recently graduated with a PhD in Biochemistry. The UNIX Programming Environment was one of three books that came out of Bell Labs in the seventies and eighties: Software Tools by Kernighan and Plauger in 1976, The C Programming Language by Brian W. Kernighan and Dennis M. Ritchie in 1978, and The UNIX Programming Environment by K&P in 1983. My graduate mentor, who was one of those remarkable people who knows everything but is somehow not a know-it-all, pointed me to them. (He was not a computer guy -- I think he may have had a brother who worked at Bell Labs.) I have little formal education in programming, and these remarkable books were invaluable.
The UNIX Programming Environment is the culmination of the two previous books. Software Tools described an approach to building useful software -- by building a collection of tools that worked well together to do almost anything. The tools were awkwardly written in Fortran because that was widely available. The C Programming Language presented a programming language that actually worked. The UNIX Programming Environment presented the new operating system by Bell Labs, in which these tools could be developed and comfortably used together to do useful things (develop more software, for instance).
By any measure, unix has been a huge success. It was initially owned by Bell Labs, but they licensed it to many companies and universities. The University of California at Berkeley developed its own very popular variety of unix, BSD (Berkeley Standard Distribution), on which most currently extant *nixes are more-or-less based. *nix is unix jargon for any unix variant, including GNU/linux, which is not, strictly speaking, unix. In 1991 Linus Torvalds developed a unix-like kernel (the core of the operating system), free of any privately held intellectual property, which he called linux. Together with software tools from the Free Software Foundation, this became the free GNU/linux operating system, which now runs on more CPUs by far than any other. When we consider that MacOS is a unix and that the latest versions (10 and 11) of Windows run linux under the Windows Subsystem for Linus (WSL), *nixes have become nearly universal in computing.
Despite its age of 40 years, which in computing is ancient, The UNIX Programming Environment is still a useful guide to the fundamentals of *nix.
Comments
Post a Comment
Add a comment!