Advanced Topics In UNIX, Second Edition The first edition of this book was originally published in 1993 by McGraw-Hill under the same name, Advanced Topics in UNIX. It was named an Alternate Main Selection of the Newbridge Book Club in the same year. That book stayed in print for thirteen years, an eternity in the computing literature. Due to changes in the publishing industry, this edition of the book is only available electronically.
I was motivated to revise the book because of the increased popularity of several variants of UNIX and on what I learned from reviews of the previous published version of this book. Linux has become increasingly popular, due in no little part to it being so popular in the open source community and also because it is serving as the basis of the operating system for the Google Android phone. The Mach operating system, originally developed at Carnegie Mellon University, is the basis for the operating systems used to control Apple Macintosh computers. Solaris, originally developed by Sun Microsystems, is now considered by Oracle to be the top enterprise operating system and also claimed to have been especially built for cloud computing. It was clear to me that a revision of the book was necessary. I am currently running versions of both Linux (Ubuntu) and Solaris on my Windows PC. Of course, the operating system on my Macintosh is based on Mach.
My experience with multiple versions of UNIX-like operating systems showed me that end users, application programmers, system programmers, and system administrators often had difficulties in making programs and utilities work well across different UNIX variants, due to differences in file system organization, different locations of critical configuration files, and important, yet subtle, differences in how system calls operate. There are also issues with different utilities, many of which are either not available on all UNIX versions, or else require a substantial effort to even get them to install properly. One of the most interesting problems required detailed analysis of several Linux variants in order to get a single public domain application to work – the different Linux variants from Fedora (formerly Red Hat), SUSE, and Ubuntu were examined before the application would install and work properly.
I have chosen an approach guided by my own research and experience in the efficient development of large, high-quality, software systems in both UNIX and non-UNIX environments over much of the last twenty-five years. Much of my research in this area is based on the application of systematic approaches to software reuse as part of the software development process.