Because they are similar,this book covers both UNIX and Linux systems. Unfortunately, mentioningUNIX and Linux together in the same sentence can sometimes be likestepping into a political minefield, or perhaps blundering into a largepatch of quicksand. But since the relationship between UNIX and Linuxseems to engender some confusion as well as animosity, it’s hard toavoid staking out a position. Here is our perspective and our shortversion of the facts.
See the section starting on page 1264 for more of the history of UNIX and Linux. |
Linux is a reimplementationand elaboration of the UNIX kernel. It conforms to the POSIX standard,runs on several hardware platforms, and is compatible with mostexisting UNIX software. It differs from many—but not all—variants ofUNIX in that it is free, open source, and cooperatively developed.Linux includes technicaladvances that did not exist in UNIX, so it is more than just a UNIXclone. At the same time, traditional UNIX vendors have continued torefine their systems, so there are certainly areas in which commercialUNIX systems are superior to Linux.
Whatever the relative meritsof the systems, Linux is a legally, developmentally, and historicallydistinct entity that cannot properly be referred to as “UNIX” or as a“version of UNIX.” To do so is to slight the work and innovation of theLinux community. At the same time, it’s somewhat misleading to insistthat Linux is “not UNIX.” If your creation walks like a duck and quackslike a duck, you may have invented a duck.
Schisms exist even within theLinux camp. It has been argued, with some justification, that referringto Linux distributions simply as “Linux” fails to acknowledge the workthat went into the software that runs outside the kernel (which in factconstitutes the vast majority of software on an average system).Unfortunately, the most commonly suggested alternative, GNU/Linux, hasits own political baggage and has been officially endorsed only by theDebian distribution. The Wikipedia entry for “GNU/Linux namingcontroversy” outlines the arguments on both sides.[1]Interestingly, the use of open source software is now predominant evenon most UNIX systems, but no one seems to be pushing for a GNU/UNIXdesignation just yet.[2]
[1]Since Wikipedia contains Linux information and must therefore refer toLinux frequently, the debate has particular relevance to Wikipediaitself. The discussion page for the Wikipedia article is also wellworth reading.
[2] After all, “GNU’s not UNIX!”
Linux software is UNIXsoftware. Thanks largely to the GNU Project, most of the importantsoftware that gives UNIX systems their value has been developed undersome form of open source model.[3]The same code runs on Linux and non-Linux systems. The Apache webserver, for example, doesn’t much care whether it’s running on Linux orSolaris. From the standpoint of applications and most administrativesoftware, Linux is simply one of the best-supported and most widelyavailable varieties of UNIX.
[3]Several of our technical reviewers protested that we seem to becrediting GNU with the creation of most of the world’s free software.We are not! However, GNU has certainly done more than any other groupto promote the ideaof free software as a social enterprise and to structure ongoing debateabout licensing terms and interactions between free and nonfreesoftware.
It’s also worth noting thatLinux is not the only free UNIX-like operating system in the world.OpenSolaris is free and open source, although its exact licensing termshave earned suspicious looks from some open source purists. FreeBSD,NetBSD, and OpenBSD—all offshoots of the Berkeley Software Distributionfrom UC Berkeley—have ardent followers of their own. These OSes aregenerally comparable to Linux in their features and reliability,although they enjoy somewhat less support from third-party softwarevendors.
UNIX and Linux systems have both been used in production environments for many years, and they both work well.[4]At this point, the choice between them has more to do with packaging,support, and institutional inertia than any real difference in qualityor modernity.
[4]We consider a “production” environment to be one that an organizationrelies on to accomplish real work (as opposed to testing, research, ordevelopment).
In this book,comments about “Linux” generally apply to Linux distributions but notto traditional UNIX variants. The meaning of “UNIX” is a bit morefluid, as we occasionally apply it to attributes shared by all UNIXderivatives, including Linux (e.g., “UNIX file permissions”). To avoidambiguity, we usually say “UNIX and Linux” when we mean both.