Mozilla Skin

Slackware

From Linux & Open Source @ NUS

Contents

From Slackware.com

Slackware Linux is a complete 32-bit multitasking "UNIX-like" system.i It's currently based around the 2.4 Linux kernel series and the GNU C Library version 2.3.4 (libc6). It contains an easy to use installation program, extensive online documentation, and a menu-driven package system. A full installation gives you the X Window System, C/C++ development environments, Perl, networking utilities, a mail server, a news server, a web server, an ftp server, the GNU Image Manipulation Program, Netscape Communicator, plus many more programs. Slackware Linux can run on 486 systems all the way up to the latest x86 machines (but uses -mcpu=i686 optimization for best performance on i686-class machines like the P3, P4, and Duron/Athlon).

History

Slackware is one of the oldest distros around in Linux-land. First launched in 1994 (which actually wasn't too long after the release of Linux itself), Slackware was itself descended from that older, enigmatically-named distribution, Yggdrasil.

About

Maintained by its (almost) sole maintainer, Patrick Volkerding, Slackware focusses more on stability instead of the bleeding edge-ness that younger distros seem to crave. Releases of Slackware are almost guaranteed to run right on install, as Patrick (or Pat, as he's affectionately called on the forums), does tonnes of testing before officially releasing each, um.. release.

Apart from stability, Slackware also boasts quite a high level of compatibility for lower-end hardware, seeing as it's binaries are compiled for the i486 (or even i386). So for those who have old machines they wish to convert to servers, Slackware's a good choice.

We must also mention another of it's traits here, and that would be simplicity. Quite a few people who try out Slackware for the first time complain about its sparseness, it's lack of a fancy graphical installer, lack of consolidated software repositories, lack of community development.. etcetera etcetera.. Slackers usually just look on in amusement and carry on with their lives. The point is, Slackware aims to be a straightforward,to the point, distro on which you can build and add on your favourite toolsets and applications. It doesn't make any attempt at all do do any hand holding and mollycoddle users along. If know what you're doing, good for you. If you don't, learn. If you want hand-holding, check out DistroWatch =)


Installation

Installation is simple and straightforward, using a console-based, ncurses interface. It's menu driven, and uses can choose to select a Full (where every single package is installed), Expert (where groups of packages are shown at once, while users simply select those they wish to install) and Newbie (where only the core packages are automatically installed, while the rest are presented to the user with documentation. This can be tiresome, after reading the docs for 50 packages in a row, but it's a great way to learn about your system)

The process is quick (except, perhaps, the Newbie option), and you can expect your system to be up and running within the hour.

Up till the most recent release (Slackware 10.2) though, Pat has used a 2.4 kernel as the default instead of the more common 2.6 kernel found in other distros. This is reportedly due to stability issues with the 2.6 kernel. Nevertheless, Slackware has always been 2.6-ready. (The 2.6 kernel can usually be found in the testing/ directory on the install CD). But seeing as there's a 2.6.x 'stable' branch of the 2.6 kernel, we may soon see a default 2.6 kernel with the upcoming Slackware (11.0?) release.


Running

Init scripts

One thing that would perhaps initially strike users as different about Slackware as compared to more common distros would be the format of its startup scripts. While distros like Red Hat and Debian (and derivatives) use System V style scripts (think /etc/init.d), Slackware uses the more 'traditional' BSD-style init scripts (think /etc/rc.d).

Take starting the ssh daemon for instance:

BSD-style init

# /etc/rc.d/rc.sshd start

System V init

# /etc/init.d/sshd start


In a nutshell, while BSD-style inits are simpler and speedier, there really isn't an easy way to set a new service (say, httpd) to run on start up, or at a designated runlevel. Most likely, you'll need to write your own script, and then manually edit the runlevel script (eg. /etc/rc.d/rc.4 for runlevel 4).. which, while possibly being a nail-biting first experience, is actually quite simple, provided one reads the included comments and examples.

System V init scripts on the other hand, are more modular, and can quite easily be fine-tuned to dictate which services run at each runlevel. The tradeoff here is a slightly more complicated system.

For more info, you can read this article about init-scripts on the venerable Wikipedia.


Administration

Apart from start up scripts, much of the day-to-day running of a Slackware installation doesn't really differ much from other distros, especially if running through the GUI.

Under the hood, Slackware users probably more in touch with editing configuration files by hand (/etc soon becomes your favourite directory, next to /boot)


Package Management

This is often a point used against Slackware's detractors. The complaint often is that without software repositories, it becomes difficult to maintain and upgrade the system. Many people think the installing new software or upgrading those on a Slackware install involve lots of compiling from source, but that isn't necessarily the case. (In fact, the people who spend the most time compiling stuff are Gentoo users)

While it's true that Slackware doesn't have the repositories that Debian and Red Hat users are used to, and compiling from source does become necessary at times, all is not despair and gloom.

Enter the package software

In Slackware, binaries are distributed using the TGZ format and are managed on the system using Slackware's in-house package management software.

pkgtool and its associates, installpkg and removepkg allow the system administrator to do just that, install and remove packages. pkgtool comes with an ncurses interface that further allows the administrator to view all installed packages or run setup scripts again.