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. Improbus says:

    This is why I loath Microsoft with every fiber of my being. They. Are. Evil.

  2. tcc3 says:

    64 doesn’t cost any more than 32. The conspiracy here isn’t price, its beta testing the new platform.

    Keeping the versions separate allows them to test the OS redesign on a smaller number of guinea pigs, while avoiding the stigma of a beta and still accumulating revenue.

    XP 64 started out very temperamental, had compatibility issues, and no driver support. Vista 64 was much improved, and now 7-64 is practically indistinguishable from the regular OS. By the next version of windows there wont even be 2 versions: only 64 with 32 bit compatibility.

    They did the same thing with Media Center – started as an OEM only, got better and better until now its in every version of windows.

  3. Mac Guy says:

    Something tells me the EU will use this info in order to go after MS once again.

    #2 – Currently, yes, that is the case. However, who’s to say that this isn’t a dry run for MS to see if they can pull off the same stunt with Windows 7? Anyone know the pricing for Windows 7 yet?

  4. Cursor_ says:

    MS isn’t being evil here.

    They are stopping users from having more issues with the system and blaming MS and making them look worse than they already do.

    Its a CYA on MS’ part.

    Cursor_

  5. ubiquitous talking head says:

    / 1024 = 4

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

    You need to read the article. It explains why you are wrong much better, and more kindly, than I possibly could.

  6. Improbus says:

    @Cursor

    Yes and their internal motto isn’t: How can we screw you today?

  7. bobbo says:

    Silly to think that “anything” that doesn’t do something “else” is illegal, badly designed, or whatever.

    I bought an FM radio yesterday. It should be illegal that it doesn’t receive AM and shortwave?

    Or, actually contra and seriously, I would buy a 19 inch LCD HDTV right now IF it ported the digital signal to a firewire plug so that the unit could act as a tuner card/monitor for my pc. Its all there except for a 50cent part. That part isn’t there for MARKETING REASONS, just like all the other parts aren’t there for other products.

    Its called free market, capitalism, and competition. I’m against it too.

  8. Kahless says:

    The article is a bit disingenuous itself. A quick Google search reveals that most Linux users seem to believe the “4GB Myth” as well. Indeed, Linux or Windows can use more than 4GB with PAE, but 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? Why not just use the 64 bit version and be done with it.

    I don’t believe MacGuy’s assertion the the 64 bit version of Windows will be any more expensive than the 32 bit. With Vista they were the same pricing, and Microsoft seems to genuinely want to move people to 64 bit architecture (it seems because it’s easier to natively address RAM than to use PAE). They are already doing it with their server products. If they made it more expensive, they’d slow down that adoption.

  9. Olo Baggins of Bywater says:

    MS wants us to use 64-bit because, IIRC, it requires signed drivers.

  10. Uncle Dave says:

    #9: It was taken out because it was behind a lot of the constant slowdowns and other problems. If you would rather have those back…

  11. GF says:

    I could definitely push some Adobe image manipulation programs beyond 3 GB. Considering that each program instance still has a 3GB limit even if Vista/XP/2000 was ‘licensed’ to use more RAM, I see no reason to care about this. I don’t see myself running 50 programs all at once all by myself. I guess it’s great if I’m running a server. Damn, maybe not, did everyone forget there is a connection limit on Vista/XP/2000 too. Guess 64 bit is still the way to go if I want to use more than 3 GB for a single program.

  12. KarmaBaby says:

    #3, In other words, the maximum number of bytes that can be supported by a 32 bit architecture is 4 Gb. </i?

    Does that mean 16-bit architecture can only support 64 KB (2^16) or memory?

  13. Linux Lurker says:

    Umm…then why does 32-bit Linux suffer from the same issue?

  14. Nimby says:

    I’d be happy with 4GB for the most part. I don’t do heavy duty image processing or have more than three or four programs running at once. But, damn! You pay for 4 but you only get to use 3 !!!

  15. chuck says:

    Microsoft wants you to believe that you need more than 4GB to run your applications. But, as the article points out, most applications don’t need anywhere near 4GB to run.

    Unless you use video-editing or massive image editing software, it’s usually the OS (Windows) which needs the most memory.

    PAE is supposed to allow individual applications to address memory up to 4GB – the idea is that if you had more than 4GB, PAE handles the memory swapping. The theory is that if you wanted to run several applications that each required less than 4GB each, you could still run them all together, and PAE would handle the memory swapping.

    But MSFT has artificially limited PAE to 4GB, so it swaps to the hard drive, which is much slower.

    It’s reasonable to assume that MSFT does this because they want to push to 64-bit windows, which bumps the addressable memory to 2^64, and also allows MSFT to drop backwards compatibility. Since some people still want backwards compatibility, they will happily give you VirtualPC, which can run XP (as long as you have a license to both XP and 64-bit windows).

    Are there really that many people out there running old 16-bit-only, or even DOS apps? The answer is: yes, businesses of all sizes have 1000s of legacy apps, some of which will never be updated, and businesses want to stretch the lifetime of these apps for as long as possible. It makes sense for a business, which may have invested an enormous amount of money in development and training, to want to continue to use the same application, regardless of how clunky it may be.

    Why do you think businesses buy Windows more than Macs? I’d love to have a bunch of shiny new, reliable Macs in my office – but I need to be able to run some very old (20+ years) applications in order to support my clients. I’m sure if I told my clients they had to upgrade their systems because I’m getting new PCs, some would upgrade. But others might decide that if they have to switch, they might switch to a competing system.

    MSFT is in the same situation. Do you think Bill Gates still likes supporting DOS? But if he drops backwards compatibility completely, then those shiny Macs start looking better and better.

  16. Mark says:

    #18 seems to make a great deal of sense, thanks for that. Of course, it will be lost to the average reader, who won’t go through the comment thread (and Dvorak knows this), and thus the Microsoft=evil meme will continue.

    Who really benefits from this? Dvorak and his curmudgeon mystique.

  17. 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….”

  18. 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.

  19. 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.

  20. 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?

  21. 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..

  22. deowll says:

    Post # 3 covered it. The rest is dross.

    Bank switching is not the way to go.

  23. 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.

  24. Toxic Asshead says:

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

  25. 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?

  26. 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..

  27. 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.

  28. 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…

  29. 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.

  30. 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.


1

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