|
The Early
Days
The year is 1981 and
the world is in the midst of a severe re-session. IBM's main frame
business has slowed and the company is losing money. Up until now they
had been laughing at the array of microcomputers on the market: Atari,
Commodore, sinclair. Toys really, mostly used to play computer games.
The problem was, these
"toys" were selling like hot cakes. IBM had to get into that market and
get into it fast. They didn't have time to design and build a computer
complete enough to compete in the market, so they built an "open
system". They used commonly available electronic components and they
published every design detail (including the code), and they even
provided plug in slots so that others could build components for their
computer.
And people did provide
components for the IBM PC. They provided video cards, memory expansion
cards, input-output port cards, game port cards, hard disk interface
cards, and much more. How were all these various devices able to
interface with the PC's operating system? That's where a "driver" comes
in.
A hardware device is
constructed with various electronic components using various control
signals, but the software interface to the operating system is
standardized. A device's interface to the operating system must follow
the interface specification. A driver is a piece of software that
translates the hardware's control signals to signals that the operating
system expects, and translates signals from the operating system to the
hardware's control signals.
When the computer is
started up, it would look in the "system" directory for files with the
extension ".drv" and load them into memory. Specific files like
autoexec.bat, config.sys, and win.ini were used to inform the operating
system about drivers. Hardware would be configured through these files,
or through jumpers located on the device itself.
The driver
specification evolved along with the PC. Today when a PC starts, it
executes the program ntdetect.com which queries the hardware components
and builds the registery key
HKEY_LOCAL_MACHINEHARDWARESYSTEMCurrentControlSet. This key exists only
in memory and is created each time the computer boots. If all the
drivers are loaded successfully, a copy of the key is saved as
ControlSet00X.
Under the registery key
CurrentControlSet, the subkey "Enum" contains a subkey for each harware
device on the computer. Each device key contains fields for Hardware ID,
Driver ID, Device Parameters, and other configuration data. The 32-bit
drivers are files with the extension ".sys" and can be found in the
folder C:/winnt/system32.
Driver
Signing
Microsoft has been the
brunt of much criticism because of the poor reliability of the Windows
Operating System. I feel that much of this criticism is justified. On
the other hand, as I described in part 1 of this article, the PC was
designed by IBM as an "open" system. Anyone can sell a hardware device
(or software) for the PC. Should Microsoft be held responsible for the
quality from a third-party?
As I described in Part
1 of this article, the operating system doesn't interface directly to a
hardware device. There is a piece of software called a "driver" that
translates the hardware's control signals to signals that the operating
system expects, and translates signals from operating system to the
hardware's control signals. Obviously, the hardware manufacturer
provides the driver.
Because the driver
works between the operating system and the hardware, a bug in the driver
can cause a serious problem. Many of the problems with Windows have come
from bugs in third-party drivers that Microsoft had nothing to do with.
For this reason, Microsoft created a Hardware Quality Lab to test
drivers. A hardware manufacturer can submit their driver for testing,
and if it is passes rigorous compatibility testing, it receives
Microsoft's digital signature.
You may have received a
message during the installation of a hardware device warning that the
driver was not signed. Why would a hardware manufacturer fail to have
their driver certified by Microsoft? The computer hardware market is
very competitive and the manufacturer might want to bring a new product
to market before thorough testing can be completed. Or maybe they don't
want to or can't afford to pay Microsoft for certification. The question
is, should you click on the "Continue" button to install the unsigned
driver?
In my experience, I
have never been able to trace a problem to an unsigned driver. If it's
your home computer and you performed a back-up recently, go ahead and
install the unsigned driver. If it's a computer on a corporate network,
you may want to back-out of the installation and see if you can locate a
signed driver first. Many times a manufacturer will release a product
with an unsigned driver, then later provide a signed driver as a free
download from their website.
If you decide to go
ahead and install an unsigned driver, you can always update the driver
later. If your computer works with the unsigned driver, I would not
update the driver. When it comes to updating drivers (or the computers
BIOS) I go by the old saying, "if it ain't broke don't fix it".
To update a driver,
select Start | Settings | Control Panel and double-click on the "System
Properties" Utility. In the "System Properties" Utility, select the
"Hardware" tab and click on the "Device Manager" button. In the "Device
Manager" window, right-click on the device in the list and select
"Properties" in the popup menu. In the "Properties" dialog box, select
the driver tab and click on the "Update Driver..." button.
In the "Properties"
dialog box driver tab, you may have noticed the "Roll Back Driver"
button. If your computer has problems with the new drive, you can click
on the "Roll Back Driver" button to roll back to the previous the
driver. Driver roll back saves only one previous driver, so if you
update a driver, then update it again, the original driver is gone. If
the computer has problems with the new driver, always roll back to the
original driver before trying a different one. That way you'll always
have the original driver to roll back to.
Copyright(C) Bucaro
TecHelp.
|