A Basic Introduction to Computer
Systems:
A Presentation in 2 Parts:
"Insight" is the key word here!
- What a CPU really is:
(And associated required hardware)
- What an Operating System is, and what
Drivers really are.
(i.e. The Software required to make it all work)
==========================================================
What a CPU really is:
- I often like to start out a presentation
like this by illustrating that a current computer keyboard
is a COMPUTER, and so are current printers, modems,
monitors, scanners, and any of the so-called "intelligent
devices" are also computers! We often have some
misconceptions or limitations about what a computer really is
or does.
- There are many computer systems in
common use, other than the so-called "Personal Computer":
- Gas pumps,
- elevators,
- home-management systems,
- burglar alarm systems,
- traffic signals,
- sophisticated test equipment,
- sophisticated hi-fi,
- control systems in automobiles and trucks,
- and of course, most of the current ham equipment
we currently use.
- What I would like to try to do here is
reduce all of these complications to a common denominator!!
- Any CPU in the world, from the simplest
to the most complex only does 2 things:
- A CPU either moves data, or manipulates
data.
( The actual processes used for these 2 actions
can be very complex. )
- Key elements to any system start with the
CPU itself, memory, and interface devices (called I/O devices)
- Addressing memory
is to specify "where" data is to be retrieved or stored
into memory, and then to either write-to or read-from that memory.
- This would be equivalent to pre-positioning
a tape recorder to a specific veeder count location, and then
either playing the tape, or recording data at that position of
the tape.
- There are many methods of addressing memory,
and there are many kinds of memory, such as ROM or RAM. Even
various hardware devices can be addressed as a memory device.
- This then allows you to grab data from
one location and create either a copy or move the original data
to somewhere else.
- Since any computer is totally worthless unless
it can interface with the outside world, devices that allow this
are called I/O devices.
- These devices are typically called intelligent
and programmable I/O devices.
- The only problem is that these devices are
as "dumb as a post" until they are told what to do
and how to do it.
- It is very important to realize that any
and all computer systems are totally useless without instructions
on how to do this, called software.
- A "Driver" is simply a set of instructions
(called code) that specifically controls the I/O interface devices,
and is compatible with the operating system in use.
- Now, heres the interesting part:
- An operating system is simply the stitching
together of the collection of those drivers, and allowing a "command
interpreter" to control the sequence of events.
- In a nutshell, when a computer system is
first turned on, it must be told what to do, where the initial
"instructions" to do so, are normally in a system of
memory. This can be followed by "loading" a larger
set of instructions, and perhaps even another even larger loader,
that then loads the next set of instructions. When a large enough
body of instructions has been loaded, this can represent a usable
package, called an operating system.
==================================================================================
- The core of any CPU is what instructions
are available, and what binary code is required
to execute those instructions.
- The next layer out from that core is to compose
an organized set of instructions according to some specific plan,
to accomplish a particular task, or series of tasks. Having done
so, this becomes an operating system (OS) for that
project.
- This simply means that given any CPU:
- one team can put together an operating system
for a traffic light, and
- another team can put together an operating
system for an intelligent elevator system, and
- another can tie it to the type of interface
devices to control those things we call disk drives, keyboards,
printers, and lo
we have what we commonly call a computer.
- Now we can understand that we can have more
than one type of an operating system for the same CPU and associated
hardware, and where they may not even be compatible with one
another, each may be actually better than the other for particular
applications. For example, if someone were to take an IBM PC
and construct an operating system for it for an entirely different
purpose, we could contrive just about anything we want..
What an Operating System is:
==================================================================================
- "OS" actually stands for "Operating
System", regardless of who makes it.
- "DOS" stands for "Disk
Operating System", regardless of who makes it.
- So you see that when people do refer to "DOS",
its actually incorrect to think that this is only
a product that comes from a particular set of folks over yonder.
---------------------------------------------------------------------------------------------------------------------------------------
The best way to understand any Computer System, from
the bottom level up,
is to consider everything in layers, like
those of lettuce or an onion.
- The core of any CPU is what instructions
are available, and what binary code is required,
to execute those instructions.
- The next layer out from that core is to compose
an organized set of instructions according to some specific plan,
to accomplish a particular task, or series of tasks. Having done
so, this becomes an operating system (OS) for that
project.
- This simply means that given any CPU:
- one team can put together an operating system
for a traffic light, and
- another team can put together an operating
system for an intelligent elevator system, and
- another can tie it to the type of interface
devices to control those things we call disk drives, keyboards,
printers, and lo
we have what we commonly call a computer.
- Now we can understand that we can have more
than one type of an operating system for the same CPU and associated
hardware, and where they may not even be compatible with one
another, one may be actually better than another for particular
applications. For example, if someone were to take an IBM PC
and construct an operating system for it for an entirely different
purpose, we could contrive just about anything we want..
- Additional layers would be "Applications
Software", for personal or business use, such as word-processing,
spreadsheets, database, imagery, CAD, internet access, etc.
- A lot of us tend to take general computer
systems pretty much for granted, without really giving any consideration
to how that computer actually does do what it does. In fact,
most of us find the variations in computer operating systems
either confusing or bewildering, to say the least. To make things
even more confusing, we are led to believe that "DOS"
is an ancient aspect of current computer technology, originally
created by those same folks east of here, and now supplanted
by "windows" systems supposedly created by those same
folks. Sorry, but none of those assumptions are
correct. "DOS" and the "Windows"
concepts were not, and are not, the exclusivity of those folks
in mention. But, lets not dwell in that arena for a while.
Instead lets get into what a computer really is!
- For starters, any computer operating
system that exists, for any computer that exists, has
much in common with each other. This is true for everything from
mainframe computers, mini-computers, microcomputers, game computers,
home-management systems, burglar-alarms, industrial machinery,
control-systems in automobiles and trucks, test-equipment, and
of course ham-radios.
What Drivers really are: ==================================================================================
- Repeating what was mentioned earlier:
- Since any computer is totally worthless unless
it can interface with the outside world, devices
that allow this are called I/O devices.
- These devices are typically called intelligent
and programmable I/O devices.
- The only problem is that these "intelligent"
devices are as "dumb as a post" until they are told
what to do and how to do it by programming them.
- It is very important to realize that any
and all computer systems are totally useless without instructions
on how to do this, called software.
- A "Driver" is simply a set of
instructions (called code) that specifically controls the I/O
interface devices, and is compatible with the operating system
in use.
- Consider that you will actually need a driver
for the keyboard, the mouse, each
and every type of disk drive, the output
to the video display, the printer, the
scanner, the serial ports, the parallel
ports, the modem, the network interface.
- Now, consider that for each of these programmable
intelligent I/O devices, the code of the driver for them must
exist in 2 parts. I.e. the 1st part is the
code required for the device itself, and the 2nd part
must be compatible with the current operating system.
- In simple terms, every time you change the
operating system, you have to have a new driver. Every time you
change the device, you have to have a new driver. An exception
to this might be if the new device is compatible with the old
driver. There are numerous cases where a "new & improved"
device is backwards compatible with the old device, but the new
driver is required to obtain the improved features of the new
device.
- In the days of the various DOS systems, the
mouse driver could be loaded a couple of different ways:
- You could invoke the "mouse.sys"
with config.sys, which embedded it into system during its construction.
- You could load it after system is constructed,
by invoking it as "mouse.com" either from autoexec.bat,
or even by manual keyboard command. In this case the mouse driver
is actually an attachment or appendage to the OS, and called
a "Transient Sub Routine" (TSR).
- The advantage of embedding the mouse driver
by "mouse.sys" is that it was a more efficient use
of memory, but could not be easily removed.
More on Operating Systems (and "Shells"
over Operating Systems): ===============================================================================
- Note that there are several quite acceptable
"DOS" packages. Not all folks realize that there are
many Application Programs that run well on most of these "DOS"
Platforms, which support their own "Windows Appearances",
without actually requiring the existance of the assumed "Windows"
Shell to do so. Another factor that has been commonly overlooked,
is that all of these "DOS" Platforms did support "Windows"
and "Windows for WorkGroups" quite well. OS/2 would
run WFW as sub-tasks. "Windows" is not reserved to
be in reference to a "Operating System", but is simply
a reference to the method of display.
| PC/DOS |
Windows (not an OS) |
| Novell DOS (NW/DOS) |
Windows for Workgroups
(not an OS) |
| DR/DOS |
Windows 95 (not an OS) |
| MS/DOS |
Windows 98 (not an OS) |
| OS/2 Warp (true OS ) |
Windows NT |
| Linux (true OS) |
Windows Millenium |
| MAC/OS |
Windows 2000 |
- But what about the earlier versions of true
operating systems, called:
- MP/M (which would run several CP/M Systems
concurrently)
- CP/NET (which would allow diskless system
interfaces into existing other CP/M or MP/M Systems)
- CP/M86,
- Concurrent CP/M86,
- And how about even
Concurrent XM? (which
would run up to 4 MS/DOS Systems as sub-tasks)
- Since the majority of these are operating
systems other than MS, some folks would like to remove them from
the history books, and pretend they either do not exist, or never
have existed.
Now, here are the kickers:
- Each type of CPU uses a different set of
instructions (called code), or an extended set of instructions
for other CPUs.
- Often, these sets of instructions are not
compatible with other, even similar CPUs.
- To make things more complicated, there are
even various different operating systems which even though they
can run on identical hardware, are not compatible with each other.
In Summary:
===============================================================================
- We could take a functional piece of CPU hardware
with I/O capability, construct an operating system of our own
design (naming it "YourName/OS"), and put it to use
in the arena of choice - like a burglar alarm at the clubhouse.
Would it have to be compatible with anyone else's system?
Some parting thoughts for those who are concerned
about "Compatability":
Can your "Operating System" run
Perl, XFree86, Python, Gzip, Emacs, Mcopy, GNU, Gawk, ??
Other CPU Links:
Computer
Hardware Systems - How a Computer really works
What
are some of the conventional Addressing Modes? ..... Generic Addressing
"0's" &
"1's" for Processors (CPU's) ..... Page 1
"0's" &
"1's" for Processors (CPU's) ..... Page 2
Moving
Data with a Processor of any kind
CPU_&_OS.html
SfE-DCS ddf 06/23/2001