Forgot your password?
typodupeerror
Windows Operating Systems Software

Behind the 4GB Memory Limit In 32-Bit Windows 756

Posted by kdawson
from the we-can-remember-it-for-you-wholesale dept.
An anonymous reader points us to a very detailed post by Geoff Chappell, first put up early this year, explaining how the 4GB memory limit commonly bandied about for 32-bit Windows (he is writing mainly about Vista) is more of a licensing preference than an architectural limit. The article outlines how Chappell unlocked his system to use all the memory that is present, but cautions that such hackery is ill-advised for several reasons, including legal ones. "If you want [to be able to use more than 4GB in Vista] 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. ... [C]onsider Windows Server 2008. For the loader and kernel in Windows Vista SP1 (and, by the way, for the overwhelming majority of all executables), the corresponding executable in Windows Server 2008 is exactly the same, byte for byte. Yet Microsoft sells 32-bit Windows Server 2008 for use with as much as 64GB of memory. Does Microsoft really mean to say that when it re-badges these same executables as Windows Vista SP1, they suddenly acquire an architectural limit of 4GB? Or is it that a driver for Windows Server 2008 is safe for using with memory above 4GB as long as you don't let it interact with the identical executables from Windows Vista SP1?"
This discussion has been archived. No new comments can be posted.

Behind the 4GB Memory Limit In 32-Bit Windows

