Home » Articles » Miscellaneous |
|
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. Micro 2000 Inc has been helping to solve the day-to-day challenges that IT departments face in order to keep their businesses operational as well as profitable for over 14 years. The company's primary goal is to put the customer first - through feature-rich, simple-to-use IT tools that can help IT administrators manage their jobs more effectively.
|
|