1. Chatting / Instant Messaging with Linux

1.1 History of chatting

Many normal users think that GNU/Linux is not for them,
but only for geeks. One reason for this is they believe they can not do
the basic things like chatting under GNU/Linux. They believe that there
are no Instant Messenger clients for Yahoo, MSN, and ICQ in GNU/Linux,
but this is absolutely wrong - chatting was actually first implemented
in UNIX. (Linux is a UNIX like free/open operating system).

talk was the first chatting program developed from UNIX long
ago when there was no MS trying to capture the Internet. The computing
world was a free land then, and you could share any program with any one,
you could change them too to suit your needs - much like what
Free
Software is trying to do. talk is still available with UNIX
& GNU/Linux .

From talk, other chatting concepts were developed. IRC was the
first to be developed,then other companies came and hence ICQ, Yahoo, MSN,
Jabber, AIM etc. chat systems were developed.

I shall try to touch on each of the chat systems here.

1.2 talk

It is the most basic chat system but still popular
in LAN's. If you are in a college or office and can access only a UNIX
or Linux terminal then you can chat with your friends. First of all the
talk server daemon must running.

To chat with your friend then all you have to do the following
[anirban@anirban anirban]$ talk <username>@host <tty>i.e. if the user name is raj (it will the same as the login name to
the system) and his host computer is www.anyhost.com then it will be
[anirban@anirban anirban]$ talk raj@www.anyhost.com

You may be wondering what tty is? Suppose your friend opened
many terminals - the terminal in which you want to send the message is
specified by the tty number. Numbers start from 0 and only integers are
allowed.

You can do the above with write too.
[anirban@anirban anirban]$ write <username@host> <tty>

If you want not to receive any chat invitition or any chatting then
you have to give the command.
[anirban@anirban anirban]$ mesg nto remove the blocking you have to do
[anirban@anirban anirban]$ mesg y

If you a GUI lover and a heavy Yahoo or MSN chatter then you may not
like this kind of chatting, but for many of us who like GNU/Linux this
old system is still gold.

1.3 IRC or Internet Relay Chat

After talk came IRC and it is still
popular. I think that if you really want a high class chatting experience
without the flooding or other bad stuff of Yahoo and MSN, then IRC is the
thing for you. Also, there are many rooms (known as channels in IRC) from
where you can get really good help on GNU/Linux, C/C++ programming, maintaining
your Linux box and much more. (As an aside, in my personal experience I
was a Yahoo chatter and did not get any thing more than flooding and 4
or 5 guys running for a girl in the room. But from IRC I received really
good help when I was stuck. IRC can really be a great source of help.)

1.3.1 Basic concept of IRC

IRC is a little bit different from Yahoo or MSN chat
since IRC is not owned by any company. It is free/open like GNU/Linux and
generally run by volunteers.

The main difference is that you do not have to sign up to get a ID or
password. So what do you do instead? Choose a nickname and a host (IRC server)
to connect to. Since it is not run by a single company you have to know the
host address, like you have to know the URL to visit a page on Internet. You
can get the addresses of different hosts from the internet and also to which
topic
it is dedicated; for example,
irc.openprojects.net is dedicated to the betterment of open source
projects and open source developers.

So you have to provide your nickname and the host you want to connect
to. If the nickname you pick is already taken then you'll have to provide
another nickname.

IRC newbies should check out the
IRC Primer
before using IRC for the first time.

1.3.2 Software for IRC

There are many IRC chat applications available but
I think Xchat is the best. Most distributions provide it with
their installation CDs and it is often included in default installations.
If it isn't already installed, fear not; you can find it in the installation
CDs or download it from
http://www.xchat.org.
You will generally find it in RPM format so installation will not be difficult.

1.3.3 Configuring Xchat

