2. Background

2.1. Why This Text?

In the last decade of the past millennium, I moved out of my parents' house and into a small apartment with my girlfriend. I left behind not only the comfort of a magically refilling refrigerator, but also a computer network that suddenly had to survive daily and sometimes creative usage by my mom, dad, and kid sister for months without me. After some gentle persuasion, my girlfriend not only switched from Windows to Linux, but also became my fiancee. I left grad school and got a real job, which left me with even less time to fool around even with my -- er, our -- network, let alone my parents' computers. My fiancee became my wife, we left the apartment for a small house, and then I found myself spending more time changing diapers than floppies.

In other words, somewhere along the way, I turned into an adult.

It happens to the best of us, I'm told, and there are benefits that go beyond a de facto unlimited budget for ice cream. Having all the time in the world to keep computers running, however, is not one of them. I needed some sort of setup for the systems I am responsible for that is

After a few years of trial and error and a lot of time spent thinking about setting up computers while rocking screaming babies in the middle of the night, I created a "standard" setup. It is not a terribly clever or ingenious way of doing things, and there are probably thousands of systems out there organized along exactly the same lines. The aim of this text is to present this setup in a coherent form so that other people don't have to invent the wheel all over again when faced with the same problem.

2.2. Reasoning and Overview

Most desktop computers nowadays are insanely overpowered for what they are doing most of the time: Email, surfing, and text processing, while maybe listening to music. Unless you are still using a 486DX at 66 MHz, your processor is probably bored out of its registers even if it is doing all of this at once. Check any program that shows the system load -- such as xload, top, or uptime -- and you'll see just how much of your expensive hardware is busy doing nothing.

With all of those resources left over, there is no technical reason why more than one person can't use the computer at the same time. This concept seems strange and downright alien to most home users today, thanks in no small part to Microsoft's philosophy of "a computer on every desktop" and the hardware companies' ad campaigns that imply that you are, among other things, sexually inadequate if you don't have your very own super-charged computer under your desk.

There are good commercial reasons for hard- and software companies not to like multiuser setups. Even if you have to upgrade the central machine, you are going to need less high-quality hardware than if everybody has their own computer; and if four people could use one Windows machine at the same time, that would be three copies less for Microsoft to make money on. You obviously don't save money if you just install Linux on one machine instead on four, but your hardware costs and administration time will drop.

Of course there are other reasons than big company ad pressure why few people have multiuser setups. One is computer games: Many of them suck up so much hardware that a multiuser-system is usually not the best idea. Also, until a short time ago, there was no easy way to actually have more than one person log on, since most desktop computers come with only one keyboard, one mouse, and one monitor. This has changed: You can now create inexpensive and reliable graphic terminals (also known as thin clients) with very little hassle and expense. This allows us to get away with one big machine and a couple of little ones. Last but not least, sharing a machine means you have to behave and get along with other users.

In a nutshell, this text is about centralizing small computer systems to save time and money. The mainframe vendor IBM wants us to believe that this is just what the big boys are doing, too. Now that the age of server mania is over, they say, companies are moving stuff back onto those mainframes. Since more and more of those mainframes are running roughly the same Linux you have at home, the only difference between a real mainframe and your computer is a bit of hardware. A few hundred thousand dollars worth of hardware at least, granted, but that doesn't mean that you can't use the same design principle and enjoy the benefits of a "little" mainframe -- a "mock" mainframe, if you will.

The basic setup has three parts:

Parts of this text will deal with installing software that is covered in far greater detail in other Linux HOWTOs. Caught between the extremes of just referring to those texts and copying everything, I have decided to give a very brief description of the installation procedure on a standard system. You'll get a general idea of what needs to be done, but for the details, you'll need the specialized text. This does mean that there are a lot of references, but that just goes to show how much I am standing on the shoulders of others here.

2.3. What You Should Be Aware Of

A mock mainframe setup is not for everybody. It is based on the following assumptions:

Some examples of when a mock mainframe might make sense:

(If you have found other situations where this setup works, please let me know.)

2.4. How This Text Is Organized

First, we will take a look at the individual parts of the setup -- the mock mainframe, the terminals, the support computers. Then we'll discuss ways of putting these elements together. This is also where we will talk about security. We'll also discuss life with more than one user and setups for very weak hardware.