The main differences between most distros are package management and init system. Almost all distros have some sort of package management, but not all distros keep track of dependencies for you (i.e. Slackware and some of its derivatives). Some distros operate on a rolling release with daily updates as software is updated upstream (e.g. Arch and Gentoo). This gives you bleeding edge software, but less time for testing means less guarantee of stability. Other distros issue fixed releases every now and then (e.g. Ubuntu and Slackware). Yet others offer you a choice of release type (i.e. Debian). Fixed releases provide more time for testing, and some distros are more stable as a result. Slackware and Debian stable in particular are known for their stability.
I don't know too much about the different init systems out there, but most distros base theirs off of the scripts from SysV UNIX or BSD. I like BSD-style config scripts (e.g. Slackware, CRUX, and Arch) since they're conducive to editing by yourself in a text editor. SysV-style scripts (e.g. Debian and Gentoo) are said to be better for automated configuration, which I get the feeling means automated configuration by GUI abstraction layers. Some distros use entirely different init systems (e.g. Ubuntu, which uses something called Upstart).
Most distros are pretty much the same except for their package managers and init systems. Some might come with specific X setups already installed and configured, but these are only the defaults. Ubuntu comes with GNOME, KDE, or Xfce preinstalled, but there's nothing to stop you from installing a fully keyboard-controlled tiling window manager like Ratpoison, Stumpwm, or dwm. Likewise, even though Arch boots to a framebuffer console by default, nothing's stopping you from installing X11 and even using KDE4 as your desktop environment.
I don't have much experience with hand-holding distros that aim to make the transition from Windows or Mac OS X easy (e.g. Ubuntu, openSUSE, Fedora, and Mandriva) since I made the switch from Mac OS X to Arch over a year ago, but here's a little comparison of some good distros that facilitate custom tailoring your Linux environment to meet your needs.
Debian: Comes in stable (fixed releases after extensive but possibly excessive testing and patching), testing (rolling release after several months of testing), and unstable (rolling release) versions. Most users will find stable too outdated except for server use and unstable too buggy for normal use (although Ubuntu is based off of Debian's unstable tree). It features a binary package manager (APT) with automated dependency resolution. Unfortunately IMO, Debian devs have a tendency to patch software programs a bit excessively, considering that the devs of those programs understand the code better than the Debian devs do. This might result in you not understanding your system that well.
Gentoo: A source based distro that aims to give you total control over your system. Its Portage package management system features automated dependency resolution that provides a lot of control (through a feature called USE flags) over which features of programs get compiled and which dependencies get built. This ability to install only what you need to keeps your system very slim. It's worth mentioning that some users claim a noticeable speed increase with Gentoo over binary distributions since you can use compiler-specific optimization flags for every piece of software compiled. It's arguable whether CFLAGS that optimize beyond, say, i686 create executables that run any faster. Installing software and, more importantly, keeping the system up to date can take a lot of time, however, due to the nature of source code compilation. Note though that Gentoo provides pre-compiled binaries for common programs to save time.
Arch: The distro that I currently use. Its binary based package manager called pacman uses packages optimized for the i686 and 64 bit x86 architectures, so it feels as fast as source based distros, but without the compiler overhead. Updates take seconds rather than hours. It also has a great source based package management tool called ABS (the Arch Build System) that works with pacman to let you customize programs how you wish. Arch also has a repository called the AUR where users can add their own build scripts for the community to use. Arch has an awesome BSD-style init system with a central /etc/rc.conf file, which was inspired by CRUX. There's a strong KISS focus (emphasis on minimalism) where the user is given as direct control of his Linux environment as possible. Arch is also one of the most up-to-date distros around, with updates sometimes available the day they come out. That means Arch doesn't test packages as extensively as some other distros, instead relying on upstream developers for bug fixes and such, which unfortunately sometimes results in instability as with Gentoo.
Slackware: Very stable, BSD-style init scripts, works on older hardware than Arch does, and it has a heavy emphasis on minimalism to the extent that its package management doesn't include automated dependency resolution. It is up to the user to install each and every package. It's officially a binary distro, but it doesn't have binary packages for a whole lot of modern software, so it's effectively a source based distro without dependency resolution. Nevertheless, slackbuild scripts automate the build process at least to some extent, and Slackware's strict attempt to use vanilla source code whenever possible results in one of the most stable Linux distributions on the planet. Slackware is great for servers and MythTV boxes, but if you don't feel the need to update software once you install it and get it working, Slackware might very well work for you as a desktop OS. If you don't want to wait between (long) fixed releases, you can use the -current branch, but I don't expect it to be as stable as the releases.
CRUX: The inspiration for Arch Linux. It's just about the most minimalist distro on the planet with a true KISS focus. It's source based like Gentoo, but it does not have the benefit of USE flags. It also doesn't run on (or at least have an official version for) a whole lot of architectures, including x86-64. Nevertheless, it's probably the purest Linux experience one can have shy of (or even including) LFS, and it has a great BSD-style init system with a central /etc/rc.conf file like Arch.
|
|
Bookmarks