EOF - What Does Linux Want?
Linux is a family of operating systems, all based on the Linux kernel. Each Linux OS is called a distribution, or a distro. There are a plethora of these. DistroWatch lists just the top 100 of a number so large that it invites satire:
Somewhere in California—At 8:30 PDT with the release of Snoopy Linux 2.1 and Goober Linux 1.0, the number of Linux distributions finally surpassed the number of actual Linux users.
“We've been expecting it for some time”, Merrill Lynch technology analyst Tom Shayes said, “but this is a little sooner than most expected. We've seen explosive growth in the number of Linux distributions; in fact, my nephew just put out LittleLinux Chart Tommy Linux 1.1 last week.”
Except, that's not a goof on DistroWatch. It's a goof that ran on April 3, 2000—almost 11 years ago—in BBspot (www.bbspot.com/News/2000/4/linux_distros.html).
So Plethorization (www.linuxjournal.com/content/linux-and-plethorization) has been around for a long time. It is also a virtue of Linux, and of open-source code in general. It reproduces easily by copying (literally), and by adaptation. Distributions that evolve do so by adapting to purposes and improving. Those that don't die off. Thus, Darwin's The Origin of Species is as relevant to code as it is to life.
Species and code are both experimental. Both have genetics. Both differentiate by forking. Both are generative. Both are brutal meritocracies. Improvements that work are what survive and thrive. As Eric S. Raymond explains in The Magic Cauldron, the Linux marketplace is not about what gets sold, but about what gets used.
Linux is a family of code genera and species that grows and differentiates as hackers create and improve code for many different purposes. The result is lots of leaders but no winners, because neither evolution nor plethorization are zero-sum games. The number of Linux distros did not go down when Red Hat was the top distro at the turn of the millennium, nor when Ubuntu moved to the front of the pack during the next decade. Instead, variants emerged.
The Wikipedia entry for Fedora currently lists 19 variants of that distro alone. The Fedora Wiki says, “There are roughly over a hundred distributions based on Fedora.” A DistroWatch search (in October 2010) brings up 38. Ubuntu itself is a child of Debian. Other Debian children include BackTrack, Knoppix, Linspire, MEPIS and Xandros. Grandchildren through Ubuntu and Knoppix alone run into many dozens.
Perhaps the only popular open-source codebase to “win” the market-share battle is the Apache HTTP server. According to Netcraft (news.netcraft.com/archives/2009/08/31/august_2009_web_server_survey.html), Apache has been the top Web server since May 1996 and has hosted the majority of the world's Web sites for most of the duration. But, while Apache still hosts more than two-thirds of the busiest domains, its share of the Web server market has declined since peaking several years ago (as did its main competitor, Microsoft's IIS). Since then, other Web servers also have became popular, even though Apache still leads the pack. But, that sports talk is zero-sum stuff. The fact is, the HTTP server market is a growing pile, not a sliced-up pie. So, although Apache still leads in percentage share, everybody whose numbers grow gets to keep playing. No winners required.
We do, however, see converging as well as diverging development vectors. Although divergence seeks out many problems to solve, convergence zeros in on a single problem. Lately, we have been learning that convergence needs more than a distro, just as an architect needs more than a sturdy set of building materials. This is why we now have Android and MeeGo, two Linux-based operating systems for mobile phones. Neither is listed among Linux distros by Wikipedia or by DistroWatch—because they're not distros. They're a layer up from that.
With Android, Google wanted to provide a complete platform for makers of mobile hardware and software. With MeeGo, Nokia and Intel wanted to do the same. All three know Linux well. It's under most of Google's infrastructure and on top of Intel's hardware. Nokia's early Linux experience was with Maemo, which didn't get much traction, but which also taught a lesson: you need more. We already see where Android is going. In the next year, we'll see if MeeGo does the same. In both, we'll get to see what Linux wants them to do.
That last sentence was informed by Kevin Kelly's brilliant new book, What Technology Wants. The evolution of technology, Kevin says, resembles that of biology by combining three forces. The first two are structural and historical. The third in biology is functional. In technology, however, the third is intentional. In biology, the functional is adaptive: “the relentless engine of optimization and creative innovation that continually solves the problems of survival”. But technology is interested in more than survival. The intentional is open. That is, it is about “human free will and choice”. Thus, “It is the third leg, the collective choice of free-willed individuals, that provides the character of the technium” (Kelly's term for the sum of technology).
As “the collective choice of free-willed individuals”, it's hard to find a better example than Linux. What Linux wants, as a collective choice, is made clear by the distinction in kernel development between “kernel space” and “user space”, and how the former exists and improves to support the latter. The kernel's purpose is not to make anybody rich, or to make and break companies. (Although it runs in the credits of many who have done those things.) The purpose of Linux is to be useful. That's what Linux wants. That's what everybody who uses it gets. And, that's why the population of Linux uses and users only goes up.
Doc Searls is Senior Editor of Linux Journal. He is also a fellow with the Berkman Center for Internet and Society at Harvard University and the Center for Information Technology and Society at UC Santa Barbara.
Doc Searls is Senior Editor of Linux Journal
- Let's Go to Mars with Martian Lander
- Applied Expert Systems, Inc.'s CleverView for TCP/IP on Linux
- My Childhood in a Cigar Box
- Papa's Got a Brand New NAS
- Returning Values from Bash Functions
- Tech Tip: Really Simple HTTP Server with Python
- Rogue Wave Software's TotalView for HPC and CodeDynamics
- Panther MPC, Inc.'s Panther Alpha
- Debugging Democracy