Tilted Forum Project Discussion Community  

Go Back   Tilted Forum Project Discussion Community > Interests > Tilted Technology

LinkBack Thread Tools
Old 08-26-2009, 05:49 AM   #1 (permalink)
We work alone
LoganSnake's Avatar
Location: Cake Town
32-bit Vista DOES Support More Than 4GB of RAM

Though machines with 4GB are not yet the typical purchase for home or business use, they are readily available from major manufacturers and it won’t be long before they are the typical purchase. But there are problems. You don’t have to stand for long in a computer shop to hear a sales assistant talk of 4GB as some sort of limit for 32-bit operating systems, and it won’t be long before this sales patter develops into outright promotion of 64-bit Windows as the only way to get past this limit. Some sense of this can be seen already in manufacturers’ advertising materials, as in the following fine print from Dell:

The total amount of available memory will be less than 4GB. The amount less depends on the actual system configuration. To fully utilise 4GB or more of memory requires a 64-bit enabled processor and 64-bit operating system, available on selected systems only.

Let me stress now that I do not complain about Dell’s statement. Its first two sentences are correct for all 32-bit editions of Windows Vista exactly as configured by Microsoft and installed by Dell. In the last sentence, I might quibble that the talk of a 64-bit processor is superfluous since the machine on offer does have such a processor, but otherwise the sentence is correct because of the word fully. Yet although Dell’s statement is true, it is not the whole truth: there is something that Microsoft does not tell you, and perhaps does not tell Dell.

That 32-bit editions of Windows Vista are limited to 4GB is not because of any physical or technical constraint on 32-bit operating systems. The 32-bit editions of Windows Vista all contain code for using physical memory above 4GB. Microsoft just doesn’t license you to use that code.

Well, to say it that way is perhaps to put words in Microsoft’s mouth. I say the restriction to 4GB is a licensing issue because that’s how Microsoft’s programmers evidently have thought of it. The 4GB limit is retrieved from the registry by calling a function named ZwQueryLicenseValue, which is itself called from an internal procedure which Microsoft’s published symbol files name as MxMemoryLicense. If you remove this check for the licensed memory limit then a restriction to 4GB is demonstrably not enforced by other means. Yet I must admit that I have not found where Microsoft says directly that 32-bit Windows Vista is limited to 4GB only by licensing. The supposed License Agreement doesn’t even mention the word memory. What, really, is going on?


Put aside for now the fine print of what it means to “fully utilise” and ask for instance what you expect to see for the System Properties in the original 32-bit Windows Vista on a machine with 8GB of RAM. Click on the snapshot if you need to see it full-size and hi-fi:

System Properties Showing 8189MB of RAM

No, this image is not a mock-up, except that the red rectangle is my addition to highlight that this 32-bit operating system which ordinarily finds only 3069MB of RAM on this machine seems happy to have 8189MB. It will use all this memory, too, not that I have any ordinary need for it to do so. The next picture is as much a record of my unimaginativeness as of 32-bit Windows Vista actually using (very nearly) all the installed 8GB. An entirely ordinary test program writes 1GB of data from a single memory block to a file and reads the file back. By the time that eight instances are running concurrently, all the physical memory is in use:

Task Manager Record of Using 8GB of RAM

Of course, there are contrivances and caveats. To get these pictures without contrivance, you would need a license upgrade from Microsoft, which Microsoft shows no sign of offering. The license data that is supplied with Windows is protected in various ways from being tampered with, and I certainly do not mean for anyone to try changing it, even for testing. Instead, to simulate having new license data from Microsoft, I have modified the kernel just enough so that it ignores the license data for memory limits, and I have started Windows in Test Mode so that it tolerates a kernel that no longer has Microsoft’s digital signature. Neither of these steps is meant for general use. I am not solving for you or anyone the problem of how to have 32-bit Windows Vista use all your 4GB of physical memory with or without Microsoft’s permission. Neither am I saying that 32-bit Windows Vista is a better (or worse) option than 64-bit for using 4GB or more of memory. I am just demonstrating that despite what Microsoft and many others say to the contrary, 32-bit Windows Vista actually can use all the physical memory that you can feasibly install in a computer for a home or small business. The code for doing it is already in the product that Microsoft sells you. The code doesn’t need to be changed even by one byte, but to demonstrate that the code works as is, I have to patch the code because Microsoft does not permit changing the license data. If you want that this should work for you without contrivance, then pester Microsoft for an upgrade of the license data or at least for a credible, detailed reasoning of its policy for licensing your use of your computer’s memory.

