More Bad Drivers on the Information Superhighway

By Larry Seltzer  |  Posted 2008-01-02 Print this article Print

Opinion: To prevent bad device drivers from making the system unstable, Microsoft artificially limits the amount of memory available to Windows.

Its as true of any operating system as it is of Windows, but Windows gets a harder time for it: Bad device drivers make for a bad computing experience. Device drivers are effectively system software. Very often its hard to tell the difference between a device driver problem and a Windows bug, and this is certainly the case for the non-technical. The system can become unreliable or unresponsive. Devices and programs can seem slow or the quality of multimedia features can degrade.

Device drivers need physical access to the hardware, so they have to be trusted by the operating system. This means they have to be trusted not only to respect security measures—a malicious device driver has access to anything and everything on your computer—but its trusted not to muck things up generally.

From market share shifting to the shift to notebooks, the world of desktop computing is always in flux. Read more in our special report .

How bad can it get? If youre running 32-bit Vista and you have 4GB of RAM in your system, youre paying the price for it, whether you have bad drivers or not.

Thirty-two-bit versions of Windows Vista are limited to 3,120MB of effective memory, even if the system has the full 4GB (4,096MB) that 32-bitness should allow. This is intentionally done to protect against what appear to be common errors in device drivers.

The problem is that memory in 32-bit x86 systems is complicated. Its not just a 4GB block of RAM. First, hardware usually reserves big chunks of memory near the top of the address space, limiting usable memory to about the 3.1GB that Windows allows.

But wait, what about PAE (Physical Address Extensions), the standard that puts 36 address pins on those same processors? Surely that means I can use up to (let me find my old HP calculator) ... a lot more than that? 64GB? Yes, but only in theory.

Originally, Windows XP supported all 4GB in systems that had it, but it turned out to be problematic. Microsoft noticed blue screens and crashes.

PAE doesnt change the fact that Windows is a 32-bit operating system. Pointers in programs dont suddenly get 36 bits in them just because the system has PAE memory in it. Im sure other operating systems have similar issues.

PAE is a paging system, sort of like the old EMS (expanded memory system) from real-mode x86 days. In the case of PAE, page tables are used to map a different 4GB space into different processes. So because of the reserved areas of address space, on a system with 4GB of RAM, about 0.9GB of it will be above the 4GB physical limit.

This means that the physical addresses of that memory will have more than 32 bits in them. Because of memory-mapped I/O, device drivers often need to be aware of this fact and account for it, and guess what: They often dont. Sometimes they just assume that addresses are 32 bits.

For this reason, Windows just chops off the upper part of the memory on 32-bit versions. In fact, on Windows Server versions there are similar restrictions, except on the Advanced SKUs. To use all of your memory you need 64-bit Windows, and then you run into the fact that lots of drivers just arent written for it.

Look for this to be an increasingly annoying problem if memory continues to get cheaper, which, over the long term, its bound to do. The move to 64-bit operating systems on the desktop wasnt supposed to be necessary for technical reasons, but it may turn out to be so just so that we get our moneys worth out of our hardware.

Security Center Editor Larry Seltzer has worked in and written about the computer industry since 1983. Check out eWEEK.coms for the latest security news, reviews and analysis. And for insights on security coverage around the Web, take a look at Security Center Editor Larry Seltzers blog Cheap Hack. More from Larry Seltzer
Larry Seltzer has been writing software for and English about computers ever since—,much to his own amazement—,he graduated from the University of Pennsylvania in 1983.

He was one of the authors of NPL and NPL-R, fourth-generation languages for microcomputers by the now-defunct DeskTop Software Corporation. (Larry is sad to find absolutely no hits on any of these +products on Google.) His work at Desktop Software included programming the UCSD p-System, a virtual machine-based operating system with portable binaries that pre-dated Java by more than 10 years.

For several years, he wrote corporate software for Mathematica Policy Research (they're still in business!) and Chase Econometrics (not so lucky) before being forcibly thrown into the consulting market. He bummed around the Philadelphia consulting and contract-programming scenes for a year or two before taking a job at NSTL (National Software Testing Labs) developing product tests and managing contract testing for the computer industry, governments and publication.

In 1991 Larry moved to Massachusetts to become Technical Director of PC Week Labs (now eWeek Labs). He moved within Ziff Davis to New York in 1994 to run testing at Windows Sources. In 1995, he became Technical Director for Internet product testing at PC Magazine and stayed there till 1998.

Since then, he has been writing for numerous other publications, including Fortune Small Business, Windows 2000 Magazine (now Windows and .NET Magazine), ZDNet and Sam Whitmore's Media Survey.

Submit a Comment

Loading Comments...
Manage your Newsletters: Login   Register My Newsletters

Rocket Fuel