This is a very technical article that delves into the internals of Windows, so enter at your own geek level. The gist of it is that there is some deception (from MS? Really?) on Microsoft’s part in their pronouncements, specs and so on as to how much memory is available and usable in 32bit Vista, including Ultimate which one would think, since you are supposedly paying for the ‘ultimate’, would allow everything. The only reason you can’t is Microsoft prevents it in an interesting way. Why? To get people to buy the more expensive 64bit Vista even though, as the article points out, right now there are few programs that need more than 4 GBytes.

If you are up to the programming techiness, it’s a fascinating read. Below is the conclusion from the article.

A perception has developed, and even become widespread, that exceeding 4GB requires a mass migration to 64-bit Windows. At best, this perception misunderstands both the design of Intel’s processors and a decade-old development in 32-bit Windows. Although Microsoft itself seems never to say explicitly that 4GB is a barrier for 32-bit Windows in general, Microsoft does say that 32-bit Windows Vista in particular is incapable of using 4GB and that the workaround necessarily includes using 64-bit Windows Vista instead.

The mechanism by which 32-bit Windows Vista is incapable of using memory above 4GB is simply that Microsoft does not license it to use memory above 4GB. The code to use memory above 4GB is there. Microsoft just doesn’t license you to use it. Microsoft seems never to say explicitly that this is the mechanism.

Microsoft does say that memory use by 32-bit Windows Vista is limited “to avoid potential driver compatibility issues” but the arguments are weak, especially for new computers with new hardware and new drivers. Moreover, Microsoft does not open its arguments to independent testing, given that the license values are protected from being tampered with. Even for machines on which the incompatibilities are real, they would be avoidable through configurable options that exist anyway. That they must be avoided through the licensing mechanism is again not something that Microsoft seems to have explained anywhere.

