The Central Processing Unit
Sometimes people just don't understand. At first, I thought that they "didn't
have a clue," but that was really the problem. They had a clue, but a single
clue doesn't solve a crime, nor does it help you run a Linux system. You can
easily copy a program from a DOS disk onto an Linux system,
particularly if Linux is running on your DOS partition. In
all likelihood, the permissions are already set to be
executable. So you type in the name of the program and press Enter. Nothing
happens, or you get an error about incorrect format. Hmmm. The software manual
says that it runs on a 386 or higher (which you have), a
VGA monitor (which you have), and at least 2Mb of hard disk
space (which you have). Why doesn't it work?
This is a true story. A customer called in saying that the system I was
supporting at the time (not Linux) was broken. This customer had a program
that worked fine on his DOS PC at home. It, too, was a 386,
so there shouldn't be a problem, right? Unfortunately, wrong. Granted, in both
cases, the CPU is reading machine instructions and
executing them, but in fact, they are the same machine instructions. They have
to be. The same also applies to a Linux system.
The problem is comparable to German and English. Although both use
(basically) the same alphabet, words (sets of characters) written in German
are not understandable by someone reading them as English, and vice versa. Sets
of machine instructions that are designed to be interpreted under
DOS will not be understood under Linux. (Actually, the
problem is a little more complicated, but you get the basic idea.)
Just as your brain has to be told (taught) the difference between German and
English, a computer needs to be told the difference between
DOS and UNIX
In this section, I will talk about the CPU,
the brains of the outfit. It is perfectly reasonable for users and
administrators alike to have no understanding of what the CPU does internally.
However, a basic knowledge of some of the key issues is important so you can
completely understand some of the issues I'll get into elsewhere.
Its like trying to tune-up your car. You don't really need to know how oxygen
mixes with gasoline to be able to adjust the carburetor. However, knowing that
it happens makes adjusting the carburetor that much easier.
I won't go into detail about the CPUs instruction cycle, that is, how it
receives and executes instructions. Though I'm interested in things like that
and would love to talk about them, it isn't really necessary to understand what
we need to talk about here. Instead, I am going to talk mostly about how the
CPU enables the operating system to
create a scheme whereby many programs can be in memory simultaneously. These are
the concepts of paging and multitasking.
Orignally, the only commercial distributions of Linux available were for
Intel processors. RedHat released a version for the Digital Equipment
Corporation (DEC) Alpha processor, and others have since followed.
In the next section, I will go into a little depth about the Intel process
and how Linux interacts with it. Afterwards, I will talk briefly about the DEC
Alpha to give you an idea of what it is about. Because of the number of Intel
distributions and Intel-based machines, I won't go into the same depth for the
Alpha. The concepts a basically the same, though the names of registers, etc.,