Linux DevCenter    
 Published on Linux DevCenter (http://www.linuxdevcenter.com/)
 See this if you're having trouble printing code examples


The ROCK Linux Philosophy

by Clifford Wolf
04/27/2001

Introduction

In the Summer of 1998, I was so disappointed with the existing Linux distributions that I started to develop my own distribution. Don't misunderstand me -- there are good distributions out there. But none of them gives a seasoned system administrator full control over his system. I would like to explain the main differences between ROCK Linux and most other Linux distributions in this article.

User-friendliness versus admin-friendliness

Unix/Linux is becoming more and more popular to the masses. The mainstream distributions are becoming increasingly user-friendly. But what does user-friendly really mean? In my opinion, it means that an end-user does not need an administrator to do basic administrative tasks.

That is a big improvement if you happen to be such an end-user. But it does not help you much if you are an administrator. In most cases an administrator spends a lot of time disabling all the user-friendly functionality of modern distributions. So I thought we also needed an admin-friendly distribution.

ROCK Linux aims to be admin-friendly. There is no YaST, Linuxconf, or Control-Panel. Configuration is done where it has to be done: in the config files. A configuration tool has to help an administrator -- not replace him (I don't think that it's possible to replace an administrator with a config tool.).

Size

Most distributions try to be (or to become) complete distributions bundled with all the packages available on the Internet. That is nice if you do not know what packages you need and would like to play around with. But it has also a few disadvantages:

  1. The distribution becomes complex and can't be always up-to-date because of the big maintenance overhead.
  2. It's much harder to keep the distribution clean and simple.
  3. It's harder for the user to separate the important stuff from the toys.

This is why ROCK Linux is split into two parts. The base distribution and the extension distribution:

The base distribution contains all the really common and widely used stuff (about 250 packages). Every patch and every line of ROCK Linux-specific code in this base distribution has been checked by a single person to make sure that everything fits together and works as it should. The base distribution is solid like a ROCK.

The extension distribution is a collection of packages to be installed under /opt/<pkg-name>. Most of these packages are maintained by other people independent of the base distribution. This makes sure there can be a big number of extension packages. (The extension distribution is a work in progress. Currently there are only a few extension packages, but the number is growing rapidly.)

Backward compatibility

Most Linux distributions try to be backward compatible (old libraries, old tools, etc). ROCK Linux doesn't. In ROCK Linux there is always one (the most up-to-date) version of the system libraries and utilities.

There are two reasons for ignoring compatibility issues in the base distribution:

Patches

Every distribution comes with its own patches to various packages. In some cases, there are so many patches and changes to the original packages that distributions become incompatible.

In ROCK Linux, I try to have a small number of patches: These are only there where they're needed to

Most Linux distributions add a big number of features to a package without contacting the package maintainer. So this feature stays distribution-specific and is not available on other distributions. In my opinion this is wrong. Traditional package development should be up to the package maintainer. If a Linux distributor changes something, it should be added to a package. The first step should be to contact the package maintainer and ask him to include the patch.

In most cases, package maintainers are happy about improvements or -- if they disagree to include them -- have a good reason for not including them.

Packaging

Unlike other Linux distributions, ROCK Linux does not use a special package format. The packages are simple *.tar.bz2 archives. The package metadata is stored under /var/adm/*:

This makes the package metadata easy to parse by third-party scripts.

However, ROCK Linux comes with the rpm and rpm2cpio programs -- so it's easy to install RPM packages by hand or to convert RPM packages to ROCK Linux *.tar.bz2 files.

Sub-distributions

In addition to the ROCK Linux base and extension distribution, there are also so called sub-distributions. These are Linux distributions for a special application which are automatically built from the base distribution. Currently there are two sub-distributions available: 1. The install disks, and 2. The ROCK Router distribution (a modular distribution on floppy disks designed for routers).

The following sub-distributions are planned for the near future:

Auto-build process

The focus of ROCK Linux was always to allow easy rebuilds of the entire distribution by typing a single command.

This auto-build process makes it easy to port ROCK Linux to new architectures, to optimize it for a special processor, and to update the whole system to a new system library or kernel.

The ROCK Linux Alpha port is being worked on.

System administration

While there is no configuration or administration utility in ROCK Linux, there are little helper applications which can be very useful for administrators:

Installation

ROCK Linux can be installed from CD, local disk, or the network (NFS, FTP or HTTP). The install disks (and the bootable CD) come with a big number of modules (SCSI, network, and PCMCIA). It gives you a root shell where you can create your partitions, format your filesystems and mount them under /mnt. This is done by fdisk, e2fs, and mount. Only the package installation itself is done by a helper application (the "ROCK Linux Install Shell") that lets you select your packages (using shell patterns) and install them.

Getting ROCK Linux

You can download the sources from the ROCK Linux homepage and the Mirrors. The binary distribution (generic i386-pc) can only be downloaded from the mirrors listed on the homepage. There is no binary distribution for the development snapshots.

Have fun with ROCK Linux!

Clifford Wolf started his relationship with computers 11 years ago and has been involved in Linux and GNU development for the last six years. Before he started on the ROCK Linux Project he worked as a Unix system administrator at a large Austrian ISP.


Return to the Linux DevCenter.

Copyright © 2009 O'Reilly Media, Inc.