for Operating System
by Bruce Gingery, firstname.lastname@example.org
The operating system of a computer is that software
(set of programs) that determines nearly everything having to do with
operation. It determines when the computer is ready to run programs --
what programs can run -- who can run them. It determines who can change
information on the computer, and who can read it.
How does it look?
The best operating system is that which you do not see. It quietly
conducts your business, and you have no need to think of it most of
the time. It exists to serve programs, as the programs exist to serve
you, the user.
How does it work?
Each operating system consists of one or more programs. These programs
form the underlying personality of the computer. They know about your
hardware, for either the hardware described itself, or you, when you
installed hardware or operating system, told the operating system about
The operating system keeps the control of the hardware, to make it do
what programs need to have done, such as keeping information organized
on a disk, loading programs, and giving them permission to use time to
perform their tasks. It may also keep track of people using the computer,
and in the best cases, it does.
Graphical user Interface
In many cases, today, a Graphical user Interface (GUI) or Windowing
System sits between the true operating system, and the user. It
may or may not provide some program functions (usually does), but is
a layer over the operating system, except in those rare cases of poor
design where they are combined into one.
But, why would that be poor design? Because not all programs that run
on a computer today should need to communicate directly with the user,
nor even require a user to be present, to do things for that user. Many
tasks (in fact, the ones for which a computer is best suited) are very
repetitive; the same thing, over and over again.
The GUI may force, or recommend, similar looks between programs
that are presented to the user. It may enhance what those programs can
do, or limit them, or both. It may seem to be all-in-one, or obviously
built up from choices.
Will it run on my PC?
If you had asked that question just a few years ago, the answer for the
then current versions of MacOS and Windows would have been yes,
but for most of the others, a Probably Not!. Today, the hardware
has "grown up" - that is - the industry is maturing for desktop PCs and
the computers are more powerful today than many "Mini" and "Small Mainframe"
computers were, just a few years ago. At the same time, convenience in
use has sprung ahead by leaps.
But the best news is that the middle entrants above -
are all avaliable for free - with business quality power.
- Linux - with KDE or XFree86
- FreeBSD - with KDE or XFree86
- NetBSD - with KDE or XFree86, or
- OpenBSD - with KDE or XFree86
YES, exactly. Most of the software upon which the entire Internet
runs today is now, and was when it was first written - the result of
the collaboration of tens to thousands of people working together
toward a common vision for a better world, and free for both private
and commercial use. Most of it runs (first or only) on UNIX or its
Originally a take off on the mainframe operating system MULTICS, UNIX
became the staple of AT&T® through the 1970's. It was
primarily used for medium to large computers - most of which were smaller
in capacity than the average desktop PC today. Marketed for PCs in the
1980's, and the high-end desktop machines usually called Workstations,
it quickly became the name for power and excellence in design.
Clones and Clones
Just as the original IBM-PC quickly became hundreds of variations
from different manufacturers - denoted PC Clones, this powerful
operating system has repeatedly been cloned. The most famous of these
UNIX Clones (or variants) was that created at the University
of California, Berkeley. For years, the Berkeley Software Distribution
(BSD)has enjoyed equal prestige with the original.
But the FreeBSD/NetBSD/OpenBSD we see today was not the first UNIX variant
for the desktop PC. Before the hardware had the capacity to support a full
UNIX clone system, a cut-down version was created, called MINimal UNIX
(Minix). Selveral years ago, Linus Torvalds decided to write his own
Minix - the result of which has grown into Linux, with the volunteer
cooperation and contributions of other developers world-wide, and several
companies focused upon producing distributions of it.
So, today, we see FreeBSD with a solid support of Intel-based and similar
computers, derived from the last public BSD. We see NetBSD with wide
cross-platform support, both older (sometimes orphaned) machines like
the Amiga, and the latest like the DEC Alpha. We see OpenBSD claiming
the title clean-up for NetBSD, and we see the explosive growth
The Well-Kept Secret Escapes
- the operating system controls the machine AND the programs on it.
- the machine then can only have one operating system, right?
The same machine can only have one operating system at a time,
unless one can be treated like any other program, or can pretend to be another
for the sake of programs written for the other. (But also see V++ which is
designed to change that).
These processes are called emulation, and generally make things
run slower than they would without. Yet not always! Just as not
all clones are equal,
not all emulations are equal.
Multi-Booting a PC
So, do I have to choose which operating system is on my PC, or (worse)
do I have no choice, but must stick with what came installed on it?
The answer is NO to both - because of the power of today's computers, and
the sheer size available on the average Hard Drive.
This is not emulation - but it gives choices!
... in the strictest sense, but rather is simply installing more than
one operating system on the same machine and a special program which
runs before the operating system - called a boot chooser.
The operating system loads because of instructions found on special areas
of the disk. Those instructions can (and customarily do) tell the
computer where to find the operating system. On a computer with more than
one, those same instructions can ask the user WHICH to load, then cause
that choice to be obeyed.
The same Mac can run OpenBSD or mkLinux and MacOS - at different times.
The same PC can run Windows95 and FreeBSD or Linux - at different times.
The same Amiga can run NetBSD or its old AmigaDOS - at different times.
The same C=64 can run AUnix, CSDOS, CP/M, GEOS, etc. - at different times.
(Portions Highly Technical)
But - it doesn't stop there! Linux can run SCO and SysV programs, in addition
to its own. FreeBSD can run Linux and SCO programs, in addition to its own.
In each case - as if those foreign programs were its own.
In most cases, this is a simple matter of having the operating system
recognize the foreign program, and convert or adopt facilities
that the foreign program expects to find. The UNIX variants are so similar
that in many cases, most of these are one-for-one conversions.
An OS within an OS
(Portions Highly Technical)
Two kinds of emulators create what seems to programs to be a different
computer (through software) within a computer. To the main operating
system, this internal computer is just a program. To programs within
the internal computer, this is the computer.
On the MacIntosh, the outside computer is usually a Mac, while
the inside computer is usually a PC.
On a Sun Workstation, or a PC running SCO, the outside machine runs
UNIX or a variant, while the inside may run DOS (under WABI).
On a PC running FreeBSD or Linux, the ouside machine similarly runs
a UNIX variant, while the inside may run Minix, Windows95, or DOS.
On a PC running WindowsNT, the outside machine runs WindowsNT, while
the inside machine may run DOS or Windows3.11.
Simulating the API
(Portions Highly Technical)
Yet one more kind of environment may be used to iron out the differences.
A long running project which has periodic successes is the Wine project.
Wine is a program and series of libraries which runs within UNIX variants
to directly support Windows3.11, Windows for WorkGroups, Windows95 and
WindowsNT programs, as if those operating systems were actually present.
Like the computer-within-a-computer above, such an alternative API
provides functions to the programs as if they were running just
on a computer with the operating system the programs were written for.
Unlike the computer-within- a-computer, this form of emulation replaces
that other operating system.
Oh - it sounds complicated
It can be complicated to first set up. Once installed, it can
actually become simpler, safer, and easier to use. It expands your
choices, can isolate you from some common dangers-of-computing, like
viruses, and opens an entire new class of software.
If you have read this far, you will also be able to set it up.
To be continued...
Copyright © 1996, 1997, 1998 Dr. Raj Mehta. All rights reserved.