Philosophy and Fancy
Free and open-source software isn't just a way of computing, it's a way of life, right? Or, is it just a way to get cool free stuff? Or, is it the ultimate insurance against totalitarian government, corporatist/mercantilist rule? Or, maybe it's a toolkit that forms a common cultural substrate from which enterprises are built? Maybe not—I'm confused.
Actually, this kind of confusion isn't unusual for newcomers to the open-source space. Why in the hell would people release their software for free in the first place? Why would anyone want to use open-source software? What bearing do any of these questions have on choosing a distro? And, by the way, why do some distros strip the logo from Firefox or not include the ability to play DVDs or Internet videos?
Sometimes in life, philosophy dictates reality rather than vice versa, and one of the areas where this is at least partly the case is in the packaging, design and distribution of free and/or open-source operating systems.
What became the Open Source movement was born out of sixties and seventies radicalism, articulated by far-left quasi-Marxist anarchists like Richard Stallman, objectivist idealists like Eric Raymond, and colorful characters elsewhere along the political/philosophical spectrum. The idealism and the tensions that arose in that early hacking culture have gone on to infect the community at large and to affect the business models of some of the largest tech companies in the world. Even when the philosophy hasn't, the amount of free software that's simply lying around has turned into the DNA of much of the modern computing universe (Microsoft, for example, relies heavily on BSD code for its Windows Networking stack). Linux—perhaps partly because of the stated ideological neutrality of inventor Linus Torvalds and partly because of its broader popularity—can look like little more than a battleground for the different philosophical factions that gave birth to a number of major distributions. Some people even argue very loudly about whether the operating system we all love is Linux or GNU/Linux (speaking of which, those of you in the Stallman camp might want to start writing that hate mail now).
It's hard to believe in this era of supposedly mindless consumerism that something as arcane as a philosophy can impact how your computer functions, but there you go. There are actually a few different arenas in which philosophy plays a major role in the design of Linux distributions—some of them coming out of the tensions outlined above, and some of them out of more practical kinds of paradigmatic considerations. To understand why Linux distributions are put together the way they are, it helps to understand these axes.
These differences in philosophy directly impact distribution design decisions, leading to three major species of Linux distribution.
The first species is the free distribution, and it follows the philosophy laid out by Stallman and his camp. This distribution accepts no patent-encumbered or commercial software, and it might not include hybrid software released under licenses like the LGPL or the Mozilla Public License. The Free Software movement initially arose in the 1970s and 1980s in the hacker culture, when people who owned computers were almost exclusively programmers and engineers. As commercial software came in with the dawn of personal computing, Stallman and his cohorts became concerned with their rights as users (a term which used to mean a lot more than it does now) and as programmers, so they founded the GNU Project, which eventually aimed to put together an entirely free (as in speech and as in beer) operating system. The GNU philosophy, articulated by the nonprofit Free Software Foundation and eventually embodied in the GNU General Public License, very cleverly uses copyright to subvert centralized control of information.
Free distributions are sometimes so devoted to the free software model that they will strip the trademarked artwork from, for example, Firefox, and substitute it for something more generic, in order to avoid having to deal with trademark legalities or other issues that might complicate the licensing of the distribution as a whole. Fedora Core and Slackware are prime examples of distros that follow this philosophy.
The second species is the commercial distribution, much maligned by the first camp. This sort of distribution takes advantage of the fact that the GNU GPL allows for commercial packaging (so long as the source code also is made available) and leveraging of GNU software together with various commercial and quasi-commercial programs to create a distribution that attempts to perform at the level of competing commercial operating systems and tends to aim for the same space. These often will have bundled proprietary tools, or a proprietary overlay with the system management tools, and generally will be licensed under a catchall proprietary license with a note that much of the included software is GPL, LGPL or another free license, but that the proprietary tools and software are not covered by conventional open-source thinking. Thus, caution is warranted when modifying or redistributing the operating system. SUSE is a currently viable commercial distro.
The third major species is the hybrid distribution, and its approach tends to be very pragmatic rather than ideologically slanted either toward the Free Software movement or toward commercial operating systems. These are the distributions that slant heavily in favor of free/open-source software, but still include (either bundled or via easily downloaded add-ons) proprietary fonts, codecs and other goodies of a legally murky nature (such as DVD ripping and decryption software) that often are not included in or available for commercial distributions short of compiling them oneself. This type of distribution is a recent arrival on the scene. Throughout the late 1990s and early 2000s, distros tended to be packaged either as commercial software or as free software + support, and sold in software boxes in computer shops. The burst of the dot-com bubble and the rise of widespread broadband, coupled with the legal problems caused by the DMCA, created a demand for distributions that delivered the benefits of free software with the functionality of commercial software, all while insulating distributors from the legal problems associated with patent infringement or enabling copyright circumvention. As a result, this last variety has become the most popular, although the other two species definitely are still around. Mandriva and Ubuntu both fall solidly in this category.
Fights between licensing philosophies are not the only issues that help shape distributions. There's also the question of computing models. Sun Microsystems (which started life as Stanford University Networks) used to maintain that “The network is the computer.” Because Linux is descended from System V UNIX—via its dependence on innovations made by the Berkeley Software Distribution (BSD)—and UNIX always has been a network-centric operating system family, it makes sense that some, or most, Linux distributions would follow this network-centric philosophy. Time-share computing and time-share-with-a-fresh-coat-of-paint (that is, Cloud Computing) are the major paradigms of the network-centric distribution. Two others are cluster-based computing and dumb terminals running remotely off a central server (both useful in scientific and commercial environments). Some flavors of Red Hat are specifically tailored to this computing model.
On the flip side, we have the desktop distribution. This is the operating system for the personal computing revolution. It stores the operating system and all the user's data locally (while the network-centric system prefers the opposite). These distributions are usually general-purpose, including a selection of software that can meet almost every need, from setting up a home Web server to running a small business, from playing games to Web browsing and word processing or producing a podcast. The desktop distribution is the Swiss Army knife of Linux distros. Ubuntu, SUSE and Mandriva show this approach in action.
You can see a vestige of the early heritage of your particular distribution by looking at the filesystem structure. Does your package manager install software to /usr/local/* or to /usr/*? If the former, your distro probably started life as a network-centric operating system for an office environment. If the latter, your distro has probably been designed (or, in some cases, redesigned) with the desktop in mind.
Alas, there are some things for which the Swiss Army knife just isn't suited, and in the last four years, several custom-purpose distributions have come on the scene to solve the shortcomings of the desktop distribution for different specific purposes. The most obvious of these are the studio distributions, customized for real-time audio and video production in high-demand environments, but there also are customized distributions for firewalls, Web servers and laptops as well as market-specific distros targeting churches, activist groups, hackers and crackers, and grandparents (that is, users who are incapable of interacting with their machines as anything other than appliances).
Moving beyond the customized distro space, there's an entire field of customized Linux distributions that deserves special mention: the live CD. Knoppix was the first mover here, and since then, the space has exploded. With a live CD, you can run Linux on almost any hardware, including the programs you use most often (if one live CD doesn't have it, chances are another probably will), without touching the machine's hard drive. Live CDs are very useful for diagnostics, for testing whether a distribution will play nice with your hardware or for taking a familiar environment into hostile territory (for example, when visiting relatives whom you don't want to find out that you like visiting dolphinsex.com purely for research while writing your latest romantic epic about trans-species love among aquatic mammals).
No discussion of the different approaches would be complete without mentioning embedded distributions—versions of Linux and derivative operating systems (such as RockBox and Android) designed to run on handheld devices, in networking appliances, NAS Servers and dozens of other gadgets, toys, tools and machines that consumers love to use and hackers love to repurpose. Some of these you can find for download on the Web, but a greater number are created and used in-house at different companies that manufacture devices of different sorts and often include a goodly amount of proprietary code to interact with the device's firmware.
There's a third axis along which distributions sort themselves out, and that has to do with how you answer the question “Whose job is it to administrate the system?”
Linux's architecture segregates system functions from user access—a major reason that Linux has proved remarkably insusceptible to viruses and worms. In a classical setup, what I'll call office administration, this means that only the root account can install and remove software, monkey with system settings, load and unload kernel modules, and change the hardware. A user account may merely use the software and access the data files generated by that particular user or shared with it by another user. This is still the most common setup, and it's useful in small-office, home-office and family environments where more than one user will be accessing a given system regularly.
However, laptops and Netbooks often don't need this kind of strict segregation, because the user almost always also is the system administrator. Those distributions aimed at this market and at the single-user desktop operate according to a home administration model—that is, to remove the encumbrance of having to log in to root separately, a number of modern distros do not enable the root account by default. Instead, the primary user is also the sysadmin and must furnish only a password to perform administrative functions. Ubuntu and its derivatives use this scheme by default, although they easily can be converted to the more classical administration method.
The final major administrative paradigm is most commonly encountered in embedded systems and appliances. These gadgets, such as your trusty blue-box Linksys router, are generally headless and are administered remotely from a master system over SSH or (more commonly) through an easy-to-understand Web interface.
The last axis that distributions tend to fall along isn't exactly philosophical, but it still is a real consideration. If you're putting together a distribution, who is your end user?
A distro put together for a hacker will, by default, install a raft of security-auditing and coding tools, and perhaps a handful of black hat tools as well, just for fun. These utilities almost always are available on other distros, but rarely do they install by default. Slackware is aimed squarely at this demographic.
On the other hand, a distro designed with the end user in mind might install some games, an office suite, a media player or two and a handful of toys, but generally its goal is to not overwhelm users with options. Give users one tool that works reasonably well and a good package manager, and let people fill up the corners as they need to. A small footprint and an idiot-proof setup is the name of the game here. Xandros and Linux Mint are prime examples of this type of targeting successfully taken to its logical extreme.
Power users are another animal entirely. These users want to be able to tinker with the system right up to the end of their expertise, and one tool for one job is never enough. After all, when was the last time you saw a perfect tool? Power users want it all and know how to milk the last bit of functionality out of their systems. They want an OS that is heavily optimized, that crashes rarely (if ever), and that they can control down to the process level without necessarily having to get their hands dirty. Systems designed for power users tend to be both slick and decadent, armed to the teeth with the kind of tools that would make most end users crawl into a straitjacket and whine for their mommies. The studio distributions, such as PlanetCCRMA and 64 Studio, tend to be this variety.
The administrator is the last major species of user, and distros designed for these users tend to be thin on flash and heavy on function. They also tend to run in environments where no end user would ever dare to tread, like server farms, render clusters and data centers.
The plethora of Linux distributions can be enough to make anyone's eyes glaze over, and it's tempting (particularly for a newcomer to the F/OSS world) to chalk up the diversity in distro design as just another symptom of a fractious, political hacker culture with more time than sense. The reality is a little different. The axes outlined above demarcate the major design considerations that distro packagers have to weigh, and where you put your pin on each axis also generally will have knock-on effects in terms of what kind of hardware you want to support, whether and when you will ship kernel source, whether you ship with a modular kernel, what kind of package manager you'll use, and how you'll manage the community that springs up around your product.
Likewise, understanding these considerations can help make the F/OSS space look a lot less like a battleground or a junkyard and lot more like what it really is: a rich ecosystem, more than a bit jungle-like, of different designs evolving to serve different economic and ecological niches, always filled with interesting experiments—some of which succeed handsomely.
Dan Sawyer is the founder of ArtisticWhispers Productions (www.artisticwhispers.com), a small audio/video studio in the San Francisco Bay Area. He has been an enthusiastic advocate for free and open-source software since the late 1990s. He currently is podcasting his science-fiction thriller Antithesis and his short story anthology Sculpting God. He also hosts “The Polyschizmatic Reprobates Hour”, a cultural commentary podcast. Author contact information is available at www.jdsawyer.net.