After installation type xchat in a terminal
or click the xchat icon (you will find it in `Main Menu > Internet
> Chat').

The first window of Xchat will appear. Provide the nickname you would
like. You can provide more than one. In case a nickname is already taken
in a room xchat will use the other nickname you provided, else it will
pick the first nickname in the list. You also can provide your real name
and as which user you want to use it - (generally you do not have to provide
all these; the system guesses it for you from your system login name and
real name).

Now choose a host from the list of hosts and double click it or click
on `Connect' at the bottom. A new window will open with some text
flowing in it. It will take a little time to connect, then after connecting
it will show the rules you should follow to chat in this host. Since IRC
generally is a volunteer effort by good-at-heart people and not by any
company, please try to follow it or else you may get banned. Maintainers
of IRC chat rooms are very strict about the rules. (That is why chatting
experience is much better here than yahoo or MSN).

Now you will see a single line text box where you can write both what you
want to say, and also commands to navigate.
Commands all start with a / (ie. slash). To get the list of
rooms (or channels) in the host type /list . You will see all
the rooms, choose the one which suits you and then type /join #<roomname>
and then click `Enter'. Please note that you have to always give
the number sign (#) before any room name.

Now you will enter that room and start chatting. At the extreme right
there will be the list of all users/chatters in that room; selecting any
one will get info about him /her. You will find many buttons at the right
side of your chat window, by selecting a user and clicking the buttons
you can ban or block a user, get info about him/her, invite him/her in
a personal chat or even transfer files in IRC.

So I think you will now be able to chat in IRC. Some day you may even
meet me in IRC. I generally live in the host irc.openprojects.net and in
the room linux (you have to give a number sign ie. # before joining ie.
/join #linux).

1.4 Instant Messaging

1.4.1 ICQ

There are several ICQ
chat clients in GNU/Linux, and Licq is one of the most popular.
You will find it inside the internet or network sections of the main menu
i.e. KDE main menu ( so `Main Menu > Internet/Networking > Instant
messenger') or just type licq in a terminal. After starting
for the first time it will want you to register to their server to get
a ID and password. Then you can login with that ID and password as you
do with most of the Window's versions of ICQ clients.

1.4.2 Yahoo!

Yahoo provides its own yahoo messenger for Linux and
it is similar to the windows version except that you may find some features
missing. To get more details go to yahoo.

Since it is similar to the windows version you will find `Add Friends,
Your Status, Ban' etc buttons in their usual places, generally as
part of a menu at the top of Yahoo Messenger. Currently you can send files, invite
people to group chat, and get email notifications.

1.4.3 AIM

Kit
is the AIM client for Linux (KDE). You will find it in the main menu under
network / internet or just type `kit' in a terminal. At the first
startup it will ask you to create a profile and if you do not have a account
in AOL it will ask you to create one by going to their site. The current
version of Netscape also has a built-in AIM client.

1.5 All-In-One IM Clients

1.5.1 Everybuddy

Do you use or need several different instant messaging
clients? Everybuddy is an Open Source IM client that supports AIM, ICQ,
MSN, Yahoo!, and Jabber chat, as well as having some file transfer capabilities.
In other words, a single Everybuddy client can take the place of several
single-purpose clients. It is included (and often installed by default)
with some distros, or you can download it from the Everybuddy
homepage.

1.5.2 GAIM

GAIM is another all-in-one client resembling AIM that
works with AIM, ICQ, MSN, Yahoo! and more. If you don't have it already
installed, check out your installation CDs or go to the
GAIM
website.

2. Printing

2.1 Which Printer to Use

First check to see if your printer is supported by
Linux. Most Epson, HP, and Canon printers will be supported, though there
are some cheap printers which have less hardware hence need special software
to simulate the hardware. This special software isn't generally available
for Linux, so you cannot use these printers. But I would not recommend
you buy these types of printer anyway since their performance is less than
normal printers.

You can find the list of printers that are supported by GNU/linux at
linuxprinting.org.
I have used RH 7.3 and a HP 810c Printer here as an example.

2.2 Connecting the Printer to the Computer

After choosing the printer, check how it connects
to the computer; that is which interface it uses, eg.USB (universal serial
bus) or parallel port. Most printers use parallel port, but modern printers
generally have both options. My printer (HP 810c) can be connected to the
computer by parallel port or USB - I chose the parallel port interface.
After connecting the printer comes the software part.

2.3 Installing the Printer

A standard installation of Red Hat (any version from
6.1) will contain the required software for installing the printer, but
old versions of the software can be difficult to configure. Here I will
focus on RH 7.1 to Rh 7.3 using KDE, though it can also be done from GNOME.

2.3.1 Configuration Program

Now to install printer do the following:

In KDE click the `kontrol panel' on the desktop and then click
`Printer
Configuration'.

Click `New' and a printer configuration wizard will appear (In
RH 7.1 and 7.2 a wizard will not appear but a new window will appear; however,
the procedure is almost the same).

Next you have to specify the kind of printer that you want to add, that
is
`Network Printer' or `local Printer'. Choose local
printer since the printer is attached to the machine from where you are
configuring it. You have to also specify a name to identify the printer.
A name must only have alphabet characters, numbers, "_" (i.e underscore
) and "-"(i.e hyphen). Now click `New'.

If it is a normal printer the interface it uses will be automatically detected.
If not, specify it. For example if it is on the first parallel port it
will be /dev/lp0, if it is in the second parallel port it will
be /dev/lp1 and so on. Now click `Next'.

Next choose the driver for your printer from the given list, you will find
drivers for most normal printers. Different brands of printers (like HP,
Canon, Epson, etc) are listed; choose the appropriate brand and then expand
it by clicking the
`arrow' at the left side of the brand name
or double clicking the brand name.

Choose your printer from the list and expand it to find the driver. Now,
you may find more than one driver has been created for your printer by
different people. Generally choose the driver supported by your brand,
eg. the driver named "hpijs" is supported by HP and although other drivers
also work "hpijs" works better.

Next click `Finish' and you will be back to the main window. Now
click `Apply' and then choose `Save Changes' from File
in the main menu. ( i.e `File > Save Changes').

Now choose `Restart lpd' from File in the main menu (i.e `File
> Restart lpd'). It will restart the printer daemon or process and
your system will be ready for printing.

You can test if the installation of printer was successful by selecting
`test'
in the main menu.

3. Installing and Managing Software with RPM

3.1 What is RPM?

RPM stands for Red Hat Package Manager,
and is an easy to use and widely adopted tool for installing, deleting,
upgrading, querying and building software packages. There are other systems
in use (Debian's DEB for example), though RPM is by far the most popular,
and is what you'll get with Red Hat, Mandrake, SuSE and some others.

3.2 What is a Software Package?

Under GNU/Linux, programs are often distributed as
single files known as RPM packages. These packages contain the actual program
files, its documentation or manual pages, a summary of what the program
does, menu entries and icons, plus information on where each file in the
package should be installed. The package also contains information on any
other files requires to run the program (dependencies), disk space
required and so on. It's not unusual for a program to consist of a hundred
or more files, so you can see that packaging them all into a single RPM
file greatly simplifies the tasks of adding or removing programs. When
you install an RPM package, it is uncompressed and broken down into its
individual files which are then put into their correct places. RPM also
checks to see whether other files necessary to run the new package (dependencies)
are present. Another feature of RPM is the building and maintenance of
a database of all packages installed on your computer. This means that
you can quickly check to see which packages are installed, the files belonging
to a particular package, or the package that provides a particular file.

3.3 Using RPM

You can use RPM from the command line, or if you prefer
point'n'click, there are several graphical tools available. KDE has a particularly
good one named kpackage; there are similar apps for users of other
desktop environments, and distribution builders such as Mandrake have their
own RPM front ends. I tend to use kpackage for removing un-needed packages
to free up disk space, and the command line for everything else; but it
doesn't really matter which tool you use. There are significant advantages
to becoming familiar with using RPM from the command line; firstly it will
be available on any RPM based system you may encounter, regardless of the
desktop environment installed, plus it allows you to manage packages on
machines that can't or don't run X. The ability to use wild cards (eg.*)
to install multiple packages from a group at once is another feature of
the command line - for example
rpm -ivh mysql*

Just remember that generally speaking, you'll need to be running as
root to install, upgrade or delete packages. However any user can run queries.

3.4 Installing Packages

In all the examples below, we'll use the Mozilla web
browser package as a sample. To install it, first navigate into the directory
holding the package, either from the command line or a graphical file manager.
This directory might be one of your Linux installation CDs, or your home
folder if you've downloaded the package. Using the command line, you would
type:
rpm -ivh mozilla-0.9.8-10mdk.i586.rpm (your version of Mozilla
might be different..)
Note that you only need to type in the complete file name when you
are working with a package that is not yet installed, otherwise the basic
package name (in this case "mozilla") is enough. And don't forget the tab
key to auto-complete the long file names. If you prefer graphical tools,
clicking on the RPM file in most file managers (Konqueror for example)
will open the appropriate tool, or you can right click and use the "Open
With" dialog box. It's then just a matter of clicking the `Install'
button.

3.5 Updating Packages

Updating an existing program with a later version
is done in almost exactly the same way as installing. From the command
line:
rpm-Uvh mozilla-0.9.8-10mdk.i586.rpm (note the uppercase
"U")Or click the `Update' button from kpackage or similar tools.

3.6 Downgrading Packages

What if you upgrade, and then find that you preferred
the older version? You can use the `"--oldpackage"' option from
the command line like this:
rpm -Uvh --oldpackage mozilla-0.9.8-10mdk.i586.rpm.

3.7 Uninstalling Packages

Or start your graphical tool, either from the menu or a terminal. You'll
see a list of all the installed packages. Click on the package you want
to remove, then click the `Uninstall' button. Note that if there
are other packages installed that require files from the one you are deleting,
a warning will appear and the uninstall won't go ahead. You can override
this by using
rpm -e --nodeps mozilla (command line),
or selecting "Ignore Dependencies" (GUI tool), but be aware that this
will break the other programs.

3.8 Querying packages

Listing all installed packages is easy. From the command
line type:
rpm -qaIf the list is too big to view you can pipe it through less like this:
rpm -qa | lessGraphical tools will usually show the list of installed packages on
start up.

3.8.1 Listing all of the files installed by a package

This is done with the rpm -ql command. Using
mozilla again as an example we would type:
rpm -ql mozillaUnder a GUI tool just select the package and then click on the " File
List" (or equivalent) button. Listing all of the files supplied by a package
not yet installed - is done with the rpm -qpl command. Requires
the complete file name.
Eg. rpm -qpl mozilla-0.9.8-10mdk.i586.rpm.

3.8.2 Listing a description of an installed package

can be performed with the rpm -qi command.
For example:
rpm -qi mozilla.
Using a GUI tool, just click on the desired package. To see a description
and other information of an package not yet installed, use the rpm
-qpi command. You'll need to use the complete file name for this one.
For example:
rpm -qpi mozilla-0.9.8-10mdk.i586.rpm.
With a GUI, select the package, or just click on the file from within
your file manager (eg. Konqueror)

3.8.3 To find the package to which a file belongs

To find the package to which a file belongs is done
with the rpm -q --whatprovides command. Example:
rpm -q --whatprovides/usr/lib/mozilla/xpicleanup

3.8.4 To list all the packages a package depends on

Use rpm -qR like this:
rpm -qR -mozilla(For a package not yet installed use rpm -qpR, with the full
file name )

3.9 Resolving Dependency Problems

The most common problem encountered when installing
software is an unsatisfied dependency. You might be already familiar with
this problem if you've installed new software under Windows and then found
it refuses to run, with a "missing ***DLL" error message.

GNU/Linux is subject to the same problems, except that RPM will advise
you of the problem before the program is installed. Many problems can be
avoided when you install Linux - selecting Gnome and KDE for installation
will help, even if you don't intend to run them, as many other programs
use the same libraries.

So what do you do when RPM complains that a package can't be installed,
because of missing packages or files. Write down the missing package/file
names, and check your installation CD-ROMs for packages with similar names
to the ones required. You can use the rpm-qpl command to view
the files supplied by a not-yet-installed package. Often it is just a matter
of installing these packages to resolve the problem. Sometimes, though,
it leads to even more dependencies, so it can be a rather lengthy process.

3.10 Using RPMFind and RPMBone

There is another extremely useful tool for finding
files and packages, and that's the RPMFind
website. Type the name of the needed file or package into the box on
the main page and click on the search button; you'll then be presented
with some relevant information and links to the package. Often you'll already
have the package on your Linux CDROM - using the information from RPMFind
you'll know which one to look for. RPMFind can provide a list of dependencies
for a package; the file names in this list link back to their parent package.
Usually, there is also a link to the package's home site. RPMBone
is another site that's useful for finding and downloading RPM packages,
and is somewhat similar to RPMFind. RPMBone has a more flexible search
function; you can narrow down your search to only give results for a certain
distribution or architecture for example. It also provides links to a huge
number of ftp servers for downloading. If you need to find a package containing
a particular file to satisfy a dependency, however, RPMFind should be your
first stop.

3.11 Circular Dependencies

Occasionally, you might come across a circular dependency.
This is when package A won't install because package B is missing, but
when you try to install package B, RPM complains that package A is missing.
What you do here is use the `--nodeps' option. For example:
rpm -ivh --nodeps mozilla-0.9.8-10mdk.i586.rpm.
If you are using a GUI tool, click on the "Ignore Dependencies" button.

3.12 Library Version Problems

Sometimes a package will refuse to install because
it requires a library file version later than the one already installed.
This is easily fixed by upgrading the package to which the file belongs.
While library files are usually backwards compatible, occasionally a package
will refuse to install because a certain version of a file is missing,
even though a later version is present. While you could downgrade the library
package, this might well break other programs. Try creating a symbolic
link with the name of the older library file that points to the existing
newer version. If for example the package you are trying to install insists
on having foo.so.3, and you already have foo.so.4 installed
in
/usr/lib, do this (as root): ln -s /usr/lib/foo.so.3 /usr/lib/foo.so.4

3.13 Automatic Dependency Resolution Tools

Automatic Dependency Resolution Tools are available
with some distributions. Mandrake for example has `urpmi', RedHat
has `up2date',while Ximian has
RedCarpet.
There are also tools like apt4rpm.
These can automatically download and install required packages for you.
See your distributions documentation or the relevant website for details.

3.14 Miscellaneous

3.14.1 RPM Version Incompatibilities

You probably won't have to worry about this unless
your Linux installation is fairly old. Earlier Linux distributions were
packaged with version 3.x of RPM, and are unable to handle the later 4.x
series of packages. The exception to this seems to be version 3.05, you
could update RPM to this version, or just replace your distribution with
something newer. The RPM 4.x series is backwards compatible with the older
series.

3.14.2 Midnight Commander

Occasionally you might want to copy files from an
RPM package without actually installing it. You can do this with a file
manager known as mc (for Midnight Commander). Despite being somewhat
ugly, it is extremely capable. It is supplied (though not always installed
by default) with most distributions, and can be started from a terminal
window by typing mc. You can then navigate around the package
as if it was a normal folder, and copy individual files from it.

3.14.3 Learning More

This article only covers the bare basics of RPM, if
you'd like to learn more you could read the RPM manual page (type man
rpm), or follow the links below:
RPM
One Liners - A concise guide by Brian Jones, worth downloading and
printing for reference.
The RPM HOWTO
- The "official" HOWTO at the Linux Documentation Project.
Maximum RPM - An extremely
thorough guide to just about anything that can be done with RPM. (All these
resources were used in the writing of this article)

4. Playing and Recording Music

It's easy to enjoy music with Linux, whether you are
playing an audio CD, an mp3 or OGG files you recorded yourself onto CDR
or hard disk. You can download tracks, or copy them from your own audio
cds. While there are plenty of tools for audio work under Linux in both
command line and GUI form, I'll be mainly concentrating on the command
line as these tools are available on nearly all Linux distributions. Familiarity
with the command line tools will also make configuring GUI programs much
easier. I'll assume you already have a sound card installed and working.

*Warning*Breach of copyright is taken very seriously in most parts of the world
- this article in no way encourages users to break the law.

4.1 The Basics

Since much of this story involves CDs, perhaps we
should start with a brief look at both audio and data CDs.

Ordinary audio CDs like the ones you'd play in your home stereo differ
from data CDs in that the music is recorded onto the disk as raw data,
that is, there is no file system on the disk. That's why if you put an
ordinary audio CD into your CD drive and try to read the contents in a
file manager, you won't find anything. Your computer is looking for a file
system where there is none. An audio CD doesn't need to be mounted to be
read or burnt - unlike data disks.

Data CDs on the other hand use a file system to organize the way in
which the data is written to and read from the disk, similar to the file
system on a hard disk. Music files in formats such as .mp3, wav, or ogg
are written onto data CDs using a file system just like any other CDROM.
These CDs can be opened in a file manager or from the command line, and
the music played using the appropriate program.

4.2 Playing Audio Cds

There are several GUI tools available for playing
audio CDs. For example Gnome has gtcd, KDE has kscd,
and xmms can also play CDs if you have the audio CD plugin enabled.
These can be started from the Multimedia section of your menu. From the
command line you could try the cdplay program, though it's not
very intuitive. Read the manual page (man cdplay) to find out
more. Or you can simply use the `play/skip/stop' buttons on your
CD drive to play audio CDs.

4.3 Playing MP3 Files

The mp3 format is a hugely popular way of storing
and sharing music. One reason for its popularity is its compact size compared
to other formats or conventional audio CDs. A typical mp3 file is usually
only about a tenth of the size of the same file in .wav or audio CD form.
This means you can fit the equivalent of ten audio CDs on a single CD using
the mp3 format. Other advantages include the reduction in space used when
storing music on a hard disk, and the smaller file size also makes transferring
files over a network much more practical. The disadvantage is that mp3
CDs can't be played on most normal CD players (although mp3 compatibility
is starting to appear on some portable Walkman type players), so you can
only play them on your computer. The most popular player for Linux is probably
xmms, an excellent clone of the Windows Winamp player.

4.4 Using XMMS

Xmms (XMultiMedia System)
is a widely used multi purpose sound file player that is included with
most common distributions. It's mostly used for playing mp3 files, but
it can do much more than that. It is also capable of playing wav files,
ogg-vorbis files (an open source alternative to mp3), streaming
audio etc. Starting xmms can be done from the menus (look under "Sound"
or "Multimedia"), or from a command line just type xmms. The interface
is much like that of a CD or tape player, with buttons and sliders to control
starting, stopping, pausing. skip, repeat, volume, balance and so on. It
also includes an equalizer function (the `eq' button) and allows
you to set up play lists. To choose a track to play, hit the L
key or press the eject ("^") button. This brings up a window allowing
you navigate to the folder holding your music files. Once there, you can
select a track or tracks to play, or you can choose to play every file
in the folder. As well as the audio options, xmms also has visual options,
and different skins can be selected to change the appearance of the player.
It can even use Windows Winamp skins. Despite the multitude of options,
xmms is exceptionally easy to use. If you want to explore its options and
capabilities, click on the small O on the left hand side of the
display.

4.5 Recording (or ripping) Tracks from Audio CDs

There are several tools for recording audio CDs to
hard disk. You can record a single track, selected tracks or the entire
CD at once. The music will be converted to a file format that can be read
by your computer (usually .wav) as it is recorded. While there are both
command line and graphical tools for the job, my favorite is the command
line program cdparanoia. If you prefer GUI tools, you might like
to check out grip. One of the things I particularly like about cdparanoia
is the way it can correct jitters or skips on marked or scratched disks.
Here are some examples of how to record tracks from an audio CD using cdparanoia:
To record a single track type:

cdparanoia n

`n` specifies the track number to record. By default the track will
be recorded to a file named cdda.wav. If cdda.wav already exists
it will be overwritten, so be careful if you are recording several tracks!
You can specify your own file name like this:

cdparanoia n filename.wavTo record the entire CD type: cdparanoia -B

The -B in the above command simply ensures that the tracks are put into
separate files (track1.wav, track2.wav etc.). Cdparanoia has many more
options and an easy to understand manual page; type man cdparanoia
to read it.

4.6 Converting .wav files to mp3

If you intend to burn files to an audio CD, you should
leave them in .wav format. On the other hand, if you want to play them
from your hard drive, or burn a data CD that you'll play from your computer,
you'll probably want to convert them to the mp3 format to save space. One
of the most popular tools for this is bladeenc. To convert a .wav
file into a .mp3 use this command:

bladeenc filename.wav

This will produce a file with the same name as the source file, but
with the .mp3 suffix. If you want to specify a destination filename you
can add it to the end like this:

bladeenc filename.wav filename.mp3

By default, bladeenc will encode the file at 128kbit/sec, this is the
most commonly used bitrate and results in a very compact file of reasonable
quality. Higher rates can be specified, giving a better sound quality at
the expense of a slightly bigger file size, though it's hard to detect
any improvement in sound quality using sampling rates above 160kbits/sec.
To convert a file at 160kbits/sec use:

bladeenc -160 filename.wav

4.7 The Ogg-Vorbis Format

Ogg -Vorbis is a completely free and open alternative
to the mp3 format. The sound quality is at least as good as mp3, and ogg
files can be played on players such as xmms. You'll need the vorbis-toolspackage
(check your distributions installation CDs) to convert .wav files to .ogg.
Converting is easy:

oggenc filename.wav

As with bladeenc, the sampling rate (and sound quality) can be specified.
This is done by using the following command:

oggenc -q n filename.wav (where n is the quality level)

The default level is 3, but can be any number between 1 and 10. Level
5 seems to be roughly equivalent to an mp3 encoded at 160kbits/sec.

4.8 Converting .mp3 files into .wav format

Audio CDs are usually burned from a collection of
.wav or .cdr files - you can't directly burn mp3s to an audio cd unless
you convert them to one of these formats. The mpg123 program can
do this for you and is often installed by default with many distributions.
To convert an .mp3 to a .wav, type:

Note also that there is some slight loss of sound quality when a .wav
file is converted to mp3 format, and this isn't regained when converting
back to .wav - so if possible, you should try to use .wav files that have
been ripped from an audio CD rather than converting back from mp3s.

4.9 To Normalize a group of .wav files

Creating an audio CD using tracks from different sources
can lead to variations in volume amongst the tracks. By using a program
named
normalize, you can equalize the volume level of a group of
files. You'd normally do this to a group of .wav files before burning them
to CD. Normalize is a command line tool; to equalize the volume of all
the .wav files in a folder type:

normalize -m /path/to/files/*.wav

4.10 Recording (or burning) an Audio CD

I'll assume that you have a CDR or CDRW drive installed
and configured already - if you don't, see the links section at the end
of this article for more information on set-up details. I'll also assume
that you'll be using cdrecord to burn your disks - it's the most
popular tool for this and is also what's used by most graphical front-ends
like
XCDRoast etc. Your files will need to be in .wav or .cdr format;
most likely they will be .wavs. Put all the files you want to burn into
a separate folder to simplify the burning process, and make sure that they
will fit onto the disk (you can check by changing into the folder and running
the du command). Now it's just a matter of typing this command:
cdrecord -v speed=4 dev=0,0,0 -audio -pad *.wav

Of course, your speed and device numbers might be different - you can
use cdrecord -scanbus to find the device address, and the speed
setting will depend on your CD burners' speed rating. In general, burning
will be more reliable at slower speeds, especially on older machines.

4.11 Recording a Data CD (mp3 or ogg)

If you only plan to play a music CD on your computer
or other mp3 capable device, you can burn mp3 or ogg files in exactly the
same way as an ordinary data CD. Because data CDs use a file system, we'll
use
mkisofs (to create the file system) and cdrecord
to burn the disk. As in the audio CD example above, put all the files into
a separate folder. The two operations can be combined into a single command
like this:

Don't forget the hyphen at the end! As in the example for burning audio
CDs, you might have to use different speed and dev numbers. Older or slower
computers might have difficulties running both mkisofs and cdrecord at
once - if so you can do it as two separate operations like this:

5. Linux in the Office

Office applications for Linux are now quite mature.
Linux desktop productivity tools are in fact so capable and feature rich
that corporations are beginning to look at alternatives to MS Office with
its high TCO, and leaning towards office suites like OpenOffice and StarOffice.
OpenOffice in fact is a part of discussion being held between multiple
companies including Boeing Aeronautics, a major international technology
contractor, to begin to define a standard for Office document formats.
Allowing greater portability of documents between office suites; XML of
course is being discussed as the most viable vehicle for the mission. But
I digress, to sum it up, if someone wishes to do all of their word processing,
spreadsheets, and so on on the Linux desktop they would find themselves
very satisfied with today's applications.

5.1 Word Processing

User's choices for word processing on Linux are varied
and diverse. To list several applications would probably only begin to
scratch the surface of what is available. So in an effort to simplify things
I will include a review of those applications with which I have experience
and list a few more with which I do not. In addition all of the Word Processors
I have used in the past are Microsoft Word compatible - meaning that they
can both read and write MS Word documents. This will come in handy for
all those who are afraid they will never be able to open a '.Doc' (Word
Document) once they move over to Linux.

5.1.1 StarOffice Star Writer

StarOffice is an office suite written for Unix / Linux
and developed by Sun Microsystems. Until recently StarOffice was a freely
available download but recently with their newest version (I believe StarOffice
6.0) they have begun charging a license fee. I haven't used StarOffice
6.0 but I am familiar with the final release just before it. StarOffice
is a functional Office suite with many additional features. When you first
open StarOffice you are presented with a screen very similar in appearance
to the MS Windows desktop complete with 'Start' bar. StarOffice provides
the full suite of functionality including word processing, spreadsheets,
email, and MS PowerPoint-like presentations. And again, any and all documents
written in StarOffice can be saved in the equivalent MS Office format so
you lose no compatibility with co-workers / family members / unconverted
Windows- but-soon-to-be-Linux users. StarOffice, along with all the other
applications I review here provides a very similar interface to MS Word.
So there is little to any learning curve involved with using it. In fact
the only real difference between the list of applications reviewed here
and those in MS Office is how well the applications can read and write
in the MS format. StarOffice does a very adequate job of processing MS
Word documents. The only area where StarOffice runs into trouble is reading
and writing MS Word documents that have tables embedded in them or those
containing forms. However if it is merely straight text, such as a report
there is typically no problem involved. But it is my unconfirmed suspicion
that even this has changed now that you can pay for StarOffice. Again I
have not checked this first hand but I believe the reason Sun now charges
for StarOffice is because they paid Microsoft for the APIs that allow StarOffice
to read and write MS Office documents. Up until now the formats have merely
been reverse-engineered, kind of a best guess at how to interpret the symbols
in a MS Word document. For more information, and to confirm / deny my crazy
allegations check out StarOffice at http://www.staroffice.com.

5.1.2 OpenOffice Writer

OpenOffice is a spinoff of Sun's StarOffice (as the
name may suggest). And like StarOffice, OpenOffice also provides a suite
of applications including word processing, spreadsheets, and MS PowerPoint-like
presentations. OpenOffice also supports the reading and writing of MS Office
documents. Recently I rewrote my resume (and being a Linux-only kinda guy
I of course couldn't use MS Word) using OpenOffice. This consisted of multiple
fonts and font sizes, the embedding of tables so as to properly position
the many elements of my resume, and also included bullets. After completing
my resume I proceeded to save it in both the native OpenOffice format as
well as the MS Word 2000 format. Of course before shipping it out to employers
I wanted to check to see how it would look in MS Word. So when I went to
work the next day I proceeded to open it using (the very expensive) MS
Word 2000. Much to my surprise, with the exception of some bullets the
resume had made it through quite well. All the tables were properly in
place, the fonts well represented in their multiple sizes, and the only
thing wrong with the bullets was that instead of the
`>' arrow
I had originally had, it was replaced with a round bullet (I guess perhaps
that MS Word didn't support the particular type of bullet I had specified.)
So OpenOffice (if you absolutely refuse to pay for software) will do very
well for your Office and Word Processing needs. More can be learned about
OpenOffice (you can download a copy of OpenOffice from here too) at http://www.openoffice.org.

5.1.3 AbiWord

The only complaint I can really make concerning AbiWord
can be summed up in one word - tables. While AbiWord does support tables
the interface and handling of tables has a long way to go. Otherwise AbiWord
is much like StarOffice and OpenOffice. Reads and writes simple MS Word
documents, very MS-like interface, etc. Another nice feature of AbiWord
is its support of Gnome themes; a feature that neither OpenOffice or StarOffice
provide.

5.2 Others Word Processors

5.2.1 Kword

Kword is part of the KOffice office suite for the
KDE desktop. It has all the usual bells and whistles, frames, numbering,
bullets, tables, paragraph alignment, etc. However from what I can see
at on the webpage KOffice does not support reading and writing of MS Word
documents. If you would like to learn more point your browser to
http://www.koffice.org

5.2.2 Corel WordPerfect

WordPerfect was once the dominant word processor for
PCs, and the latest available version for Linux is WordPerfect2000. It
is a fully featured application and is unusual in that it is not Linux
native, but is essentially the Windows binaries running under a built-in
version of Wine. For this reason, it may not be as stable or fast as some
of the others. You can find out more about Corel WordPerfect 2000 at:
http://linux.corel.com/products/wpo2000_linux/index.htm

5.3 Spreadsheets

Spreadsheets are possibly the most widely used Office
program, and as with word processors, Linux users have several quality
offerings to choose from.

5.3.1 Gnumeric

Gnumeric is the GNOME projects spreadsheet, and it
is a mature and stable program. Compatability with MS Excel files is quite
good, and gnumeric is often installed by default with many distros, or
at least is available on the installation CDs. A good choice for those
who don't want to install a big, fullblown suite like Star/Open Office.

5.3.2 StarOffice/OpenOffice Calc

The Calc spreadsheet is another very competent office
tool, with very good Excel compatability. Possibly the best choice for
heavy duty spreadsheet users.

5.3.3 kspread

Koffices' spreadsheet, kspread, is a good looking,
powerful app, however its Excel compatability is somewhat limited, so if
this is important to you, perhaps one of the others would be a better choice.
Otherwise an excellent spreadsheet.

5.4 Other Office Applications

The number and quality of office type apps. has grown
rapidly in the last couple of years. Some of these are listed below, along
with a brief description and links. Most people will probably find these
will meet their needs, though some may find they are dependant on certain
features of Microsoft Office apps. that just aren't available under Linux
yet. For these users, a proprietary product known as
Codeweavers
Crossover Office allows MS Office (as well as some others) to be installed
and run directly from Linux. I've only listed the more well known programs
here, and some of these are probably already installed on your computer.
If you need to install them, most of these packages can be found on your
installation CDs, otherwise just follow the links. The KDE apps listed
here are mainly included in the
koffice
package, while the GNOME programs are usually separate packages.

5.4.1 Address Books

5.4.2 Fax Apps

There is `kfax' with KDE, gfax
for GNOME. Programs like hylafax and mgetty+sendfax are also popular.

5.4.3 Email/PIM

Outlook users will probably be most interested in
Ximians'
Evolution,
a fully featured email/PIM program.
There is also a proprietary add-on for Evolution named Connector, and
this can enable Evolution to function as an MS Exchange client. As well
as email, it has address book, calendar and task-scheduling/alarm features.

5.4.4 Drawing/Graphics

Dia
is a structured diagrams program similar to Visio, while
Sketch
is a vector drawing package.
KDE has
Kontour (another
vector drawing tool), Kivio
for flowcharts, and KChart
kchart for drawing charts/graphs.

5.4.5 Financial

Gnucash
is a popular personal finance manager, though there are several others.
And if you just can't survive without Quicken, you'll be pleased to know
it will run under Linux using Codeweavers Crossover Office.

5.4.6 Database

postgreSQL
is included with distros such as Mandrake and RedHat, also there is
MySQL,
a somewhat simpler database.
As well, there are databases such as
Interbase,
and
Firebird
a free, open source version of Interbase.
The big names like
Oracle
and IBM (DB2
for Linux) support Linux too.

5.4.9 Calculators

Xcalc is a scientific calculator desktop accessory that can emulate
a TI-30 or an HP-10C. Xcalc can be started from a terminal emulator or
from the Run dialog box by typing xcalc. It takes the following
command line argument (among others)

-rpn

This option indicates that Reverse Polish Notation should be used. In this
mode the calculator will look and behave like an HP-10C. Without this flag,
it will emulate a TI-30.

GNOME Calculator is a double precision calculator application. GNOME
Calculator is included in the gnome-utils package, which is part
of the GNOME desktop environment. It is intended as a GNOME replacement
for xcalc. To run GNOME Calculator, select gcalc from the Utilities submenu
of the Main Menu in GNOME, or type
gcalc on the command line in
a terminal emulator or Run Program dialog box.

KCalc can be started by typing kcalc on the command
prompt or in the Run Program Dialog box.

5.4.10 PDF Files Viewer

PDF (Adobe's Portable Document Format) is a format
for transfering documents with formatting (including fonts, sizes, etc)
with a few more extra features (such as URLs). It is a quite common format
for publishing documents - it is generally quite difficult to edit such
a document, but relativly easy to show it, as it already contains an exact
definition of the document (somewhat similar to postscript). There are
a number of viewers for PDF documents under GNU/Linux.

5.4.10.1 XPdf

`xpdf' supports most of PDFs features, including
LZW-compressed images URLs and encryption. It can be started from command
prompt by typing xpdf. xpdf's home is at
http://www.foolabs.com/xpdf/
. It also comes with a number of distros, including RedHat, Mandrake and
SuSE.

5.4.10.2 Adobe Acrobat Reader

This is not free software (although it can be used
free of charge for non-commercial use). Free software gives you permission
to use, copy, study and improve the software. You can learn more about
Free Software
here.

6. Gaming With Linux

Okay, you've got your word processor and spreadsheet
set up under Linux, plus a web browser, an email client and a million other
boring programs. But what about the important stuff? Where are the games?
Most people probably wouldn't think of Linux as being a gamer's platform,
and it's true that the real hard-core gamer might need to stick with a
dual boot system for the time being at least. But for the rest of us, Linux
can offer a great environment for playing games. There are plenty of good
ones on offer, and accelerated 3D is no longer a pain to set up for many
common cards. And now that lots of Windows games are playable using emulators
like WineX, we've never had so much choice.

6.1 Where to Get Them

Most distros come with a variety of games, and you
probably have some already installed. Look in your GNOME or KDE menus under
"Games" or "Amusements". If you don't have any installed, check your installation
CDs for packages named "kdegames" and "gnome-games". These packages include
a wide variety of games ranging from Arcade style games (Tetris and Jezzball
clones, Snakerace etc.), board games (Chess, Mahjongg, Reversi and so on),
to card games, plus games to test your strategic skills and much more.
As well as the ones in the KDE and GNOME packages, some distros include
others like Maelstrom, Bzflag (a popular tank game), FrozenBubble (one
of my favourites), and even 3D games such as Tuxracer and Chromium. Browse
the package directory of your distro CDs to see what's available. There
are also lots of games freely available from the internet, plus some commercially
produced/ported titles for sale.

6.2 Commercial Games

A few companies make or have made games available
to Linux users. Perhaps the best known of these was Loki, who are sadly
no longer in business. Loki ported quite a few popular titles to linux,
(QuakeIII Arena, HeavyGearII, Descent III etc), and you might even find
some of them still available for sale. Probably the best way to find out
what's available is to check out online stores like
TuxGames.

6.3 Hardware and Software Requirements

Broadly speaking, games can be split into two groups;
those that require accelerated 3D support, and those that don't. The first
group would include 3D games such as QuakeIII, UnrealTournament, Tuxracer
and so on, while the second group includes the 2D style of games such as
those found in the GNOME and KDE game packages (and of course the old style
text games would be in this group too). Games in the 2D group don't need
anything special to run them; if you can run GNOME or KDE you'll have no
problems. The 3D games however are much more fussy about what they'll run
on; as well as having enough RAM and CPU power, you'll also need a Linux-supported
3D graphics card (or on-board chip). Individual game requirements vary
widely, but as rough guide, the recommended minimum for QuakeIII is a 233Mhz
CPU with an 8meg graphics card and 64 meg. of RAM. Keep in mind that this
is the bare minimum required just to run the game; you'd probably need
to double those figures to get reasonable performance.

Setting up 3D graphics with Linux used to be a bit tricky, but now many
modern distros will set up the appropriate drivers during installation,
giving accelerated 3D out of the box. When you are setting up your machine,
keep in mind that it isn't the brand of graphics card you have that is
important, but rather the brand of chipset it uses. In other words, you
would use ATI drivers for a card with an ATI chipset, regardless of its
brand. Currently, most Linux gamers seem to prefer nVidia based cards,
and with good reason. NVidia write their own (closed source) drivers for
Linux; these are easy to install and set up and their performance is generally
on a par with their Windows counterparts. ATI based cards are also popular,
and ATI have recently released unified drivers for Linux users with their
higher end cards. Check out
this
site to see what cards are supported. As well as suitable hardware,
you'll also want to use a recent version (>4.0) of XFree86. Later versions
have much better 3D support, so if you are having problems an XFree86 upgrade
should be one of your first steps.

6.4 Setting up NVidia Based Graphics Cards

As I mentioned earlier, nVidia based cards have become
a favourite amongst Linux gamers. While these cards will usually work perfectly
out of the box for normal 2D work, you'll probably have to install nVidia's
drivers to get accelerated 3D. Some recent distros will install these for
you during installation of Linux; even so, you might want to read on so
you can update to the current drivers. These drivers are "unified", ie.
the same drivers are used for all versions of nVidia based cards. Before
you start, you should check that you are running a reasonably recent version
of XFree86. There are two drivers that will need to be installed, the NVIDIA_kernel
package and the NVIDIA_GLX package. The kernel package is available in
several versions to suit most common distros; if there isn't one to suit
your distro you can also get tarballs. And if you aren't sure which package
to get there is a script you can download from nVidia that will advise
you of the best package to use.

Once you've downloaded the packages, you should exit X (not strictly
necessary, but it makes recovery easier if things go wrong..) and install
the kernel package and then the GLX package. If you are upgrading rather
than installing, nVidia recommend removing the old GLX package first instead
of upgrading over it. Now all you need to do is edit a couple of lines
in your XF86 configuration file (usually this will be /etc/X11/XF86Config-4).
Assuming you already have an XF86Config file working with a different driver
(such as the 'nv' or 'vesa' driver that is installed by default), then
all you need to do is find the relevant Device section and replace the
line:
Driver "nv" (or Driver "vesa")with
Driver "nvidia".
In the Module section, make sure you have:
Load "glx"You should also remove the following lines:
Load "dri"Load "GLcore"if they exist. Now restart X to use the new drivers. If you have any
problems, check the `XF86' log file (named ` /var/log/XFree86.0.log'
or similar) for clues. Also read the documentation on the nVidia website
and in the README file included in the NVIDIA_GLX package.

6.5 Playing Windows Games With Linux

Some well known games produced for windows have Linux
binaries available (Return To Castle Wolfenstein etc). The Linux binaries
allow you to install the data files from your Windows game CD, and then
run the game directly from Linux. Some games include the Linux binaries
on the CD (rare, but hopefully this will become commonplace), or you may
have to download them.

Another way to run Windows games is to use an emulator like Wine, or
WineX. The list of programs that will run well under Wine is growing steadily,
though for gaming you'll probably be more interested in WineX by Transgaming.
WineX is a commercial offshoot of the Wine project, and while Wine aims
to enable Windows programs in general to be run under Linux, WineX focusses
exclusively on games. Many Windows games install and play perfectly with
WineX, including Max Payne, Warcraft III, Diablo II, The Sims etc. There
is a list of games at the TransGaming
website, however I have found that there are some games not listed that
will still play under WineX. Try searching
Google
for name of game + winex for help on unlisted games. You can download
the WineX source from the CVS tree for free, but compiling and configuring
can be confusing for a newbie. Much better is the precompiled packages
that are available to subscribers. Subscriptions cost US$5 per month, with
a 3 month minimum. There are some other benefits to subscribers, though
I think the binaries alone are worth the price.

6.6 Links

Obviously this has been no more than a very brief
overview of Linux gaming; see the sites listed below for more info.

The
Linux Gamers HOWTO - I can't recommend this one highly enough; if you
are serious about gaming with Linux, read this doc!
Linux for Kids - This site
has lots of links and info about games and educational apps. You don't
have to be a kid to enjoy this stuff - adults will probably find some good
stuff here too.
The Linux Game FAQ - A
comprehensive list of Frequently Asked Questions about Linux gaming.
The Linux Game Tome
- Definitely worth a look!
New Breed Software
- Bill Kendrick and co. have written some good games, mainly for kids.
Racer - is a promising race car
game with extremely good graphics and physics. Not finished yet, but still
playable, and makes a nice change from the shooters.
Transgamings Winex HomepageLinuxGamers is another interesting
game site.

7. The Post-Install Tune-up

Many Linux distributions install lots of stuff that
many people never use. Often there are services or daemons set to run that
aren't needed, and system configuration settings are conservative so as
to run on the widest range of hardware. All these things can detract from
your Linux desktops performance, and that's what this article is about;
getting more performance from your box by performing a post-install tune-up.
Here's what we'll be doing:

You don't need to do all these things by the way, only those that
you need or want to, the rest are optional. Be aware that if your box is
reasonably configured to begin with (and most distributions are, out of
the box), you are unlikely to get a dramatic improvement from any one of
these things.

However, by doing some or all of them you should end up with a system
that boots more quickly, has more disk space and slightly more free memory,
and a small but noticeable improvement in performance. The one thing you
can do that will have a profound effect on performance is run lightweight,
efficient software, so you should make that your first priority when building
a fast Linux desktop.

7.1 Disclaimer

I don't guarantee the accuracy of anything that follows,
so use this information at your own risk. In other words, if by following
this guide you trash your computer, don't blame me.

7.2 Before You Start

I'll assume you'll be running a SysV type system, as this is
the most common and what you'll have if you are running a Red Hat-type
distribution. SysV simply refers to the way services etc are started at
boot time. If you are running some other system, you can still clean up
the boot process; check your distribution's documentation for details.
It's a good idea to browse through any documentation that came with your
distribution anyway. This might be in the form of HTML files or a printed
manual, and with many modern distributions is very comprehensive. The documentation
should be able to provide you with details of any variations to the boot
process used by your particular distribution, though I think the common
distributions are pretty much all the same in this regard.

If this is a fresh installation, you should make sure all your hardware
is properly configured first. Linux has really come a long way as far as
hardware recognition goes, and chances are you won't have to do anything,
though things like sound cards sometimes have to be setup manually. Once
you are sure everything is going to work, you can continue with the tuning
....

7.3 The Boot-Up

We probably should start with a brief description
of what actually happens when you boot your Linux box. You can skip this
bit if you want to, but I think an understanding of what goes on at boot-up
can often be helpful, so stick around ....

After the kernel is kicked into life by GRUB or LILO or whatever, the
following steps occur (with possible minor variations):

The kernel gets it's own internal systems set up.

The init program is started.

init reads the `/etc/inittab' file. This file provides init with
the default run level for the system (eg console, graphical, single-user
etc.) Take a look at `/etc/initab' yourself so you understand
what the various run levels do.

Depending on the default run level (from `/etc/inittab'),
init
then starts or stops all the services in that particular run level directory.
For example, if runlevel 5 is the default according to `/etc/inittab',
then all the scripts in `/etc/rc.d/rc5.d/' are run.

init then runs another script (usually `/etc/rc.d/rc.local')
. This is where the user can put stuff that he/she wants to be started
automatically at boot-up. You might want to start your OSS sound driver
from here for example. Users of older versions of Mandrake can edit this
file to get rid of that damn ugly penguin ....

This is a bit over-simplified, but I hope you get the idea. If you take
a look at the scripts in `/etc/rc.d/rc5.d' (or whatever your default
runlevel is), you'll see that the names of the scripts all start with an
S(for Start) or a K(for Kill or stop) followed by a number.
The number determines the order in which the scripts are run. Most distributions
start a diverse range of services or daemons at boot time, and while this
automatically covers the needs of the majority of users, it also means
that there will probably be several processes started that aren't required.
This results in longer boot-up times, increased memory usage, and more
potential security holes. Stripping un-needed stuff from the start-up scripts
is easy; the hard part is determining what does what, and what you do and
don't need. Hopefully the listing below will be of some help, it notes
some of the most commonly found services and gives a brief description
of what they do. And don't forget to make backups or notes of your changes,
just in case you find you really did need to have that daemon started after
all
.... (this list is courtesy of Stan and Peter
Klimas' Linux Newbie Administrators Guide)

anacron

checks cron jobs that were left out due to down time and executes
them. Useful if you have cron jobs scheduled but don't run your
machine all the time--anacron will detect that during bootup.

amd

automount daemon (automatically mounts removable media).

apmd

Advanced Power Management BIOS daemon. For use on machines, especially
laptops, thatsupport apm.

automatic task scheduler. Manages the execution of tasks that are executed
at regular but infrequent intervals, such as rotating log files, cleaning
up /tmp directories, etc.

cupsd

the Common UNIX Printing System (CUPS) daemon. CUPS is an advanced
printer spooling system which allows setting of printer options and automatic
availability of a printer configured on one server in the whole network.
The default printing system of Linux Mandrake.

listens for service requests on network connections, particularly dial-in
services. This daemon can automatically load and unload other daemons (ftpd,
telnetd, etc.), thereby economizing on system resources. Newer systems
use xinetd instead.

isdn4linux

for users of ISDN cards.

kerneld

automatically loads and unloads kernel modules.

klogd

the daemon that intercepts and displays/logs the kernel messages depending
on the priority level of the messages. The messages typically go to the
appropriately named files in the directory
/var/log/kernel.

kudzu

detects and configures new or changed hardware during boot.

keytable

loads selected keyboard map.

linuxconf

the linuxconf configuration tool. The automated part is run if you want
linuxconf to perform various tasks at boottime to maintain the system configuration.

lpd

printing daemon.

mcserv

server program for the Midnight Commander networking file system. It provides
access to the host file system to clients running the Midnight file system
(currently, only the Midnight Commander file manager). If the program is
run as root the program will try to get a reserved port otherwise it will
use 9876 as the port. If the system has a portmapper running, then the
port will be registered with the portmapper and thus clients will automatically
connect to the right port. If the system does not have a portmapper, then
a port should be manually specified with the -p option (see below).

named

the Internet Domain Name Server (DNS) daemon.

netfs

network filesystem mounter. Used for mounting nfs, smb and ncp shares on
boot.

network

activates all network interfaces at boot time by calling scripts in
`/etc/sysconfig/network-scripts'.

nfsd

used for exporting nfs shares when requested by remote systems.

nfslock

starts and stops nfs file locking service.

numlock

locks numlock key at init runlevel change.

pcmcia

generic services for pcmcia cards in laptops.

portmap

needed for Remote Procedure Calls. Most likely, you need it for running
network.

postfix

mail transport agent which is a replacement for sendmail. Now the default
on desktop installations of Mandrake (RedHat uses sendmail instead).

random

saves and restores the "entropy" pool for higher quality random number
generation.

routed

daemon that manages routing tables.

rstatd

kernel statistics server.

rusersd, rwalld

identification of users and "wall" messaging services for remote users.

rwhod

server which maintains the database used by the rwho(1) and
ruptime(1)
programs. Its operation depends on the ability to broadcast messages on
a network.

An http proxy with caching. Proxies relay requests from clients to the
outside world, and return the results. You would use this particular proxy
if you wanted to use your linux computer as a gateway to the Internet for
other computer on your network. Another (and probably safer at home) way
to do it, is to set up masquarading.

syslogd

manages system activity logging. The configuration file is
`/etc/syslog.conf'
.

smtpd

Simple Mail Transfer Protocol, designed for the exchange of electronic
mail messages. Several daemons that support SMTP are available, including
sendmail, smtpd, rsmtpd, qmail, zmail, etc.

usb

daemon for devices on Universal Serial Bus.

xfs

X font server.

xntpd

finds the server for a NIS domain and stores the information about it in
a binding file.

ypbind

NIS binder. Needed if computer is part of Network Information Service domain.

Many users will find they have a lot of unnecessary stuff in their
/etc/rc.d/rc*.d/
folders. If you aren't sure if you need something or not, just move it
somewhere else temporarily (but don't delete it), re-boot and see
how things go. If you find that you do need it, just move it back and re-boot.

7.4 How To Make The Changes

I usually just fire up a file manager and make a new
folder in
/etc/rc.d called JunkFromRc5 or something similar.
Then I just drag the unneeded scripts from /etc/rc.d/rc5.d/ into
the new folder (obviously my default runlevel is 5, you might need to use
something different..). Alternatively, you can use a graphical tool like
tksysv, or perhaps your distribution has it's own tool. You might
also want to edit `/etc/rc.d/rc/local'. Apart from user's entries,
this often has a few lines that overwrite `/etc/issue' with some
system specs (and/or that hideous penguin), and the contents of the
`/etc/issue'
file are displayed just before the login screen. Many people prefer to
delete this bit and insert a line to display a fortune here instead, eg.
/usr/games/fortune > /etc/issue. As usual, if you aren't sure
what you are doing, make a backup copy of the file first.

7.5 Re-Claiming Hard Disk Space

This bit is easy, if a little time consuming. I usually
start by getting rid of unneeded software packages. Fire up your favorite
package management tool (like kpackage) and spend some time browsing
through the list of installed programs. Tools like kpackage are ideal for
this kind of work as they can easily show you the size of each package,
a summary (so you know what the package is for), and any related dependencies.

Do you really need six editors, four file managers, five shells, three
ftp clients etc.? Don't be surprised to get rid of a hundred megs or more
of stuff. Packages like the Tex related ones, Emacs/Xemacs, and various
emulators are never used by many, yet they occupy lots of space. If you
are doubtful about removing some packages, keep some notes so you can re
install them later if you have to.

Many distributions also install lots of documentation (check out
/usr/doc
or /usr/share/doc ). You'll probably find that there are only
a few files in there worth keeping, and remember most of this stuff is
available on the Web anyway. The du tool is invaluable for finding
disk hogs. Also look for core files left over from crashes; these are only
really useful to debuggers and can be deleted.

7.6 Hard Disk Tuning

I've seen a few articles claiming huge performance
gains from using
hdparm, a command line tool for setting (IDE)
hard disk parameters. The claimed gains are sometimes in the order of several
hundred percent. While I'm not doubting these figures, I have to wonder
whether they just indicate that the disk was horribly mis-configured to
start with. I've tried using hdparm on a few disks, and have found modest
gains in performance. Keep in mind that disk performance is only one factor
in overall system performance, and even a fairly big jump in disk performance
might not make a perceptible difference to the overall speed of your system.
If a disk was noticeably slow, I would certainly give hdparm a try, but
otherwise I wouldn't worry about it too much. Some common distributions
already set some of the optimizing parameters at boot time anyway, so as
I said before, unless you think there is a problem, you could probably
just leave well enough alone. If you do decide to give it a go, make sure
you read (and understand) the man page (at a terminal emulator type man
hdparm), and be aware that with some of the adjustments there is a
small but real risk that things can go spectacularly wrong, ie. corruption
of the file system. If you'd like to give hdparm a try, here's the basic
usage:
hdparm [-flag] device

Running hdparm without any flags (or with the -v flag) will
display the current settings. To see the current settings for my first
hard disk (/dev/hda) for example, I would use: hdparm /dev/hda.
To do a basic check of the speed of the first hard disk I would use: hdparm
-Tt /dev/hda. Some more commonly used flags:

-c3

Enables IDE 32 bit I/O support

-a [sectcount]

Get/set sector count for read ahead

-m16

Sets multi-sector I/O (in this example 16 sectors, you may need to experiment
to find the optimal number for your disk)

-u1

Unmasks interupts

-d1 -X34

Unable DMA mode2 transfers

-d1 -X66

Enable UltraDMA mode2 transfers

Read the man page for more options.

I guess the logical way to use hdparm would be to find out what your
disk supports, then set hdparm accordingly. More commonly though, trial
and error is used, changing one setting at a time and measuring the performance
after each change. Don't use settings recommended by someone else ; while
they may have worked perfectly on that persons disk, your disk might be
completely different and the results may not be good. There are several
tools available for testing disk performance, one of the better known ones
is bonnie. And remember the changes will be lost when you re-boot,
so if you want to make them permanent, you'll have to add them to a boot
script like `/etc/rc.d/rc.local'.

7.7 Filesystem

Linux updates a last access time attribute
every time you open a file. If you are after all the speed you can get,
and you are sure you don't need this feature, you can add noatime
to the mount options listed in `/etc/fstab'. For example:
In the `/etc/fstab' file add the line /dev/hda5/ ext2
defaults,noatime 11 if you do not wish to update last access time
on the files in /dev/hda5partition.

7.7.1 Alternative Filesystems

You might have tried (or read about) alternatives
to the traditional ext2 file system, and at present the most common seem
to be ReiserFS and Ext3. These have some advantages over ext2, including
quicker performance, so if you are about to start a new Linux installation
you should certainly consider using the Reiser file system. However, as
with hdparm, unless you are doing something unusually disk intensive, the
gains are likely to be minor, and if your current system is doing the job
I'd stick with it.

7.8 Kernel Recompilation

This is another one of those things that is often
recommended in the Linux tune-up guides. While it may have been important
years ago, it is probably of questionable value now that modular kernels
are the norm. So unless you need to compile in some special feature, or
you are using a pre-historic non-modular kernel (in which case you could
probably benefit from updating your Linux installation), I wouldn't bother.
Most recent distributions come with a variety of optimized kernels, and
automatically install the one that best suits your system. Of course, you
might want to recompile just for its sheer geek entertainment value, and
I guess that's as good a reason as any.... I won't go into the details
of kernel compilation here, check your distribution's documentation or
the
Kernel HOWTO for
details.

7.9 Miscellaneous Tips

This article has only covered the very basic stuff
- if you are interested in reading some much more detailed info about configuring
Linux read the
Configuration
HOWTO.

If you are serious about tuning your Linux box, you'll need some benchmarking
tools. To get started, take a look at this site:
The Linux Benchmarking Project.

Obviously you'll be aiming to conserve memory as much as possible. Use
the free command from a terminal emulator to see memory usage
details. Ideally, you'll be able to balance usage against available memory
so that swap isn't used.

You can save some memory by using a plain background on your desktop,
rather than an image file.

Other useful tools are ps -aux (shows details of running processes),
and top (similar to ps but continually updates).

Help reduce the time it takes X to update the screen on low-end machines
by not using a greater colour depth than necessary, eg. use 16bit instead
of 32 bit. You can check X's performance with x11bench, which is often
installed by default.

8. End Note

These are only a few of the chapters that we have
covered in our HOWTO "Doing Things In GNU/Linux". You can get the
complete HOWTO from here,
or here. If
you find any mistakes, please mail mail your suggestions to
lunatech3007 at yahoo dot com . This HOWTO needs active
participation from the readers and I welcome suggestions, praises and
curses. Feel free to ask for help on a topic - just check that your
question isn't answered here first . If you don't understand the any
topic please tell us, so we can explain it better. General philosophy
is: if you need to ask for help, then something needs to be fixed so
you (and others) don't need to ask for help.

Raj Shekhar

I have completed my Bachelor in Information Technology from University
of Delhi. I have been a Linux fan since the time I read "Unix Network
Programming" by Richard Stevens and started programming in GNU/Linux in my seventh
semaster . I have been trying to convert people right, left and center ever
since.

Anirban Biswas

I am Anirban Biswas from Calcutta, India. I have been using Linux for 4 years
(from RH 6.1 to RH 8.0, then to MDK 9.0). Currently I'm in the
final year of computer enginnering.

Jason P Barto

I am from Pittsburgh, Pennsylvania and have been using Linux for 7 years. My
first distro was Redhat 3 or something like that. back when configuring the X
server was a real adventure. I'm currently an avid Slackware fan, and have been
working in software development for Lockheed Martin Corporation for three
years.

John Murray

John is a part-time geek from Orange, Australia. He has been using
Linux for four years and has written several Linux related
articles.