Back to table of contents

Linux

Nicholas FitzRoy-Dale
Standing on the worthy shoulders of Anand Kumria
And Peter Meric

What is Linux?

From the README

Linux is a Unix clone written from scratch by Linus Torvalds with assistance from a loosely-knit team of hackers across the Net.

At least, that's the executive summary, but only if you're a particularly boring executive. Linux is the fastest-growing operating system in the world, supports more types of hardware than you've had hot dinners, and is the OS of choice for research projects and, increasingly, business applications. Some of the world's finest young technical minds are devoting time to improving it, often when they should be working on their assignments instead.

Why do I care?

Linux appeals to people for different reasons. I got started using Linux because the available Microsoft OS of the day --- Windows 95 --- crashed all the time. Windows has been pretty stable since Windows 2000, but I'm still running Linux as my primary OS both at home and work20.1. Linux is incredibly configurable, which appeals to the tinkerer in me, it has a ridiculously large collection of software available to it, some of it very good, and it is well-documented - or at least, the popular bits of it are.

There are many other reasons to like it: some would say that the best part about Linux is that most Linux software comes complete with source code. Others would point out that it is a great way to learn about UNIX-like operating systems - probably the most entrenched and stable breed of OSes in the word - and might also note that Linux is becoming increasingly prevalent in business.

How do I ...

Get hold of it?

A number of ways: FTP, CDROM, floppy disks, or NFS.

But first, what exactly is it? Technically, Linux is (only) a UNIX-like kernel20.2. The Linux kernel contains device drivers, and is also in charge of scheduling applications and enforcing protection boundaries. The applications themselves - all those nifty things like ls, more, etcetera are actually programs which makes use of the kernel. To get those, you need a Linux distribution.

A distribution is a collection of programs you will probably want (such as ls and friends) and others you might need (i.e. X) with a Linux kernel thrown in for good measure. Distributions also almost universally contain a ``package manager'' of some sort. This is a program which manages installation and removal of software in the system in a controlled way. Package management suites for Linux are among the best available for any OS.

There are literally hundreds of distributions out there, each with their own quirks. Some ``beginner-friendly'' ones you might like to try include SuSE Linux and Red Hat Linux. Until recently, I would also have recommended another distribution, Linux-Mandrake, but unfortunately Mandrakesoft is currently in extreme financial difficulty and the future of the distribution in its current form looks uncertain.

SuSE may be obtained from http://www.suse.com and Red Hat may be obtained from http://www.redhat.com.

While some specialised distributions may do everything differently, there are few major differences between the main, general-purpose distributions. All have their own installers -- which range in quality from mundane to excellent - all have their own system administration tools, and all have their own package management system. It's worth talking about package management systems for a while, because they're fun. The presence of a package manager means that software can be downloaded as a single file from the Internet, and installed using a single command. The best part is that software can then be uninstalled cleanly, or upgraded, from within the package manager. No trailing Registry entries, no weird .dlls hanging around in 1, and no ``The system may still be using d93fk2ls.dll. Would you like to delete it anyway?''

Dependency-based package managers, such as those used by Debian and Red Hat (among other distributions, such as Gentoo, SuSE and Mandrake) go a step further: if a program relies on another package, it will not install until all the packages on which it depends are also installed.

The most popular ProgSoc distributions are Slackware and Debian. Debian is particularly interesting, because, for a long time, its package manager did a lot more than any of the competition. Debian's package management suite, known as ``apt'', maintains a list of all available packages, and packages may thus be downloaded, unpacked and installed without even having to find them first. The best part, though, is that Apt is depencency-based, which means that if a package depends on other packages in order to work, the package manager will also download, unpack and install the dependencies.

You may also upgrade packages to the latest version using the same software. Upgrading every single software program on your system with two simple commands is a neat party trick, if you're into that type of party.

Since the release of Debian's trailblazing package manager, several other distributions have arrived which sport similarly luxurious suites.

Some Distributions to Try

Slackware20.3 is a Linux distribution by Patrick Volkerding20.4. It's arguably the first-ever Linux distribution, and is certainly the oldest actively-maintained Linux distribution. Many people like Slackware because it is very simple, but a lot of Slackware users have since switched to Debian, which has a similar ``community'' feel but superior system administration tools.

