Linux Distributions Compared
A Linux distribution is a package that contains the Linux kernel, application and utility programs and an installation method. While all distributions are based on the same or similar kernels and many of the same utilities, each distribution has something different to offer the consumer. Thus, while there really isn't a best distribution, there are distributions that are better for different users. In this article, we attempt to offer you enough information so you can select the distribution best for you.
Is this a cop-out? Are we shirking our duty? It has become clear to us that it would be hard for Linux Journal to rank the distributions; our staff members have different personal favorite distributions and defend their choices rationally—occasionally even argumentatively. At Linux Journal, we use Linux extensively—nearly exclusively—and we still don't agree which distribution is the best. We have different priorities, skills, and expectations, and we believe this is true of our readers as well.
Before we get too deep into this review, note that as this is being written, the Linux 2.0 kernel is about to be released (the scheduled release date is June 9, 1996). This new kernel offers some major enhancements. (See the interview with Linus in this issue for details.) The distributions will surely be updated to take advantage of this new kernel. Look for an updated review in the special Buyer's Guide issue of Linux Journal, which will be out in February 1997.
Some of the descriptive text that originally appeared in the March 1996 review article has been removed. If you want to look at all the information presented in that issue, it is available on our web site, /issue/0023.
Many new Linux users confuse the version of the distribution they are using with the version number of the kernel. As mentioned above, the Linux kernel is just one of the many pieces of software needed to create an entire distribution. Each distribution uses version numbers of its own to keep track of the state of the entire distribution, which has more to do with the collection of programs than with the particular kernel involved. Indeed, many distributions have included two or more different kernel versions in one version of the distribution.
However, it's worth understanding the version numbers used for the Linux kernel itself, since the kernel is a key part of any Linux distribution. Kernel version numbers come in three parts: the major version number, the minor version number, and the patch-level. The Linux kernel is being constantly developed by a large team of developers, and while they add new features, they occasionally introduce new bugs. To keep this from causing a problem for Linux users, the developers periodically dedicate several months to fixing bugs and creating a very robust, stable kernel. When this is done, a stable version is released with an even-numbered minor version number. The developers then begin adding features (and temporarily breaking things sometimes) to development versions with odd-numbered minor version numbers.
Unless you want to live on the “bleeding edge” of Linux development, you will probably want to stick with the latest stable kernel version. As of this writing, the latest stable kernel version is 2.0, but most distributions are based on the previous production kernel, which is 1.2.13.
Several vendors are adding value to existing distributions in various ways. For example, Caldera is adding commercial components to Red Hat Commercial Linux to create their Caldera Network Desktop. Trans-Ameritech bases their value-added work on Slackware, trying to make it easier to install.
One of the most common sources of confusion in the Linux world today involves binary file formats (See What is a binary file format?). Most vendors have now switched from the older “a.out” binary file format to the new “ELF” binary file format.
ELF is the binary file format used by Unix System V Release 4, but that doesn't mean a Linux binary in the ELF file format is compatible with SVR4, nor does it mean that SVR4 binaries can run on Linux. The capability for Linux to run some SVR3 and SVR4 binaries is provided by the BCS2 compatibility package, which most distributions include.
One of ELF's features is extensibility; with ELF, it is possible for developers to add features that weren't thought of when the format was first designed. For instance, one Linux developer has noted that he could add icons to ELF executables without breaking any software. Icons weren't considered when ELF was developed, but the format is extensible enough that they can be easily added.
But perhaps you don't care if you can add an icon to your ELF binary, or even if anyone else can. What does ELF do for you? Fundamentally, it makes life much easier for Linux developers. It also has a few esoteric features which make it practical to support some software under Linux that was previously impractical to support. So it gives you more and better software available for Linux.
What do we mean by based?
ELF-based means the entire distribution or, at least, almost the entire distribution, consists of ELF binaries. Binaries in the a.out format are not provided with the system, or if they are provided, they either aren't part of the “core” of the system or they are not available in ELF format.
By contrast, “supports ELF” means that, while the distribution is partially or completely built of binaries in the a.out format, the ELF programming libraries are included so that ELF binaries will also run.
|Designing Electronics with Linux||May 22, 2013|
|Dynamic DNS—an Object Lesson in Problem Solving||May 21, 2013|
|Using Salt Stack and Vagrant for Drupal Development||May 20, 2013|
|Making Linux and Android Get Along (It's Not as Hard as It Sounds)||May 16, 2013|
|Drupal Is a Framework: Why Everyone Needs to Understand This||May 15, 2013|
|Home, My Backup Data Center||May 13, 2013|
- New Products
- Linux Systems Administrator
- Senior Perl Developer
- Technical Support Rep
- UX Designer
- Designing Electronics with Linux
- Dynamic DNS—an Object Lesson in Problem Solving
- Making Linux and Android Get Along (It's Not as Hard as It Sounds)
- Using Salt Stack and Vagrant for Drupal Development
- Nice article, thanks for the
7 hours 51 min ago
- I once had a better way I
13 hours 37 min ago
- Not only you I too assumed
13 hours 54 min ago
- another very interesting
15 hours 47 min ago
- Reply to comment | Linux Journal
17 hours 41 min ago
- Reply to comment | Linux Journal
1 day 35 min ago
- Reply to comment | Linux Journal
1 day 51 min ago
- Favorite (and easily brute-forced) pw's
1 day 2 hours ago
- Have you tried Boxen? It's a
1 day 8 hours ago
- seo services in india
1 day 13 hours ago
Enter to Win an Adafruit Pi Cobbler Breakout Kit for Raspberry Pi
It's Raspberry Pi month at Linux Journal. Each week in May, Adafruit will be giving away a Pi-related prize to a lucky, randomly drawn LJ reader. Winners will be announced weekly.
Fill out the fields below to enter to win this week's prize-- a Pi Cobbler Breakout Kit for Raspberry Pi.
Congratulations to our winners so far:
- 5-8-13, Pi Starter Pack: Jack Davis
- 5-15-13, Pi Model B 512MB RAM: Patrick Dunn
- 5-21-13, Prototyping Pi Plate Kit: Philip Kirby
- Next winner announced on 5-27-13!
Free Webinar: Hadoop
How to Build an Optimal Hadoop Cluster to Store and Maintain Unlimited Amounts of Data Using Microservers
Realizing the promise of Apache® Hadoop® requires the effective deployment of compute, memory, storage and networking to achieve optimal results. With its flexibility and multitude of options, it is easy to over or under provision the server infrastructure, resulting in poor performance and high TCO. Join us for an in depth, technical discussion with industry experts from leading Hadoop and server companies who will provide insights into the key considerations for designing and deploying an optimal Hadoop cluster.
Some of key questions to be discussed are:
- What is the “typical” Hadoop cluster and what should be installed on the different machine types?
- Why should you consider the typical workload patterns when making your hardware decisions?
- Are all microservers created equal for Hadoop deployments?
- How do I plan for expansion if I require more compute, memory, storage or networking?