Linux will appeal to you if:
- You are the type of person who likes to "get under the bonnet" and tinker.
- You find pointing and clicking to be a limiting way of expressing yourself.
- You want to develop or run applications for small- and medium-sized enterprises.
- You have a few Windows computers and need a firewall to connect them to the Internet, or a file server, or an intranet server, or...
Why Do People Use Linux?
Essentially, using Microsoft Windows is a bit like being a passenger in a Boeing 747. It's smooth, it's comfortable albeit cramped and you have an entertainment screen right in front of you. But after take-off, you can't change your mind about where you're going and you're not going to see any interesting scenery en-route.
Using Linux is like piloting your own plane: you've decided where you're going, and when; you can fly high or fly low and enjoy the scenery. But you can't just leap into the pilot's seat and crank the ignition - some training and some preparation are necessary.
For some users, the issue is one of control. Microsoft Windows provides wizards and dialogs that essentially isolate you from what the underlying computer is doing. Linux does not - you deal with the system directly, but that's no bad thing, since you get a much better feel for what's really going on.
For other users, the issue is one of licensing costs. Educational institutions, charities, governments and other non-profit entities in particular are finding that an increasing proportion of their IT budget is going into licenses for Microsoft Windows, Office and related software. Switching to Linux can bring about significant cost savings.
Governments are moving to Linux and other open-source software for similar reasons. In addition, governments have to be particularly concerned with security, and open source enables them to both scrutinize the source for vulnerabilities and to adapt it to their own security requirements.
Additionally, some governments are wary of proprietary products with proprietary protocols; government servers that required citizens to use proprietary software to access government services would be unacceptable.
Linux has been particularly successful as a server operating system. For example, the Apache Web server accounts for approximately 60% of the Web servers in the world today, and around half of those run on Linux (the remainder are a mixture of Sun's Solaris, the various BSDs, HP/UX, AIX, other UNIXs and Windows). A huge number of domain name servers, e-mail servers, routers and other boxes that make up the infrastructure of the Internet are actually running on Linux.
Computer science students have used the UNIX operating system and its derivatives almost since their inception, back in the early 1970s. At one point, AT&T withdrew the licence that allowed study of the UNIX source code, and a professor in Holland, Andrew Tanenbaum, wrote a small UNIX-like operating system called Minix. Designed to run on a single-floppy IBM PC, Minix was small, efficient and ideal for student use. However, within a few years, the capabilities of personal computers had outstripped Minix, which had not been updated to take advantage of the 80386 processor's protected mode multitasking.
And so a young computer science student named Linux Torvalds decided to write a new operating system kernel, using Minix as the development platform. Within a few months he had something that was usable, and decided to share it with like-minded programmers around the world via an announcement in the comp.os.minix newsgroup on the Internet. Within days, programmers were downloading the new operating system and running it. However, the Linux kernel itself does nothing for end users. Humans need to talk to a program called a shell, which acts as an interpreter between the human languages and the functions of the operating system.
You might be familiar with the COMMAND.COM program, which is the command shell of the DOS/Windows world. In the UNIX and Linux world, there are many popular shells, such as sh (the Bourne Shell), bash (the Bourne Again Shell), csh, ksh and others. However, the shell itself doesn't provide all that much functionality - it depends upon many other programs such as cp (file copy), ls (library status), and others such as sed, awk, grep, and mount.
But that's just a text-mode shell - you'll probably want some kind of graphical interface as well. Once again, Linux users have a selection: KDE, GNOME, icewm, xfce, Blackbox and others (see http://www.plig.org/xwinman/ for more details).
Although a lot of low-level system administration and configuration can be performed at the command line, that doesn't mean there aren't graphical tools if you prefer to
work that way. This is the Hardware Browser in Red Hat 8.0.
The "File Open..." dialogs in Linux have all the conveniences we've come to expect from modern graphical interfaces.
And of course, you'll want applications, such as editors, document processors, development tools, databases, Web servers, and all the rest. Before long, the idea of gathering all these things together on a CD-ROM together with an installation program occurred to someone, somewhere, and the Linux Distribution was born. Essentially, a Linux distribution brings together all the material you need to provide complete functionality - and then some. But remember, all these bits come from a number of different places and project teams - unlike Microsoft Windows, for example, which comes (nominally) from one company.
Linux itself is just the kernel; the development tools and utilities mostly come from the GNU (GNU's Not UNIX) Project, the file and print server is from the Samba Project, the Web server is from the Apache Project, and so on.
The many different Linux distributions vary considerably in their philosophical approach, as well as the specific tools they provide for administration, system configuration, software installation, etc. Red Hat, for example, pursues the business market - primarily servers, but increasingly desktops - while Mandrake seems to be tempting home Windows users to switch. Other distributions target the education market, routers and Firewalls, cluster configurations and so on.
Linux Works Differently
If you come from a Windows 95/98/ME background, you might find it strange that you have to log in to a Linux system, and even stranger, you have to provide a password for an account called root, as well as one for yourself. The reason is simple: UNIX and Linux are multi-user systems, and several people can work on one computer at a time. Ordinary users - and most of the time, even on your own computer, that's what you are - cannot access important system configuration data or otherwise screw up the system. The root account, which is equivalent to the Windows NT/2K/XP Administrator account, is used for those system administration tasks. One should never log into the system and perform ordinary work - e-mail, Web browsing, word processing, etc. - using the root account. Using an ordinary user account for most of the things you do limits the damage that mistakes or deliberate malfeasance (eg. hacker attacks) can do.
Presentation graphics used to be a problem for Linux users,
but now there's Open Office.org and Star Office Impress.
This picture shows the outlining mode of these programs.
One of the most popular applications for Linux boxes is
running the Samba file and print server software. Here,
the Samba Web Administration Tool is used to edit
parameters for shared home directories.
So, log in as an ordinary user - the installation program will let you set up user accounts and passwords - and later, if you need to run some system administration tasks, use the su command (substitute user) to give yourself higher privileges temporarily. Then use the exit command to surrender them when you're done.
[les@asgard les]$ su -
[root@asgard root]# service lpd restart
Stopping lpd: [ OK ]
Starting lpd: [ OK ]
When you attempt to perform system
administration tasks from the desktop
menu, you will be asked to provide the root
Benefits and Advantages
Value for money: You can download a Linux distribution for free, buy cheap GPL CD-ROMs for a few dollars, or buy a boxed set with documentation and support for prices ranging up to around $200.00. Once you've got one set of CD-ROMs, you can install it on as many computers as you wish.
Stability: Linux boxes are famed for running 24x7 with no intervention. This is, in part because of the separation of the various components; each component performs its own task and has well-defined interfaces to other subsystems. This is quite different from Microsoft Windows, where bits of the Web browser are used in the e-mail program and often I joke that updating a printer driver can cause your floppy drive to stop working.
In the 1980s there was DOS (and before that, there was CP/M, and...) We grew accustomed to typing commands like COPY, DEL, and FORMAT to get work done. Then along came the Macintosh, with its WIMPS interface, followed by Windows and suddenly we were being told these graphical user interfaces (GUIs) were heralding in a wonderful new ease of use.
That's a lie. A massive over-simplification, to put it more kindly.
GUIs are easier for some people to use for all tasks, and easier for all people to use for some tasks (like creating drawings, obviously). But some people think predominantly with the left half of the brain, which specialised in logical, mathematical and above all grammatical or language-based thinking. These are the people who have usually always found computers easy. Programming, for example, consists of constructing sentences (lines of source code) that conform to grammatical rules (the language syntax).
KDE's Konqueror is a high-performance Web browser as
well as a file system browser.
A lot of Linux administration work can be performed at the command line.
This window is displaying the "top" utility, which shows the processes currently
running, system load, memory utilization, etc. Note the 7-day uptime �
you never shut down Linux systems as they do useful work during
Linux does have several GUIs. The best known, such as KDE and GNOME are broadly similar in style and functionality to Windows. You can manage documents in folders, rather than files in subdirectories, if that's your thing - in other words, if you are a right-brained, visio-spatial thinker. However, Microsoft's continued emphasis on a graphical interface in its dominant operating system has disadvantaged the left-brained thinkers - those who would much rather work with a command line when it's appropriate.
If you're a right-brained, visual thinker, then Linux is going to stymie you, at least partially. Even though modern Linux distributions - for example Lycoris Desktop/LX - have a Control Centre that enables the system to be almost completely administered from a graphical environment, sooner or later something crops up that requires you to get down and get dirty at the command line. Mind you, at this point, you could always have a left-brained friend connect to your system over the Internet and fix it up for you. And Webmin (see Using Webmin for System Administration) goes a long way to making the system completely configurable without the user ever coming into contact with the command line.
The command line gives the user the expressive power of language. The DOS command line, for example, accepts lines of the form:
command option [...] filespec [...]
This is like a simple language, in which sentences always take the form
verb adverb [...] noun [...]
In other words, do this, this way, to these things. Copy these files to this directory, overwriting any old files of the same name. Set up this Network interface on this IP address, with this metric value - and so on.
The really nice thing about using commands is that once you've worked out the sequence of commands that achieve a particular result, you can save those commands in a script and just run the script, rather then repeatedly typing the same thing.
And your scripts can check to see if the commands executed successfully, then do something about it if they didn't. You can even set up scripts to run automatically at the same time each night, or once a week or monthly as required, to automate tedious tasks like backups, distributing new versions of software, sending files to head office, and so on.
Once you've "grokked" the concept of scripting, your personal productivity shoots up. You can stop doing the boring and routine tasks and let the computer deal with them automatically - which is what computers were always meant to do.
Of course, if you want to drag and drop files around, draw pictures, or rely on mouse-driven pull-down menus and dialogs for those infrequent and unfamiliar tasks, then Linux will accommodate you here, too. You don't always have to work at the command line, and in fact, some users could spend all day, every day, just running graphical applications.
Freedom Of Choice
A confusing aspect of Linux for many new users is the sheer freedom of choice that Linux users enjoy. You cannot buy just "Linux" - you typically buy (or down- load) a distribution and there are literally hundreds from which to choose.
It's as though there was not just Microsoft Windows, but also "IBM Windows", "HP Windows", "NEC Windows" and many other brands, each with their own unique flavour. Once you've installed your distribution, there are still more choices to make: would you prefer the GNOME or KDE desktop? Which e-mail program do you want to use? Word processing: Open Office or KOffice, or Lyx etc.
It's worth pointing out that while life can be simpler for those who just use Microsoft Windows and Office, the Linux situation is more like what a truly competitive software market would be like without a monopolistic presence. How would you feel if the motor vehicle market consisted only of General Motors, plus a handful of very small specialist manufacturers? Nobody really minds having a choice of motor cars - a choice of operating systems or e-mail programs is no more frightening.
Rewards for Mastery
There's a definite satisfaction that comes from having hacked a shell script to make it do exactly what you want, or getting the system configured so that your home directory is shared between multiple systems, or mastering any other little technical challenge. You can bask in that small glory until the next challenge.
A Linux system can do a lot of useful work. I have one server, for example, that is a database server, software version control server, mail server, file and print server, domain name server, and probably some other things I've forgotten about. All free software, too.
Runs On the Smell of an Oily Rag
Until recently, my backup DNS, backup mail server, mailing list server and firewall was running on a 33 MHz 486 machine with only 20 MB RAM. I upgraded it to 32 MB RAM, and while I imagined it breathing a huge sigh of relief, it didn't really run that much better. Out of interest, I installed Red Hat 8.0 on that machine, and it worked. If the hard drive hadn't died, I'd probably still be using that machine today. You can take old computers, and give them a new lease of life. There's always something that needs doing that an old box running Linux can take care of.
Open source software like Linux has been subjected to lots of peer review, which often - admittedly, not always - exposes vulnerabilities before they can be exploited. As a result, Linux-based Internet servers have a much better reputation for security than the leading commercial brand. (Brand X fights back by counting the same vulnerability in Red Hat, Mandrake, and Debian as three vulnerabilities, in an attempt to cook the books).
The experienced Windows user has to unlearn his techniques and throw away his tools. You can't use Norton Utilities to undelete files, for example, and your chances of getting your favourite game to work under Linux are slim. This is a whole new and different operating system - it was never designed to run Microsoft Windows programs. Although the WINE (WINE Is Not an Emulator) Project enables some Windows programs to run under Linux, I personally put it in the category of the singing dog and other curiosities: I'm not surprised it does it badly - I am surprised it does it at all. In general, if you need to keep running Windows programs, install Linux beside Windows in a dual-boot configuration -something Linux does quite well - or install it on a second computer.
Some hardware vendors don't supply device drivers for Linux. Modems are a case in point: many are not full modems at all, but so-called "winmodems" which require the PC's main processor to supply much of their intelligence through Windows-specific device drivers. In many cases, the manufacturers do not make available a Linux device driver, nor do they disclose the information that would allow third parties to develop one.
If you have acquired one of these "winmodems", you should collect as much information as you can about it from the Windows control panel - ideally you should be able to identify the chip set - and then visit http://www.linmodems.org/ to see if a Linux driver is available. Sometimes you can be lucky. I have an IBM Thinkpad with a Lucent mini-PCI winmodem. I visited the Linmodems site, found the right driver, downloaded it and had it installed in around five minutes.
I've encountered similar problems with low-end "winprinters". Because Linux depends upon a community of developers for support, it may take some time before somebody writes a device driver for something that the manufacturer chooses not to support. This is particularly true of recently-developed interfaces such as Firewire (IEEE 1394) and USB. Before buying any USB peripheral such as a camera, you should check whether it is yet supported under Linux.
The various distribution vendors have their official Hardware Compatibility Lists. Red Hat's is at http://hardware.redhat.com/hcl/. But, the fact that a vendor does not mention a device doesn't mean that someone, somewhere, hasn't written a driver that you can download and install.
New Skills To Acquire
You'll soon discover we're not in Kansas any more, Toto. Things you thought you knew about computers will turn out to be things you knew about Windows, and not all computers work that way. Some adjustment will be required. Sometimes, it's a matter of unlearning old habits - for example, double-click on the title-bar of a window in KDE, and it won't maximize; instead, it will "roll up", leaving the title-bar visible and the rest of the window hidden. Now, before you scream "That's Wrong!", perhaps it's time to consider that it's just different, and you can learn some other tricks, too.
Building Software From Source Code
Linux is perhaps the prime example of "Free and Open Source Software". The prime benefit of Open Source is that you get the source code - the files written by the original programmers, in languages like C, C++, Perl and others. This brings a number of benefits: you can study the code, to learn how it works and use the ideas in your own programming, you can extend the code and adapt it to provide your own required functionality and you can fix bugs that are causing you problems. Notice that it's not really all that vital that you, personally are able to do these things: what is important is that somebody can do it. As others add functionality, so the code matures and becomes more powerful. And of course, if you really need a feature added or a bug fixed, you can always hire someone to do it, if it's that important.
Since the source code is available, there is no need to distribute only the binary, machine-executable forms of the programs. This is especially the case with so many different hardware architectures being available, from ARM and other low-power processors for embedded systems like phones, watches and PDAs, to IBM mainframes and super computers. Each of these will have its own binary executable formats. So distributing software in source code lets the user run it on any hardware platform.
However, to do this effectively the user has to learn how to compile and install the software. A compiler (just another program) translates the source code into the native machine code, and since this is typically done for multiple files, a linker then links them all together to produce a program that runs. This is usually done by the make utility, which performs all the required commands.
Getting Help, Asking Questions
Always do your homework first! Gurus (geeks/nerds/propellerheads) enjoy answering interesting questions. However, they are scathingly antagonistic towards people who ask simple questions that show they have not read the basic documentation that came with the software. The standard response to people who haven't prepared properly is "RTFM", which means "Read The Fine Manual".
Before you raise your hand in public, I would advise you to:
- Read the documentation that came with the program.
- If you installed from source code, check for a README file, an INSTALL file, and perhaps other documentation like a USAGE file.
- If you installed from a binary package such as an RPM, check in /usr/share/doc or /usr/doc for these documentation text files.
If you want a nicely printed document that you can file for future reference, use
man -t fsck | lpr
If you're not sure what command does something, you can search the database of man command summary information, by using one of the following commands:
apropos <your topic>
man -k <your topic>
And if you want to search the full text of the man command database, use:
man -K <your topic>
although this may take some time.
Next, check that there isn't a HOWTO or mini-HOWTO on the topic. The HOWTOs present suggested ways of completing tasks or setting things up. Your distribution might come with the HOWTOs on the CD-ROMs, but if not, they can be found at http://www.tldp.org/ (tldp is The Linux Documentation Project).
The most important point is that before you ask for help from a UNIX or Linux guru, you should have done what he has done: read the manuals! If he thinks you've made no effort to help yourself, expect that scathing response!
Installing From Source
The code below shows the basic set of steps that will install most software. Notice the line that reads "less INSTALL || less README". You could type that as it stands, and it would work. It means, display the contents of the file named INSTALL, but if that file doesn't exist, display the contents of the file README instead. What I'm getting at, is that each source code package has a file named README (or sometimes named INSTALL), which gives specific instructions on installing software.
tar xzvf /path/to/software-version.tar.gz
less INSTALL || less README
Installing Binary Packages
Many distributions allow the various files that make up a program subsystem to be collected together, along with man page files and other documentation, and distributed as a single file. A package manager is then used to install the software, extracting the various files and placing them into the correct locations as well as updating other system configuration files.
Most distributions use the Red Hat Package Manager (RPM), which allows you to install one or more software packages with a single, one line command:
rpm -ivh package1-version.i386.rpm package2-version.i386.rpm
In the preceding example, the -i option means install, the -v option means "verbose" so that you will see the progress of the installation and the -h makes the program display progress with a row of hashes. You can even download and install a package with a single command:
rpm -ivh http://server.domain.com/path/to/package-version.i386.rpm
With a little bit of scripting, this makes it easy to set systems up to check for updates and maintain themselves automatically, and it's not difficult for enterprises to set up their own software distribution servers and create their own packages.
RPM has lots of options for checking the status of installed packages, updating packages, etc. For example, to list all installed packages:
Lots of stuff will scroll by, but you can feed it through the less pagination program with the command:
rpm -qa | less
To get information on a specific package, try
The RPM system can do all kinds of interesting things, especially for those who need to distribute and install programs across multiple computers.
Rebuilding the Kernel
While initially daunting, this is not as difficult as it might appear, and in some circles, is an essential step towards acquiring one's Linux Guru Badge.
There are lots of articles and Web pages out there that will guide you through the process. There are lots of places where one can slip up, so you should expect that your new kernel will not boot successfully on the first few attempts. The best piece of advice I can give the novice kernel-builder is: be careful not to over-write the old kernel and its associated module files (in /lib/modules/kernel-ver/) an entry in your boot loader configuration, as you might well need them to recover from the inevitable disasters.
Which Linux Distribution Is Best For a Newbie?
You have no idea how I hesitated over writing this part. Every Linux user has a favourite distribution, and feels that their particular choice is "the best". The problem is that "best" can be measured in so many different ways. Some people are interested in learning about Linux, purely as a hobby. Some are looking for a low-cost OS they can use on a spare PC as a firewall for their ADSL or cable connection. Some are looking for an alternative to the Microsoft Office desktop. Some want to set up a Web server. And so on, and so on...
This list is by no means exhaustive - there are lots of other distributions out there, including many that I don't know about and haven't used. It's just some suggestions, based on my experience using various Linux distributions and watching students install them in my classes. And of course, I'm fully aware that by mentioning only a few of the hundreds of Linux distributions out there, I will have managed to offend all those readers who use one of the others...
For The Curious Hobbyist
Are you looking to learn all about Linux and UNIX, write shell scripts, hack some programs together? Then I'd suggest buying almost any of the Linux books that come with a distribution on a CD-ROM or two inside the back cover. Mandrake Linux has traditionally been the distribution found here, and it's not all that bad for getting started, except that it is perhaps a little too graphical in operation to give the true flavour of Linux. One problem that can hamper learning is that the Mandrake graphical administration tool can undo edits you make manually to configuration files.
If that becomes a problem for you, then perhaps you might want to start with Mandrake, but then transition to a distribution like Slackware. Slackware is no-nonsense and straightforward. All software is installed from a binary tarball package format or quite commonly, compiled from source, so you know exactly what you have on your system. Installation can be a little tedious and will require rather more knowledge than the Mandrake installer, which can auto-detect and configure for all types of hardware.
Of course, if you really want to learn all the ins and outs of the Linux operating system (as opposed to the applications that run on top of it) then you could try the Linux From Scratch Project. Following the articles here, you will build up your own Linux distribution, step by step, learning an enormous amount along the way.
Finally, many users who follow this route gravitate to Debian Linux. While Debian Linux can be intimidating for the novice to install, experienced users - one might almost call them connoisseurs - appreciate the level of control they have, as well as the way the apt-get utility makes it easy to automatically maintain the system and update software packages.
For The Non-Technical Home User
Here it's a toss-up between Mandrake Linux and Lycoris Desktop/LX. Mandrake has perhaps the easiest and most automated installation process - although many Linux distributions are highly polished these days. The beta of Mandrake 9.1 includes a utility for resizing Windows NTFS partitions - a major stumbling block for users who have Windows 2000 or XP installed on a C: drive that fills the disk.
Both the installer and the Linux distribution itself are very graphically-oriented, and Mandrake users need never deal with a command prompt if they don't want to (although it's there for those who want to explore). The KDE desktop is very polished - there are some new experiences for those who have only ever used Windows, but you can be productive very quickly.
Lycoris Desktop/LX is another highly polished distribution which is aimed at the desktop user. One only CD-ROM, another installer that deals with most hardware, and a KDE desktop. Lycoris has a desktop theme that is highly reminiscent of Windows XP, and similarly, has a Control Centre which allows most system configuration to be performed graphically.
I installed Open Office.org 1.0.1 onto a Lycoris system, and the result was basically very similar to a Windows XP system with Office XP. Perhaps not quite as polished, but considering the difference in price, a very adequate choice for the home or small business user.
Somewhat More Specific
You want to set up a Web Server? A File/Print Server? A Database Server?
A tough one, here. Personally, I'd recommend Red Hat 7.3, primarily on account of the fact that it's a popular distribution with lots of support, in the form of software packages, books, training courses, articles, etc. Red Hat has a habit of being a bit different from the more purist distributions (though no more so than, say, Mandrake or SuSE), but with familiarity, it's a very productive environment in which to work.
I used to have several servers running different distributions: Caldera OpenLinux eServer 2.3, SuSE Linux 7.2 Professional, and others. But the effort of maintaining them all in their various ways just became too much, especially after they stopped being "experimental lab rats" and became real production servers. So I sat down and carefully decided to rationalize on one distribution, and in the end, chose Red Hat. There are nice features - many I prefer - in the other distributions, but overall, Red Hat won out. Now I have five servers, sitting in a row on a KVM switch.
You might wonder, why not Red Hat 8.0? The reason is simple: Red Hat 8.0 includes Apache 2.0, which does not yet have as many modules available as the older Apache 1.3 in Red Hat 7.3. Eventually, Apache 2.0 will get there, but not quite yet.
For larger enterprises, it's worth considering Red Hat Advanced Server, which has all the regular Red Hat features plus additional support for larger memory, symmetric multiprocessor configurations and a higher level of support services (as it should, for the price!). Another alternative worth considering is United Linux, in the form of the SuSE Advanced Server.
You want to set up a Firewall/DNS/DHCP Server or other Infrastructure Server?
My personal philosophy here is to use Red Hat, since I can easily incorporate it into my multiple-server setup. However, if you're not going to get any benefit from that particular economy of scale, then there are lots of specialized distributions for those applications, particularly as Firewalls. Some of these distributions are so small that they can be fitted on a single floppy disk. Sentry Firewall consists of a complete firewall based on Linux, which boots off a CD-ROM and reads its configuration files from a write-protected floppy disk (which is, of course, edited on your desktop system). An attacker simply cannot install a rootkit or any other "Trojan" programs on a CD-ROM!
Some of these distributions require considerable knowledge of the Linux kernel, startup scripts and system configuration. Others are very novice friendly and you can simply load them and go.
Refers to code output by a compiler, and which the operating system can schedule for the computer's processor to run. A program consists of one or more binary files, referred to as binaries, for short.
The short program that loads the operating system kernel into memory at system boot time. Linux systems mostly used to use LILO (LInux LOader), but most have now switched to the more versatile GRUB (GRand Unified Boot-loader).
A program that reads source code written in a programming language and generates object code or machine code. Most compilers also require the assistance of a linker to do this.
A daemon program that runs scheduled jobs, usually during the dead of night. Typically, UNIX systems update various database and produce usage reports that are emailed to the administrator early each morning.
A process (a running program) that hides in the background, performing some task behind the scenes. A good example is the UNIX print spooler, or "line printer daemon", called lpd. The Windows equivalent is a service.
The GNU General Public License. The licence under which most open-source and free software is made available. It allows you to use and even adapt and extend the software, but any changes and enhancements you make must be made available to other users. This stops giant corporations from taking the code and reselling it, thereby profiting from the work of others. See http://www.gnu.org/philosophy/free-sw.html.
A configuration under which a second computer continuously monitors the operation of the first, ready to take over the load should it appear to have crashed or not be responding.
This is the so-called super-daemon that listens for network connections and starts the required daemons on demand. For example, the FTP server daemon (wu-ftpd or vsftpd) is started only when required. Some other daemons, like the sendmail mail server, run all the time.
Lightweight Directory Access Protocol. A directory service that allows people and programs to locate other people and programs on a network.
A file which contains all the related files - binaries, documentation (man pages), configuration files, etc. - which make up a program. Packaging makes it easy to download and manipulate versions of programs. The two most popular package formats are RPM (Red Hat Package Manager) and Debian's .deb format.
The administrator's account on a UNIX system. You should never log in and do regular work such as word processing or web surfing as the root user, as the root account is not subject to the usual checking of permissions, and if you were to make a mistake it can be very damaging. For example, the command, "rm -rf /" as root will delete all the files on the system, whereas an ordinary user can delete only his/her own files.
Code written - and read - by programmers in some programming language like C, C++, Java, etc.
Secure Shell. A set of programs - a daemon/server and several clients - that enable encrypted communications between computers. SSH is the best way to connect to remote systems in order to administer them.
The UNIX equivalent of a ZIP file. First, the tar utility is used to create a library - a file that contains a number of other files - and then this is compressed with the gzip (GNU zip) utility to create a file with a name like slmdm-2.6.16.tar.gz. To both decompress and untar this, you would use a command like "tar xzvf slmdm-2.6.16.tar.gz" and you would now find the contents of the tarball in the subdirectory slmdm-2.6.16.
A program that emulates a terminal.
| || |