As for caveats, you should know that although I study software, I do not have the testing resources of a software or hardware manufacturer. I don’t know of anything that misbehaves now that Windows finds all this memory that it ordinarily overlooks, but I can’t swear that everything works correctly in every detail. With one exception, my test installation is just the 32-bit Windows Vista Ultimate from MSDN discs, with all Windows features installed, but with no real-world additions of applications or drivers. The exception is that some of my tests failed until I installed an updated display driver (from NVIDIA). That’s as good a reminder as any that when I say 32-bit Windows Vista has working code for using memory above 4GB, I talk of what Microsoft has written for Windows, not of what you add to your Windows installation from who knows where.

Still, even with contrivances and caveats, how can it be that I, or you after following my directions if you want to test what I say, can get anywhere near to producing such pictures? After all, for the page The system memory that is reported in the System Information dialog box in Windows Vista is less than you expect if 4GB of RAM is installed, Microsoft states plainly that “for Windows Vista to use all 4GB of memory” you need an “x64 (64-bit) version”. The pictures above show just as plainly that this statement by Microsoft cannot be entirely truthful. Even if you’re perfectly happy to upgrade to 64-bit Windows Vista—and for all you’re to know from reading this article, I’m among you as having happily upgraded—I ask that you focus on whether Microsoft is entirely open and truthful. Even if you don’t care about that for this issue, you may for another. The more that technology companies get away with half-truths and the exploitation of ignorance even on one issue, the more they can drift into it as a recurring practice.

What is the truth, then? When someone says some such thing as that 32-bit Windows Vista is technically, physically or architecturally incapable of using all your 4GB or more of RAM, what can they mean?

There is already on the Internet and elsewhere an awful lot of rubbish to read about this question. Hardly any of it would be worth citing even if I didn’t want to spare the authors the embarrassment. A surprising number of people who claim some sort of attention as expert commentators would have you believe that using more than 4GB of memory is mathematically impossible for any 32-bit operating system because 2 to the power of 32 is 4G. If nothing else, they don’t know enough history: 2 to the 16 is only 64K and yet the wealth of Microsoft is founded on a 16-bit operating system that from its very first version was designed to use 640KB of RAM plus other memory in a physical address space of 1MB. Some remember this history and add seemingly plausible qualifications that exceeding 4GB is possible only at the price of nasty hacks that require everyone (all programmers, at least) to jump through hoops. Fortunately, Intel’s processors are a lot more advanced than the 8086 from all those years ago.
Link to the full article with some key parts highlighted by the author: Geoff Chappell, Software Analyst - Viewer
Maturity is knowing you were an idiot in the past. Wisdom is knowing that you'll be an idiot in the future. Common sense is knowing that you should try not to be an idiot now. - J. Jacques
LoganSnake is offline  
Old 08-26-2009, 09:18 AM   #2 (permalink)
Broken Arrow
Vigilante's Avatar
Location: US
Of course M$ is not open and truthful. Ha, talk about naive. I can't believe he said that

But it is cool that one can unlock 4GB+ mem access in vista. That's pretty sweet, thanks for the article!
We contend that for a nation to try to tax itself into prosperity is like a man standing in a bucket and trying to lift himself up by the handle.
-Winston Churchill
Vigilante is offline  
Old 08-26-2009, 09:57 AM   #3 (permalink)
Crazy, indeed
Location: the ether
That article is a bit misleading if you don't know the specifics of the debate. First of all, to get that to work on vista, you have to have the hardware. That is, 32 bit is a real hardware limitation, it's just that nowadays most people are running 64 bit cpus on machines with 32 bit OS. If you have a 32 bit cpu, the limit is very real.