Debian20.5 is very popular among more experienced Linux users, because while not intuitive, its tools are very powerful.

Red Hat20.6 has a well-deserved reputation as a new Linux user's distribution - everything is as easy as possible. It's so polished that many people stick with it even after becoming experienced with Linux.

SuSE20.7 uses the same package format as Red Hat - rpm. In fact, rpm has become a de facto standard among distributions, which sounds more convenient than it actually is because often packages are incompatible for other reasons (such as because they require a different version of core system libraries, such as libc).

Gentoo20.8 is the distribution for those familar with Free (or Open, or Net) BSD who are curious about Linux. Its ``ports'' system, portage, is openly based of BSD's, and is very slick.

Install it?

Each distribution has its own installation method that is entirely unlike any other distribution's installation method. The hardest part is often obtaining all the installation files you'll need so that they're accessible to the installer. Most distributions can do a ``network install'', which means you download the minimal amount necessary to get your network going, and then the installer goes online to download the rest. It may be possible to obtain a bootable CD image to burn, but some distributions have stopped offering these because of the huge load the 650MB downloads place on their servers.

Fortunately, no distribution will leave you in the dark. All have comprehensible install instructions - even the ``tricky'' distributions such as Debian and Gentoo could be installed by an absolute newbie, as long as that newbie was prepared to accept a little pain. Of course, using the distribution afterwards might then pose a problem...

Use it?

Your first challenge will probably be installing and setting up XFree86, the graphical environment that comes with all general-purpose Linux distributions20.9. This is a highly complicated process if it's done manually, and incredibly simple if your distribution does everything for you, but since it's highly distribution-specific I won't cover it here.20.10

Once you've got your network and X set up, you will probably want some software.

Some software

Games.

The first thing you should do is install xkobo (you may only have ``kobodeluxe'') and play it. It isn't a very good game, but it's somewhat of a tradition.

Other games you might want to investigate are frozen-bubble, lbreakout2 (both clones of simple but addictive commercial games), one of the varieties of nethack (an awesome game, but not for everybody), tuxracer if you have a 3D graphics card (the NVidia drivers for linux are particularly good, after a rocky start), freeciv (a rather full-featured game with its roots in the commerical game Civilisation 2000), gnuchess (plays a very good game of chess, not that I would know), quake2forge (ID software, as part of a fantastic tradition, has made quake 2 open-source), tetrinet (tetris, but against other people), and crack-attack.

Several commercial games are also available for Linux - Quake 3, Return to Castle Wolfenstein, and most recently Unreal Tournament 2003 and Neverwinter Nights.

Editors.

There is a particularly long-running and unfunny flamewar between users of editors derived from vi and users of editors derived from emacs. I solved the problem by eschewing both editors, but you should at least attempt to learn Vi because it is so incredibly prevalent. Both Emacs and Vi come in several incarnations, both are incredibly full-featured, and both come with legions of raving zealot fans. There are three other text editors common to many Linux installations - joe, pico and its differently-licensed equivalent, nano. Emacs and Vi both have competent graphics modes, but you may also wish to try nedit (my current favourite) and scite (or SciTE) if you're using X.

Window Managers

One of the wonderful, or terribly annoying, features of the X Window System(depending on your point of view) is its concept of ``Window Managers''. Window managers control the placement of application windows on the screen, and are also responsible for giving them a border, often with widgets to close, resize and move the application window. Many window managers (often abbreviated: ``WM'') add other features, too -- multiple ``virtual desktops'' are common, and some, such as Window Maker (thankfully never abbreviated ``WM''), Blackbox, Afterstep and Fluxbox, add an iconic program launching toolbar known as a dock or wharf. Popular window managers these days are the de-facto standard window managers for the Linux ``desktop environments'' -- kwm for KDE and Metacity for GNOME. Other favourites are Window Maker, Fluxbox and fvwm. Try a few. My personal favourite is Window Maker, but I don't use KDE or GNOME and am oldschool20.11.

Back to table of contents