|
<< BACK
TO SUMMARY
Why O/S Independence?
Many technicians want to know what the specific advantages are
to them of having diagnostic software that is operating system-independent,
like MicroScope, rather than one of the many programs that run under
DOS and Windows, some of which are less expensive. Naturally, we
are happy to explain. And pardon us if some of this seems a little
basic for those of you who have been in the business for years.
Almost all of the IBM-type personal computers in the world run
a general-purpose operating system such as Windows, DOS or Linux.
General purpose means it allows the user to run a wide variety of
applications, everything from word processing to video games. The
operating system (OS) provides the basic interface for the user,
and in the background it runs all of the hardware.
This means that if an application needs data from the disk drive,
it's actually the OS that finds the data, decides where to put it
in RAM (Random Access Memory), and then makes it available to the
application. The application does not know the actual physical location
of that data, either in RAM or on the hard drive. Sometimes the
OS will let the application bypass it, but in systems like Windows
NT, the applications are absolutely prevented from accessing any
hardware directly. Only the OS has any direct contact with the hardware.
Now, this is normally a very good thing. It would be quite cumbersome
if every application had to contain the code to manage disk I/Os,
keystroke and mouse input, video etc. It would be worse yet if the
user had to deal with all of that, because everyone would need to
be a trained technician just to get anything done on a computer.
However, problems arise if the application is trying to troubleshoot
or benchmark the hardware. For example, how can you test a specific
sector of a hard drive if the operating system (in conjunction with
the drive controller and the BIOS) decides where the data will go
on the drive? And if the operation fails, how can we determine if
the drive mechanism or the controller was at fault? All the application
knows is that it hands data off to the OS for disk storage and then
gets it back in altered form or not at all.
Another example is memory testing. Normally the OS assigns a block
of memory to an application, which can play around within that block
by using something called logical addressing. The application knows
where specific contents are relative to the other contents of the
block, but it doesn't know where the block is physically located
in memory, which makes it very difficult to know just which chip
or module is at fault when an error occurs. To complicate things
even more, most systems use a cache, which stores the RAM contents
being currently used by the CPU in order to provide faster access
to those contents. When a memory test writes to memory and then
reads back different data, did the error occur in the RAM or in
the cache?
The tests for most other hardware will run into some kind of OS
interference similar to the ones above, and we will have a couple
of additional examples in a moment. By now though, you are probably
wondering how MicroScope is able to avoid these problems.
When we say that MicroScope is OS-independent, that doesn't mean
it can run without an operating system. Of course every application
must have an operating system, or it must include one. MicroScope
comes with its own operating system, and a system boots up to our
OS in order to run the MicroScope routines. This OS is one that
is written especially to allow diagnostic operation of the hardware,
for instance to access a specific memory or disk location.
In order to do this, it was necessary to write the operating system
and the diagnostic routines in something called Assembly language.
This programming language is considered a low-level language because
each instruction in the program represents one instruction for the
CPU. The instructions must still be translated into ones and zeroes
for the CPU but otherwise nothing gets changed, which allows for
very precise control by the programmer.
By comparison, most programming languages are what are high-level
languages. In these, each line in the program may represent many,
many CPU instructions. The programmer's written code has to be run
through another program called a compiler, which translates each
program line into a set of CPU instructions, determines the order
they will run in, and assigns them all relative locations within
the compiled program. Right from the beginning, the programmer has
lost control over where the CPU instructions will be located in
memory, or even within the program itself, because it's all determined
by the compiler program.
Almost all diagnostic programs other than MicroScope are written
in one of these high-level languages. When you add the fact that
they will run under an OS designed to operate the hardware completely
in the background, it's easy to see why MicroScope allows for greater
precision and superior accuracy.
In wrapping this up, let's look at just two more examples. Occasionally
a second hardware device will mistakenly get set to the same IRQ
(Interrupt ReQuest) as something already in the system. This causes
errors of course, because the CPU can't tell which device is requesting
an interrupt. Windows is not capable of considering that a second
device might be using an assigned IRQ, since this is not an allowed
circumstance, and therefore will not report the second device to
the user or to a diagnostic program. MicroScope handles this situation
easily, and lets you locate the offender with just a couple of keystrokes.
Last, consider a simple request for information, such as CPU speed.
If an application running under Windows wants this data it must
ask Windows for it, which will then return the value that's been
set in CMOS. This may or may not be an accurate value, and certainly
won't tell you if the CPU chip is being over-clocked. With this
and any other system information, Windows also won't actually tell
you (or the diagnostic) whether the data is coming from a direct
measure of a hardware device (almost never), or from a reading of
the CMOS or other stored information (almost always). On the other
hand, MicroScope lets you have it both ways, and tells you which
is which.
Disclaimer - The Micro 2000 Tech Tip is a free service
providing information only. While we use reasonable care to see
that this information is correct, we do not guarantee it for accuracy,
completeness or fitness for a particular purpose. Micro 2000, Inc.
shall not be liable for damages of any kind in connection with the
use or misuse of this information.
|