Comments Filter:
  • by schon (31600) on Tuesday August 25, 2009 @03:19PM (#29190961)

    is more of a licensing preference then an architectural limit

    So it's a licensing preference, followed by an architectural limit? If so, how is this a story?

  • Now they will say nobody needs more than 4G of RAM.

    I remember back in the day when 8M of RAM was considered too much.

    Looks like Microsoft will force upgrades to Windows 7 to get over the 4G RAM limits?

    Ah for the days of the AST Rampage card that got over the 640M RAM limits using EMM/EMS memory standards. Can't someone just write a RAM extender driver for 32 bit Windows for XP and Vista to get over the 4G RAM limit?

    • Re: (Score:3, Informative)

      by wastedlife (1319259)

      Looks like Microsoft will force upgrades to Windows 7 to get over the 4G RAM limits?

      I doubt 32-bit Win7 will drop this limitation. Also, you can already use more than 4GB RAM in 64-bit editions of XP and Vista.

      Ah for the days of the AST Rampage card that got over the 640M RAM limits using EMM/EMS memory standards. Can't someone just write a RAM extender driver for 32 bit Windows for XP and Vista to get over the 4G RAM limit?

      Not likely, NT-based OSes (WinNT, 2000,XP, 2003, Vista, 2008, and 7) are not DOS, and the methods of accessing memory are not the same. EMM386 was designed to access higher areas of memory in 16-bit and 16/32 hybrid operating systems(DOS, Win9x + ME). NT is an actual 32-bit OS with flat memory addressing.

      Besides, this isn't a technical limitation, this is an imposed limit by Microsof

    • by psetzer (714543) on Tuesday August 25, 2009 @04:12PM (#29191807)

      That's what PAE is. To the process, the address space is just one huge flat expanse from 00000000 to 7FFFFFFF. (or BFFFFFFF if the OS is configured that way and the software understands it) To the OS, the processes are allocated RAM in 4 kB pages which are mapped to their corresponding hardware frames in RAM via the page table. When the process accesses an address, the low 12 bits determine where within the page it should read, while the high 20 bits determine the entry in the page table. That entry has the hardware address which it then accesses. PAE allows the hardware address to be larger than 20 bits so that the OS can address more than 32 bits of physical memory transparently to the individual processes.

  • by theaveng (1243528) on Tuesday August 25, 2009 @03:21PM (#29190983)

    That's how my Commodore=128 got around the 64k limitation of its CPU, and could access upto 16 banks or 1 megabyte of RAM.

    If the same technology was used with 32 banks of Windows XP space, you could get 128 gigabytes.

  • Simple (Score:5, Informative)

    by TheRealMindChild (743925) on Tuesday August 25, 2009 @03:21PM (#29190987) Homepage Journal
    Does Microsoft really mean to say that when it re-badges these same executables as Windows Vista SP1, they suddenly acquire an architectural limit of 4GB? Or is it that a driver for Windows Server 2008 is safe for using with memory above 4GB as long as you don't let it interact with the identical executables from Windows Vista SP1?

    Windows Server 2008 drivers have to be signed. For them to get signed, they can't do stupid shit like assume they are loaded in the memory space between 3GB->4GB, I'd imagine.
  • Word for the wise (Score:5, Informative)

    by Anonymous Coward on Tuesday August 25, 2009 @03:22PM (#29191007)

    On a 32-bit system a single process will always be limited to 4 GB due to the number of address bits, unless the programmer goes through hoops to access a larger memory area one small piece at a time (tricks like that were common in the DOS era -- anyone remember EMS?). On Windows the kernel typically reserves one half of the address space, cutting the usable memory of a single process down to 2 GB. Thus you won't get much advantage from a 64 GB capable kernel unless you run multiple programs that all require 1-2 GB of memory. Come to think of it, such usage is most likely on a server.

    • Re: (Score:3, Informative)

      by Psyborgue (699890)
      Photoshop will eat up memory by the gigabyte as will 3d sculpting apps and reyes type renderers. Video editing in HD almost always requires a large amount of ram for ram previews and smooth scrubbing among other things.
      • Re:Word for the wise (Score:5, Informative)

        by Chris Burke (6130) on Tuesday August 25, 2009 @03:41PM (#29191289) Homepage

        Then get a 64-bit OS and be happy.

        PAE is a hack. Even if your copy of windows supports it, it still sucks. It doesn't actually grant the ability to access all 64GB at the same time, it only lets you access it in 4GB windows, so your app has to jump through a lot of hoops to be able to actually use that memory. It was a decent solution for having large databases in the 32-bit era, and that was rightly the only place it should be used. Today, 64 bit cpus are completely mainstream and vastly superior for handling large amounts of data.

        Frankly, in the era of 64-bit budget computers, I think calling the 4GB limit "architectural" is as fair as saying the 286 had a 1MB limit after the introduction of the 386. Technically not completely accurate, but for most nearly all practical purposes it drives the listener in the right direction, which is getting the product which doesn't have the restriction in any way.

        • Re:Word for the wise (Score:4, Informative)

          by BikeHelmet (1437881) on Tuesday August 25, 2009 @07:25PM (#29194471) Journal

          Then get a 64-bit OS and be happy.

          I agree.

          PAE is a hack.

          I disagree. Paging is fundamental to memory management. You like having memory mapped to 4KB pages, but call it a hack when those 4KB pages are mapped to different physical memory locations? Why?

          Apparently PAE is even more efficient than 64bit addressing. It's the faster option, although you're 100% correct about the per-process limit being roughly 3GB, which means it'll be obsolete shortly. Games, video editing, and virtual machines will be first to benefit from 64bit > 4GB memory usage.

          What I've always wondered is why Windows uses 4KB pages. Larger pages are far more efficient. The guy who made 7-zip tried hacking in multi-megabyte pages, and had a 15% speedup. O_o

        • Re:Word for the wise (Score:4, Informative)

          by Pr0xY (526811) on Tuesday August 25, 2009 @08:16PM (#29194975)

          Complete BS, PAE isn't a hack, in fact the way paging is done on x86-64 is designed very similarly to 32-bit with PAE, using an extra layer of indirection as PAE does. (Yes your 64-bit CPU actually likely has 48-bit's of **physical** memory).

          Also, you are completely ignoring things like disk cache, which can massively improve system performance. Sure no **single** application will be able to use all of that memory, but the system as a whole can easily get that high if it has the RAM to work with.

          For example, I have a Linux box with 4GB of RAM using a 32-bit with PAE kernel. Routinely after a few hours my disk cache is upwards of 3GB. The system is noticeably faster once the disk cache is populated vs immediately after startup.

          Take a look at the Intel docs, PAE isn't a hack in any way.

      • Re:Word for the wise (Score:5, Informative)

        by Sandbags (964742) on Tuesday August 25, 2009 @04:05PM (#29191655) Journal

        Yea, but even if you enable 16GB of RAM under 32bit Windows, XP and Vista can only give 2GB of it to photoshop, MAX. No SINGLE application can utilize more than 4GB of virtual address space under PAE, had half the address space is reserved for the lernel. PAE however is disabl;ed under 32bit OS as it has risks, especially for lots of drivers, and letting general users have access to this, without a process for validating and supporting all their apps under it (which most companies do not have programmers who understand this type of addressing), would be a support nightmare. PAE works when lots of individual apps need to run concurrently, or when multiple instances of the same app need to run under seperated memory spaces. Both these cases are uncommon for workstation users, and the 64 bit edition solves this issue for most users who would take advantage of it, so PAE is not included in workstation OS by Microsoft. This is NOT a licencing issue, or even a "charge more for advanced features" issue, it;s about who needs it, how much it costs to support it, and whether or not the SHOULD be using it vs other options...

        Its possible for an application under 32bit windows to also take advantage of AWE (Address Windowing Extension). This requires the lock Pages in Memory privilidge for the app, and some pretty extensive code level support. This can allow a 32 bit app to use more than 4GB of RAM under 32bit. It is not very efficient. It;s also one of the API's you're paying extra for under the server licnece that you do not get under the workstation license (XP can't do this, Server 2003 can). Typically this is reserved for apps with massive datasets (DBs over 2GB, large video files, massive images, etc) in situations where the code can not be easily ported to 64bit but where support for AWE can be added.

        • Re: (Score:3, Informative)

          by w0lo (943113)
          3GB is max, not 2GB (You must turn this setting on, and only apps that have a flag set in their header will actually get it)
        • Re: (Score:3, Informative)

          by Zeussy (868062)
          A 32bit application can get upto 3gb of ram on a 32bit Windows, by being compiled with the /LARGEADDRESSAWARE:Yes Linker flag, and have the end user tweak his boot options to use the /3gb switch.
          But this is a huge hack, and can still cause issues with drivers etc still believing that the kernel has reserved half the ram, but is instead restricted to the top 1gb.
        • by BitZtream (692029) on Wednesday August 26, 2009 @12:57AM (#29196877)

          Sigh... allow me to point out how you are wrong in virtually everything you said.

          Yea, but even if you enable 16GB of RAM under 32bit Windows, XP and Vista can only give 2GB of it to photoshop, MAX. No SINGLE application can utilize more than 4GB of virtual address space under PAE, had half the address space is reserved for the lernel.

          Any application can easily access up to 3GB of memory directly, use the /3GB switch when booting. Using more than 3GB requires PAE and indirect addressing like the days of old.

          PAE however is disabl;ed under 32bit OS as it has risks, especially for lots of drivers, and letting general users have access to this, without a process for validating and supporting all their apps under it (which most companies do not have programmers who understand this type of addressing), would be a support nightmare.

          No its not, PAE is FOR 32 bit OSes, 64bit OSes don't need PAE, they can directly access the larger amounts of ram. PAE will be useful for running lots of apps that aren't aware of the API to utilize the extra memory, or allow apps that use the proper API to indirectly address larger amounts of ram, which is FAR faster than using some sort of swap like Photoshop does when it needs more RAM than available. PAE is turned on by default on clean installs of Windows XP SP2 so that DEP (The no execute bit) can function as the code in XP requires it.

          Its possible for an application under 32bit windows to also take advantage of AWE (Address Windowing Extension). This requires the lock Pages in Memory privilidge for the app, and some pretty extensive code level support. This can allow a 32 bit app to use more than 4GB of RAM under 32bit. It is not very efficient.

          Two things, first you just contridicted pretty much everything you wrote before this point, and second its FAR FAR more efficient than using disk based swap of some sort.

          It;s also one of the API's you're paying extra for under the server licnece that you do not get under the workstation license (XP can't do this, Server 2003 can). Typically this is reserved for apps with massive datasets (DBs over 2GB, large video files, massive images, etc) in situations where the code can not be easily ported to 64bit but where support for AWE can be added.

          Funny, works on my XP machine, not sure why it doesn't work for yours. Photoshop is fully aware of the extensions and will be happy to use more than 3GB of ram in XP 32 bit if you have more available.

          Why must you people spew shit you have no clue about, to the point that you contradict yourself in your own post. If you're going to do this shit at least read the entire wikipedia page before you start posting rather than bit by bit as you post, it'll make you a little more believable and you'll get some extra knowledge too.

  • by FictionPimp (712802) on Tuesday August 25, 2009 @03:27PM (#29191083) Homepage

    Seriously, there are no real technical reasons why we can't just run 64bit operating systems. Let's just stop selling 32bit ones.

    • by Black Parrot (19622) on Tuesday August 25, 2009 @03:37PM (#29191227)

      Seriously, there are no real technical reasons why we can't just run 64bit operating systems. Let's just stop selling 32bit ones.

      Good idea.

      Unfortunately, lots of Windows software won't run on 64-bit Windows XP. Even Windows Update tells you you have to close the 64-bit WIE so it can run the 32-bit version to fetch the update... how lame. Then half the updates won't install, for reasons that aren't made clear.

      It should be clear by now that Microsoft, like every other corporation on the planet, isn't going to do a damn thing unless their share prices depend on it. When there's overwhelming consumer demand for 64-bit computing, they'll start fixing their consumer software to support it.

      • Re: (Score:3, Interesting)

        by nabsltd (1313397)

        Unfortunately, lots of Windows software won't run on 64-bit Windows XP.

        I have no issue at all running standard 32-bit apps on XP64.

        Most of the software that won't run is shell extensions, or other software that provides some DLL that must be loaded by other apps (like Microsoft Management Console plugins). Some of this can be worked around if there are both 32 and 64-bit versions of the app, and then you might not be able to use all the plugins you want at the same time, but at least you can get the job done. Because of this, the default for multi-version apps is usually the

      • Like? (Score:3, Informative)

        by Sycraft-fu (314770)

        Seriously, what apps don't run in 64-bit Windows? I ask because I run 64-bit Windows at home and at work, and part of what I do is check our apps for compatibility. Here is a list of some of the programs I've tested and verified work in 64-bit Windows. This is not a complete list, just off the top of my head:

        Matlab 2008, HFSS 11, ADS 2008, VMWare 6.5, Visual Studio 2008, Firefox 3.5, Thunderbird 2, Office 2007, Adobe Audition 3, Sony Vegas 8, Geovision Multiview 8.3, Winamp 5, 7zip, Sonar 8, Play 1.2.5, Tex

      • by npsimons (32752) on Tuesday August 25, 2009 @08:57PM (#29195269) Homepage Journal

        Unfortunately, lots of Windows software won't run on 64-bit Windows XP.

        What's the problem? Just grab the source and recompile it.

    • Re: (Score:3, Interesting)

      by SlashDev (627697)
      I think there are. Many 32-bit apps don't run very well (or at all) under a 64-bit OS. This is why open source software is so great, you can re-compile for a new target OS, without having to wait on the bureaucratic stuff.
      • Re: (Score:3, Interesting)

        by guruevi (827432)

        Excuse me, but both Linux and Mac OS X have very, very good support for 32-bits apps under a 64-bit OS. The only ones that don't seem to be able to pull it off is Microsoft. I had to install Windows XP 64-bit last week for someone trying to access all memory in their machine and a) none of the drivers worked, even for simple things like USB and other 'generic' hardware where in Linux or Mac you can load 32-bits kernel extensions or generic USB and network controller drivers b) SP3 is not even available yet

        • Re: (Score:3, Informative)

          by petermgreen (876956)

          Excuse me, but both Linux and Mac OS X have very, very good support for 32-bits apps under a 64-bit OS. The only ones that don't seem to be able to pull it off is Microsoft. I had to install Windows XP 64-bit last week for someone trying to access all memory in their machine and a) none of the drivers worked, even for simple things like USB and other 'generic' hardware
          This is a PITA, the truth is there is little generic hardware in a modern PC, you need specific drivers for almost everything. These drivers

    • by frank_adrian314159 (469671) on Tuesday August 25, 2009 @03:50PM (#29191435) Homepage

      there are no real technical reasons

      Well, other than for crappy software that assumes that an address is 32 bits...

      Or hardware that doesn't have drivers for 64-bit systems...

      So, yes, no technical reasons at all...

    • by nurd68 (235535) on Tuesday August 25, 2009 @03:57PM (#29191561) Homepage

      Minor technical reason:

      64 bit OS's don't run on 32 bit CPUs, which is most of the netbook lines. While there are a few Atom models which are 64 bit, the majority of them are 32 bit. I don't think MS wants to abandon that market to Linux, since it would allow netbooks to become a Linux "gateway drug".

    • Re: (Score:3, Interesting)

      by Locke2005 (849178)
      No technical reasons, but there are economic reasons to use 32-bit instead of 64-bit code. 64-bit code tends to use more memory! Granted, memory has gotten much cheaper, so that reason is much less valid than it was a few years ago.
    • Re: (Score:3, Interesting)

      by Sandbags (964742)

      All NEW Os should be 64 bit, sure. unfortunately, we have to have a 32bit solution that maintains continued support for all the legacy apps we can't leave behind.

      Sure, we could "restrict" the sale of 32 bit apps, and restrict all signed apps to 64 bit here forward, and most people buying new machines to work with new stuff, and common apps would not have issues, but about half my back catalog of personal software would either have to be replaced or run in a VM (and currently, many games don't like VM or do

      • Re: (Score:3, Informative)

        by PitaBred (632671)
        Virtualization to the rescue! I run a 32bit Windows VM on my 64bit Linux machine for when I just have to have Windows. Runs 32bit apps fine, everything except majorly graphically intensive apps. As long as you aren't talking about playing 32bit games, you're good to go.
    • by harlows_monkeys (106428) on Tuesday August 25, 2009 @04:20PM (#29191959) Homepage

      As long as we maintain the ability to run 32-bit programs on those 64-bit operating systems. I have Perl programs that parse and analyze very large log files. Their memory usage went up by a factor of about 1.5 when I switched to a 64-bit system. This was not good, since they were running at about 90% of RAM on the 32-bit system. On the 64-bit system, they swapped heavily, and my nice 10 minute report became a not so nice all day report.

      I now pick the 32-bit version of Linux distributions, even on 64-bit capable hardware, unless I actually need 64-bit.

    • Re: (Score:3, Funny)

      by Alzheimers (467217)

      Seriously, there are no real technical reasons why we can't just run 64bit operating systems. Let's just stop selling 2-bit ones.
      Fixed that for ya.

    • Re: (Score:3, Interesting)

      by Alzheimers (467217)

      The Intel Atom: [wikipedia.org]

      Atom implements the x86 (IA-32) instruction set; x86-64 is so far only activated for the Atom 230 and 330 desktop models. N and Z series Atom models cannot run x86-64 code.

    • Re: (Score:3, Insightful)

      by GreatBunzinni (642500)
      There may not be any technical reason to still hold on to a 32-bit OS but there sure are economical ones. As soon as you have an entire office filled with desktops, each one running tens of thousands of dollars in software that were released only to the 32-bit platform, then you will consider that there is a very good reason to still run a 32-bit system.
  • Hmm (Score:5, Insightful)

    by ShooterNeo (555040) on Tuesday August 25, 2009 @03:28PM (#29191085)

    I skimmed the article.

    What it boils down to is : it's possible for 32-bit windows to use more than 4 gigs of memory. Microsoft doesn't allow this for the consumer licensed versions of Windows. While the article makes various allegations that Microsoft is doing this to be bad, the author found out that many device drivers intended for 32 bit windows will break if PAE is enabled. In addition, PAE is an ugly hack, and it still won't let a single thread access more than 3 gigs of RAM. These days, single applications like games and video editing software can easily use more than 3 gigs of RAM.

    Long story short : Get, and use 64-bit Windows for Windows machines with a lot of RAM. Since 64-bit XP is poorly supported, and Vista is dog-shit, then that means you should be using 64-bit Windows 7.

    • Re: (Score:3, Insightful)

      by Eil (82413)

      Long story short : Get, and use 64-bit Windows for Windows machines with a lot of RAM. Since 64-bit XP is poorly supported, and Vista is dog-shit, then that means you should be using 64-bit Windows 7..

      ...which isn't for sale yet.

      Alternatively you can use any distribution of Linux or BSD released in the last 5 years.

  • 32b? (Score:4, Insightful)

    by Lord Ender (156273) on Tuesday August 25, 2009 @03:28PM (#29191095) Homepage

    Are there people out there who have more than 4GB of memory but still run old 32b operating systems? How uncharacteristically anachronistic of any technology enthusiast...

    • Re:32b? (Score:4, Funny)

      by Monkeedude1212 (1560403) on Tuesday August 25, 2009 @03:43PM (#29191325) Journal

      You'd be surprised. You see alot of people go into BestFutureBigBlockStoreUSAToday and say "My computer's running slow!" and they go "You need more Rams!" and the customer goes "How much will that cost me?" and they go "300 Bones, and we'll do it for you!" and next thing you know, Blogger Buddy Bill has 8 Gigs of RAM on his 32b XP. And because he paid so much, he insists theres a difference!

    • Re: (Score:3, Interesting)

      by pavon (30274)

      Yeah, I hate it. I write software to process large scientific datasets. Corporate IT still will not support 64-bit XP or Vista, so all the scientists/engineers are running 32-bit. It is usually easier to try enabling 3GB user space or PAE and hope their drivers are complaint than it is to get them to upgrade their OS.

    • Re: (Score:3, Funny)

      by 1729 (581437)

      Are there people out there who have more than 4GB of memory but still run old 32b operating systems?

      Yes [ibm.com].

      (In all fairness, though, we don't have more than 4GB of memory per processor.)

  • by Just Some Guy (3352) <kirk+slashdot@strauser.com> on Tuesday August 25, 2009 @03:29PM (#29191119) Homepage Journal

    And in other news, it costs precisely the same to press a copy of Vista Home Crippled versus Vista L337 OMG, and yet Microsoft charges differently based on which bits are enabled on the particular copy that HP installed on your laptop. This called "market segmentation". If you think a proprietary software company's going to give the cheap version all the same features as the expensive one, just because it wouldn't directly cost them more to do so, then you are hopelessly naive.

  • Fair price??? (Score:4, Insightful)

    by DoofusOfDeath (636671) on Tuesday August 25, 2009 @03:30PM (#29191135)

    "If you want [to be able to use more than 4GB in Vista] 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. ...

    I dunno... maybe because they think that price maximizes their profitability?

    Or do you feel that they're morally obligated to only make a certain profit margin off of their price?

  • by BlackSnake112 (912158) on Tuesday August 25, 2009 @03:30PM (#29191137)

    Many server motherboards have more then 4 RAM slots. Many DDR3 desktop motherboards have 6 RAM slots. But it is not uncommon for server motherboards to have 12 or more RAM slots. Can one get 64 GB of RAM with 6 RAM slots? Sure, we can even do it with 4 RAM slots if you can get 16 GB RAM modules. Most people do not do that. And most regular people have no need for 32GB or 64GB of RAM in their desktop. Vista jokes aside, 64GB of RAM should really be in the for servers not desktops. That can be the thinking behind the 4GB of RAM limit for 32 bit desktop operating systems. Most people who use them will not have a need for more then that.

    Also when the 4GB of RAM limit was set, RAM was really expensive. RAM prices have dropped a lot over the years. While having 4GB of RAM today can be commonplace, that was not the case 10 years ago.

  • by Sits (117492) on Tuesday August 25, 2009 @03:32PM (#29191173) Homepage Journal

    This sounds like more PAE shenanigans. Using PAE on 32 bit Windows has already been well covered by The Old New Thing [msdn.com].

  • by zjbs14 (549864) on Tuesday August 25, 2009 @03:50PM (#29191433) Homepage

    Why is /. greenlighting yet another article just for the sake of MS-bashing? Other posters have already pointed out the remaining process memory limits and consumer driver issues that make this a non-starter technically. Not to mention that there's not much (any?) consumer-level 32-bit hardware that has BIOS/Northbridge support for more than 4GB of RAM. Since the 64-bit versions don't cost any more, who cares?

    But this guy is saying that Microsoft is doing something "illegal" because he was able to hack his system and enable PAE, even though MS charges extra for that in their server OSes. Is it "illegal" for Ford to sell me a car that's computer governed to 105 MPH even though the engine can get it up over 130? Can I complain to the FTC if I chip the car to remove the limit and then destroy the transmission?

  • by rduke15 (721841) <rduke15@noSpaM.gmail.com> on Tuesday August 25, 2009 @04:13PM (#29191823)

    Even 4GB is too much for 32 bit WinXP. The OS will only let any app. use a maximum of 2 GB. [microsoft.com]

    Unless you enable the /3GB switch in boot.ini, which leads to other problems: your registry system hive must now remain smaller than 12 MB. [alma.ch]

  • by jasonwc (939262) on Tuesday August 25, 2009 @05:53PM (#29193301)
    I RTFA and I have to say, I think the author is attempting to find a conspiracy where none exists. If the author had searched MS's website for information on PAE, he would have soon learned why MS decided to remove PAE, and thus support for more than 4 GB of physical memory, from XP SP2.

    Why this is a non-story:

    1) MS removed PAE in XP SP2 because of incompatibility with 32 bit drivers and resulting instability issues.

    XP did support PAE before SP2. However, Microsoft received complaints from users regarding compatibility and instability issues resulting from the use of 3rd party 32 bit drivers. Many users were getting BSODs. It was only then that MS chose to remove PAE from XP SP2.

    This decision makes quite a bit of sense. Manufacturers were unlikely to update drivers to include PAE support because, at the time, 4GB+ of memory was very uncommon, and relegated to power users who had a specific need for large amounts of RAM. The situation has since changed due to the plummeting cost of RAM, Vista's need for greater memory resources, more demanding applications, and Superfetch, which allows users to make use of idle memory to preload commonly used applications. My own experiences on Vista x64 show that programs start up significantly faster than in XP due with Superfetch enabled.

    Now that 64 bit drivers can be had for pretty much all modern hardware, there is no reason to use a hack like PAE to support more than 4 GB of RAM. Most machines sold by Dell, HP etc. now include 64 bit Vista if the machine has 4 GB of RAM, which is now becoming standard.

    See below for MS's explanation of the removal of PAE from SP2.

    Source: MS Website, "Operating Systems and PAE Support", June 14 2006 - http://www.microsoft.com/whdc/system/platform/server/PAE/pae_os.mspx [microsoft.com]

    Driver Issues Typically, device drivers must be modified in a number of small ways. Although the actual code changes may be small, they can be difficult. This is because when not using PAE memory addressing, it is possible for a device driver to assume that physical addresses and 32-bit virtual address limits are identical. PAE memory makes this assumption untrue.

    Several assumptions and shortcuts that could previously be used safely do not apply. In general, these fall in to three categories:

    Buffer alignment in code that allocates and aligns shared memory buffers must be modified so that it does not ignore the upper 32 bits of the physical address. Truncation of addresses information in the many locations this might be kept must be avoided. It is necessary to strictly segregate virtual and physical address references so DMA operations do not transfer information to or from random memory locations.

    PAE mode can be enabled on Windows XP SP2, Windows Server 2003 SP1 and later versions of Windows to support hardware-enforced DEP. However, many device drivers designed for these systems may not have been tested on system configurations with PAE enabled. In order to limit the impact to device driver compatibility, changes to the hardware abstraction layer (HAL) were made to Windows XP SP2 and Windows Server 2003 SP1 Standard Edition to limit physical address space to 4 GB. Driver developers are encouraged to read about DEP.

    2. Windows isn't trying to screw users over by purchasing a higher priced 64 bit version. Any retail version of Vista or Windows 7 comes with both the 32 and 64 bit installers. As others have mentioned, it's also possible to activate 64 bit Windows with a 32 bit OEM key.

    3. PAE will not allow a single process to use more than 4 GB of RAM so a true 64 bit OS is still superior for programs that need large amounts of memory such as HD Video editing, editing of large images in Photoshop etc.

What hath Bob wrought?

Working...