Linux distributions are mostly the same. Most of the differences are administration-related. The other differences tend to have a historical significance.

BSD vs. SysV

init

Probably the biggest difference between distributions is in the boot process. All Linux distributions tend to be BSD-ish, since the GNU tools are BSD-ish, but most of the major distributions use SysV-style init scripts.

BSD init runs one big rc script that starts all daemons on boot. This makes sense if you come from a DOS background, since it more-or-less corresponds to DOS's autoexec.bat. From an administration standpoint, BSD-style booting is completely unmanageable. Slackware and Stampede both use BSD-style rc scripts, much like older BSD-based Unixes such as HP-UX before 10.

SysV init uses a much more manageable approach. Each runlevel (a separate machine state, like shutdown (runlevel 0), single-user (runlevel 1), multi-user (runlevel 2), etc.) has its own directory under the /etc/rc.d (usually on Linux) or /etc (on the Unixes) directory. Each directory, named rc[0-6].d, contains symbolic links with names like Knnfoo and Snnfoo, where nn is a number and foo is a script in /etc/rc.d/init.d or /etc/init.d. When the system enters a particular runlevel, init runs each K script with a "stop" options, then runs each S script with a "start" option.

This system takes a bit of getting used to, but it is very clean, and works incredibly well. It also makes things like Red Hat's "ntsysv" (a terminal-based runlevel editor) trivial to implement.
Red Hat's ntsysv

All of the major distributions, including Red Hat, Debian, Caldera, S.u.S.E., use SysV init scripts. In the Unix world, Solaris, SCO, HP-UX (10 and higher, although they have to be different and put things under /sbin instead of /etc), and others use SysV init scripts.

ps

One place Linux definitely shows a BSD leaning is in the ps command. The BSD options for a full process listing are "aux". Under SysV, you would use "-ef". All of the Linux distributions use the standard Linux procps, which uses the BSD options. Most of the commercial Unixes use the SysV-style options, including SCO, HP-UX, and AIX. This is one of the few really hard things to make yourself remember when switching between Unixes.

shutdown

I haven't quite figured out if the differences in the options for shutdown are a BSD vs. SysV thing, or if nobody can make up their minds. On Linux, you halt the system immediately with "shutdown -h now". On SCO, you'd use "shutdown -y -g0". HP-UX uses "shutdown -h -y 0". (It could be that HP decided to keep their old BSD-style shutdown in 10.20. I haven't quite figured out why they would stick with a BSD feature here and not anywhere else though.)


Individual Distribution Notes

Red Hat

Red Hat is one of the oldest distributions still around. It first came out in late '94.

Red Hat have several things specific to it, good and bad, that make it unique. Here's a short list:

Red Hat is also one of the only glibc-based distributions (and was also the first).

S.u.S.E.

S.u.S.E. probably has the best language support, since it is originally a German distribution, but is now also sold heavily in the US. It originally was Slackware-based, so it still shows some of that heritage. Currently, it looks much more Red Hat-like, mostly because it uses rpm.

S.u.S.E. has been shipping with KDE as the standard desktop since one of the early betas came out.

Debian GNU/Linux

Debian is the official GNU Linux distribution. It is entirely maintained by volunteers. The Debian Project also has very strict guidelines, known as the Debian Free Software Guidelines, for what can be included in the main Debian distribution.

Debian has a package management system that is in some ways much more advanced than rpm.

Debian is around the same age as Slackware, although there wasn't an official, stable Debian release until relatively recently.

The recently-released Debian 2.0 is also glibc-based.

Caldera OpenLinux

Caldera's distribution was, at one time, just a slightly more professional-looking version of Red Hat with some added software. It has evolved a bit, especially after Caldera bought a UK-based Linux distributor who had received POSIX certification for their distribution. (The name of this distribution escapes me at the moment.)

Caldera's distribution still bears a strong resemblance to Red Hat, although they have also started shipping KDE with their distribution, unlike Red Hat.

Stampede

Stampede's primary claim to fame is that it is pgcc-based. Currently, pgcc is a patched egcs with added optimizations for Pentium-based systems. This would be great, except that they decided to invent their own package management system, and also have tried to be as close to Slackware as possible.

Stampede originally showed some promise, but now it just seems like a slightly more up-to-date version of Slackware maintained by a bunch of kids who haven't learned from the other Linux distributions.

Slackware

Slackware is probably the oldest distribution that is still maintained. It started out as a patched version of SLS, one of the truly ancient distributions. Patrick Volkerding, the maintainer of Slackware, eventually modified the installation procedure heavily. In 1994, Slackware was by far the best Linux distribution (with the possible exception of Bogus, a short-lived distribution created by Rik Faith). Unfortunately, Slackware has gone absolutely nowhere since then. It has no package management, no GUI administration utilities, still uses broken BSD-ish init scripts, and is generally horribly out-of-date.

If it doesn't show, I highly recommend against using Slackware.

Steven Pritchard
steve@silug.org