A suspicion seems reasonable that Microsoft is at least content to have the mass market perceive a 4GB limit to 32-bit Windows, so that the inevitable increase in the amount of RAM fitted to a typical computer will itself move the consumer base to 64-bit Windows and to the 64-bit applications that users will quickly see as natural purchases for their 64-bit operating system. Whatever the reasons for migrating to 64 bits, they should be assessed on their merits. Imposing an artificial limit at an amount of memory that conveniently coincides with a widely believed myth has the look of a marketing ruse. It is an abuse that consumers should not have to tolerate. Someone with authority over Microsoft ought investigate whether representations made by Microsoft about memory limits for Windows Vista are misleading or illegal.




  1. WmDE says:

    #14 The 16-bit processors had 20 or 24-bit address spaces.

    The 20-bit address space got you one megabyte. When you took away the space used by the machine for graphics and other stuff you were left with 640K

    All together now “Memories light the corners of my mind. Misty water color memories….”

  2. ubiquitous talking head says:

    Anyhow PAE is not a solution, most power users will not use it since the processing overhead is not worth the hundreds of MB extra gained.

    As mentioned in TFA, if you’re using Data Execution Prevention (and you probably are), then you’re using the PAE kernel.

    For whatever that’s worth.

  3. johnrudy says:

    #22:

    Technically correct; the more accurate term would have been PAE without the RAM limitation. And again, it’s a very specific scenario which that support addresses — not the common user case.

  4. jco says:

    PAE is an hack that most drivers aren’t ready for. What’s worse, for 90%+ of workloads it actually degrades performance. To sum it up: for most people that means less performance and more bugs/crashes. Gee, I wonder why it’s disabled…

    For those processes that can benefit from huge memory, the 64-bit version is available for no cost difference with drivers that will actually work.

    MS disables it for good reason. Most linux distros do the same for 32-bit versions — why no criticism of them? The author comes across like just another hater/flamer desperately looking for something to criticize.

    The claims that this is somehow anti-competitive or is some sort of misrepresentation are laughable.

  5. sargasso says:

    Uncle Dave is quoted in paraphrase as saying, “.. right now there are few programs that need more than 4 GBytes”. You haven’t hung around young physicists, have you?

  6. ECA says:

    is this what we get for using an “ADVANCED” OS??
    (dont make me LAUGH)
    A corp, that set up an OS and Browser with a HOLE in it so they could SELL, the use of that HOLE, in the browser, for POPUP AND ADVERTS??
    It only cost $99 per year to get access to it..
    AND THINK that hackers wouldnt USE IT??

    Lets add this up..
    A Programming language WRITTEN BY??
    Creating an OS with that programming language??
    Bring all the problems OF THAT PROGRAMMING LANGUAGE??
    Hijacking SCRIPTED languages, and AUGMENTING(???) them to work only with their OWN browser??(look up Java)
    WHICH created HOLES in the Scripting..
    Then some integration of FLASH and activeX creates a great backdoor..

  7. deowll says:

    Post # 3 covered it. The rest is dross.

    Bank switching is not the way to go.

  8. amodedoma says:

    That’s right, M$ can’t be trusted but who can? Any company that’s out to sell you something is not to be trusted. The boyscouts are not to be trusted, the cops are not to be trusted, the governments are not to be trusted, the neighbours are not to be trusted, the family is not to be trusted, the banks are not to be trusted, I could continue but why bother. The time for trust is long past, the age of innocence lost, when the rules of the game are written by those who can’t be trusted then what good is the game.
    Fight the power, screw those that would screw you, and for christ’s sake keep your head down.

  9. Toxic Asshead says:

    Bah. Memory contains carbon and therefor causes global warming. You should use a little memory as possible.

  10. Joe says:

    Post 3 got it. What’s with the anti-Microsoft bullshit on this blog?

    The Linux community must be in on the conspiracy too, because last I checked I needed to use a 64-bit version to use more than 4 GB of address space.

    Even if you use tricks to overcome the limit individual applications are still limited to 4 GB of address space in a 32-bit environment. The 64-bit versions of Windows XP/Vista/7 cost the same as the 32-bit versions and run 32-bit applications with no performance loss, so what’s the big deal anyway?

  11. ECA says:

    1,2,4,8,16,32,64,128…8bit=255
    256, 512, 1024, 2048, 4098, 8192, 16384, 32,768…16bit=65535
    65536, 131072, 262144, 524288, 1048576, 2097152, 4194304, 8,388,608..24bit=16777215
    16777216, 33554432, 67108864, 134217728, 368435456, 536870912, 1073741824, 2147483648..32bit=4,294,967,296
    40bit=?
    48bit=?
    56bit=?
    64bit=???
    If you dont know computer bit math..
    you add the numbers BEFORE it to make the NEXT one then add 1..1+2=3+1=4..
    8bit =1+2+4+8+16+32+64+128=255 when you add 1 more you start 16 bit at 256.
    Value of 32bit=4,294,967,296=4gig.
    ALSO, for you folks that dont know programming to well. 64 bit TAKES more ram to program in ANYWAY. you are dealing with 64bit registers.
    If you took 64bit ram, and could DEVIDE it up for 32bit USE…WOW
    If you could find a machine to HOLD all the ram a 64bit system could handle?? WOW.. REALLY WOWOWOWOWOW…but would you get much use out of it? not really. the OS has to reference 64bits..

  12. Dallas says:

    Wow. We really got the propeller heads out of Fry’s for this story.

    Surely there is some amazing thing obama did today.

  13. Uncle Patso says:

    # 3 jr said,

    2^32 = 4,294,967,296

    / 1024 = 4,194,304

    / 1024 = 4096

    / 1024 = 4

    In other words, the maximum number of bytes that can be supported by a 32 bit architecture is 4 Gb.

    The only way to support additional memory is to use a hardware interface and driver support software. In the DOS days, this was done through the EMM & EMS standards. I doubt anyone really wants to return to that mess.

    jr
    – - -

    My first three computers were 8-bit machines.
    2^8 = 256
    Sure, the first one did in fact come with 256 bytes of RAM, but I later added 4K. Of course, multiplexing two bytes to build an address may be the equivalent of the “hardware interface and driver support software” you mention…

  14. geoffchappell says:

    Since this site’s citation of my article helped to bring down my website for breach of bandwidth, perhaps you will let me answer those who seem to speak about me and my motives …

    On #8, if your FM radio had AM and shortwave already built into it, then I think you would at least find it remarkable if you were offered AM or shortwave receivers separately. Your analogies seem deficient in various ways, but that’s what happens when you prize flippancy over accuracy.

    On #10, how is the article, which I wrote, disingenuous because the “4GB myth” is widely believed by Linux users? If anything, your Google search adds weight to my assertion of wide belief that’s ready to be taken advantage of.

    As to why people should not just use 64-bit Windows and be done with it, I don’t really care. The article doesn’t say one way or the other, but does want to make sure that decisions one way or the other are informed.

    On #18, the article does not come close to your first point. It does allege an indirect interest both for Microsoft and much of the industry in bringing forward an upgrade cycle, particularly for the 64-bit applications that consumers will naturally want once they change to a 64-bit operating system. It says nothing about any direct financial interest of Microsoft’s in whether customers choose 32-bit or 64-bit Windows. Why would it, since as you say, there isn’t one?

    On your second point, I have not presented PAE as a “licensing ploy”. Where do you get that from? What I have said however is that Microsoft’s arguments for not allowing the use of memory above 4GB with PAE do not explain why the restriction is implemented through licensing. If there’s a ploy in that, it would be the obvious one that it means the company makes technical claims about its product but denies the means to test them. There may not be any evil in it, but neither is there openness and honesty.

    As for PAE being a hack, your opinion seems to come more from experience of how it was sold to you rather than of how it actually works. As I say in the article, the naturalness of it seems to escape a lot of people. It is nothing like EMM386 in either its workings or its effects. Indeed, to call PAE a hack, you may as well calling paging a hack, or any CPU feature that an operating system may or may not choose to use.

    The article doesn’t doubt that Microsoft has encountered drivers that misbehave with PAE. There are bad drivers and I sympathise with Microsoft for their existence. The article does doubt that these drivers can be much of a problem recently, but even if they are, they could be dealt with perfectly adequately by defaults for configurable settings that exist anyway. Licensing is a sledgehammer for this nut, and it’s a sledgehammer whose use isn’t being described openly. This is what the article is primarily about. The point is surely beyond dispute. Whether it’s important or relevant, I happily leave to you.

    Had 32-bit Vista not included code for PAE, there would be no article. Had 32-bit Vista included it but with default configurations to restrict memory to 4GB, there would no article, except perhaps if I thought that the justification for the default was being overstated. Instead, 32-bit Vista has the code but you are not permitted to use it, not even to test why.

    On #24, “most drivers” are not the slightest bit affected by PAE. Indeed, _no_ drivers actually need to be. A relative handful need to know that the kernel works with 64-bit physical memory addresses, but ought have no interest in how. Some drivers are trouble because they break the kernel’s programming model, e.g., by working directly with page table entries. These, you should want weeded out even if you’re not using PAE – and they might have been weeded out long ago by the normal effects of free-market competition.

    The performance impact that you talk about for PAE is material only if you are not going to use 4GB in total – in which case, of course, don’t use PAE unless you want DEP. Once your total memory use exceeds 4GB, the gain you get from using physical memory instead of space in a paging file _far_ outweighs the overhead of a slower lookup algorithm in page tables.

    Why no criticism of Linux? That’s simple: I have no knowledge of Linux. If there’s a Linux monopoly that’s using licensing to disable PAE for using memory above 4GB and presenting explanations that don’t really cover what they’ve done, then yes, they ought to be criticised. But it’s not my mission. I have my hands full discovering how Windows works.

    While you’re laughing at my allegations of misrepresentation (which word I use only in a very narrow context), perhaps you can find a link to Microsoft’s clear statement of its mechanism for restricting the use of physical memory and of why it chose that mechanism in preference to others that are simpler and transparent – and indeed, others that would have allowed the company’s justifications to be tested.

  15. Joe says:

    #34 “how is the article, which I wrote, disingenuous because the “4GB myth” is widely believed by Linux users?”

    It just goes to show that your article is a bullshit hit piece. Microsoft isn’t scamming people, you ultimately have to use tricks to be able to use more than 4GB of address space in a 32-bit OS of any type, and then you get various problems and limitations.

    In the case of Vista if you bought a 32-bit version Microsoft will send you the 64-bit media for the cost of shipping from this page:
    http://www.microsoft.com/windowsvista/1033/ordermedia/default.mspx

    Additionally, all “Vista compatible” hardware has to support both the 32 and 64-bit versions. Makes it kinda hard to call it a licensing scam of some sort.

    “While you’re laughing at my allegations of misrepresentation (which word I use only in a very narrow context), perhaps you can find a link to Microsoft’s clear statement of its mechanism for restricting the use of physical memory and of why it chose that mechanism in preference to others that are simpler and transparent – and indeed, others that would have allowed the company’s justifications to be tested.”

    Why aren’t you going after the Linux community? Last I checked all the major distros came in 32-bit and 64-bit varieties, and the 32-bit ones are limited to 4 GB of address space.

  16. Cursor_ says:

    #7

    Actually if MS was really out to screw us they would never have the market share they have now.

    Nor would they be sporting enough to let cheap and low income people continue to have a PC by towing around legacy, old as shit, PC’s.

    Leave it to Steve Jobby Jobs and a family of 4 that makes less than 25k a year would have to use an Apple II and then wait another 5-8 years just to get OS9. OSX wouldn’t be there for another 5 years after that.

    Windows is not the Lexus of OS, its the Ford. The people’s OS with all that entails (Found on road dead). But hey we can all afford a Model A now can’t we?

    Cursor_

  17. PAE User says:

    I wonder how many people commenting on this subject have even tried using Geoff Chappel’s kernel modification to use all 4GB or more of RAM on a 32-bit system. I have with Vista 32-bit and it worked with no driver problems whatsoever. Even graphics benchmarking showed no change in speed.

  18. whatwhat says:

    #3 The only way to support additional memory is to use a hardware interface and driver support software

    Wrong! If you use XP SP2 or SP3 PAE is already activated on your computer — have you noticed any slowdown?

    #3 I doubt anyone really wants to return to that mess.

    No mess at all — it they would let me use it I wouldn’t use it and you wouldn’t notice it.

    #10 with most processors moving to 64 bit, and Windows costing the same whether you get it in the 32 or 64 bit flavor, why screw around with PAE?

    1) Because the 32-bit drivers for all the devices you have don’t exist on 64-bits.
    2) Because IT’S ALREADY TURNED ON on most computers with Windows XP, drivers do work properly and additional 2 GB of RAM are the cheapest way to improve performance.
    3) On 64-bits ONLY signed drivers are allowed. No more chane of avoiding anything MSFT wants.

    #15 then why does 32-bit Linux suffer from the same issue?

    You can install unlimited PAE kernel on every Linux. Thre are no artificial limits like on Windows XP, Vista and 7.

    #16 You pay for 4 but you only get to use 3 !!!

    Exactly what they do now — if you have 4 GB machine 1 GB is doing nothing. It would be able to be used for your applications. On 64-bit Windows that same 1 GB would be used for copies of 64-bit code that are not needed when you use 32-bit version. With 4 GB computer, unlimited PAE is better than 64-bit — it’s FASTER and takes LESS RESOURCES.

    # 18 johnrudy

    Don’t hide behind your apparent “professionality,” you still don’t know what your talking about. 64-bit programs are very often slower than 32-bit ones. Reason: pointers. Any significant program today works with a lot of pointers. Every pointer in 32-bit program is 4 bytes. Every pointer in 64-bit program is 8 bytes. Then to achieve the same performance you have to have the RAM subystem twice as fast.

    johnrudy: “it’s a very specific scenario which that support addresses — not the common user case.”

    Not specific at all. OS works with PAGES. It ALREADY always uses 36-bit addresses which processors support for years. It can use up to 64 GB of RAM and everything would be FASTER on your machine — everything you need from your hard disk would already be in RAM cache, only writes would need to physically access the hard disk. Try 32-bit Windows Server with more than 3 GB if you don’t believe me.

  19. #35:

    You had me all excited expecting to discover how Linux users believing a myth makes me disingenuous – and then you said nothing to explain it. But let’s look at what you do say even if it wasn’t in the promised context.

    You seem to take it for granted that linear and physical address spaces must be the same size, else there’s some trick. Paging is the trick. One you accept paging, the physical address space can be any size relative to the linear address space. Problems and limitations exist only inasmuch drivers might be written by people who ignore the system’s design and insist blindly that the linear and physical address spaces must be the same size. This is not to say that bad drivers in this respect don’t exist, but it is to doubt that they are so great a problem that the system should be _forcibly_ hobbled to accommodate them.

    I don’t doubt that Microsoft supplies 64-bit Windows Vista readily. I don’t doubt that many consumers will take up the offer. (Of course, I have 64-bit Windows Vista myself.) I also don’t doubt that they will take up the offer because they have read, from Microsoft, that 32-bit Windows Vista cannot use all 4GB of their physical memory and 64-bit Windows Vista is the _only_ possible way to use all 4GB. That they are being deceived almost for free does not change that they are being deceived. That they might assess 64-bit Windows Vista as their best option even if given full information doesn’t change that they are being deceived when told that it’s their only option.

    On Linux, as I have said already, I am a specialist in Windows and have no knowledge of Linux, but if 32-bit Linux is limited to 4GB simply by not offering PAE, then I would no more criticise it than I would criticise 32-bit Windows Vista for not implementing PAE. However, 32-bit Windows Vista does implement PAE. It can use memory above 4GB, not as a feature on a wish list, but right now, as shipped, if fed the “right” licensing data. If that’s what happens with 32-bit Linux and there’s a similar deceit about it, or even a failure to pop the myth about 4GB being a fundamental limit to 32-bit operating systems, then yes, the relevant Linux parties also should be criticised – but the criticising would have to be someone else’s, since I have no competence with Linux.

    #37:

    Take care. Bad drivers are out there, however much their number must be rapidly decreasing and would surely have been eliminated entirely by natural competitive forces had computer manufacturers been offering consumer editions of 32-bit Windows with more than 4GB of RAM. Microsoft is quite correct that the effects might be sporadic, difficult to detect and even more difficult to debug. I don’t wish such problems on you, but you may get to test the article’s assertion that bad drivers could be dealt with adequately by setting the truncatememory option to bring you back to 4GB.

  20. PAE User says:

    Thanks for the advice in #39 but if we are going to use the truncatememory option to limit memory to 4GB would it not be easier to just leave the first sequence “Kernel-WindowsMaxMemAllowedx86″ as the default value of 4GB and just increase the second sequence “Kernel-MaxPhysicalPage”?



Bad Behavior has blocked 25780 access attempts in the last 7 days.