The problem with 32 bit software is that it can't "address" memory above 4gb. That is, its there, people can use, but software simply can't tell where the item is above 4gb. The little hack mentioned in the article goes around that, because it physically addresses memory in the mapped part of the ram. It's called Physical Address Extension, it allows the use of more than 4gb, but the problem is that the memory then must be managed by the application, not by the OS as windows does. This means that many drivers will have a problem with using that hack, and if you do that you will start encountering the famed BSOD.

Im all for some microsoft bashing, but given how 64 bit and 32 bit versions of vista and windows 7 cost the same, the whole conspiracy angle is out.
dippin is offline  
Old 08-26-2009, 10:35 AM   #4 (permalink)
We work alone
LoganSnake's Avatar
Location: Cake Town
Interesting take. Thanks for the input.
Maturity is knowing you were an idiot in the past. Wisdom is knowing that you'll be an idiot in the future. Common sense is knowing that you should try not to be an idiot now. - J. Jacques
LoganSnake is offline  
Old 08-26-2009, 11:05 AM   #5 (permalink)
Knight of the Old Republic
Lasereth's Avatar
Location: Winston-Salem, NC
Well, sure. The title is still misleading though. 32-bit Vista does not work with 4 GB of RAM or more without altering the licensing mechanics and running it in test mode. That's like saying my car seats 4 people, but I can actually get 8 in it without seat belts. Sure it can but it doesn't come prepared to do it.

Very interesting that it's a software limitation though.
"A Darwinian attacks his theory, seeking to find flaws. An ID believer defends his theory, seeking to conceal flaws." -Roger Ebert
Lasereth is offline  
Old 08-26-2009, 04:57 PM   #6 (permalink)
Reese's Avatar
To add a little something to the thread, The 4gb limit of 32 bit systems means that's all the memory it can address total. It's not how much system ram you can actually have. You have to take into account video card ram and other things into account too. I know this thread isn't exactly about that but it's info that saved me some money when I was about to max out my old 32bit system with 4gb of DDR ram and really only had room for about 3 gigs.

Problem is solved for a while with 64 bit systems though.. I think the limit to those is 16 exabytes.. I wonder if that limit will be hit in my lifetime.
“It is better to be rich and healthy than poor and sick” - Dave Barry
Reese is offline  
Old 08-27-2009, 07:14 PM   #7 (permalink)
tcp's Avatar
Notebook manufacturers have for some reason started to say 3GB is the maximum for 32-bit Windows. I know about Windows reserving almost a gigabyte for system bus use, and the bug in XP that used to display only 3GB in Computer Properties when 4GB was installed, however I think they are going off bad information. They must be referring to certain intel core i7 with ddr3 that use triple band memory configurations of 3 or 6GB, but not many notebooks will have this configuration
tcp is offline  
Old 11-22-2010, 09:21 AM   #8 (permalink)
Does this post hold true to Windows Small Buisness as well.
mhammons is offline  
Old 11-30-2010, 06:41 PM   #9 (permalink)
Knight of the Old Republic
Lasereth's Avatar
Location: Winston-Salem, NC
Wow I was just reading an article that helped me solve a BCD problem I had and it was the same author. This guy really knows his shit.

This software limitation still pisses me off to no end. I'm having to build 64-bit images at work due to the 4 GB ram limit and it's making my life a living hell.
"A Darwinian attacks his theory, seeking to find flaws. An ID believer defends his theory, seeking to conceal flaws." -Roger Ebert
Lasereth is offline  
Old 11-30-2010, 08:30 PM   #10 (permalink)
Confused Adult
Shauk's Avatar
Location: Spokane, WA
I would have cared about this when it was relevant. But I'm happy with Win7 and I've always felt Vista was less than stellar, and XP, while I wouldn't use it NOW, was great with what you gave it.

Still, nice read.
Shauk is offline  

32bit, 4gb, ram, support, vista

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

All times are GMT -8. The time now is 02:28 AM.

Tilted Forum Project

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Search Engine Optimization by vBSEO 3.6.0 PL2
© 2002-2012 Tilted Forum Project

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57