Follow Slashdot stories on Twitter

 



Forgot your password?
typodupeerror
×
Windows Operating Systems Software

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

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:
  • 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?

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

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

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

  • 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?

  • Re:Wa wa what? (Score:3, Insightful)

    by Lemming Mark ( 849014 ) on Tuesday August 25, 2009 @03:38PM (#29191245) Homepage

    But the article seems to be about a licensing-based restriction on allowed physical memory, depending on your version of Windows. So even if Windows and your hardware supports PAE, it may not let you use >4GB RAM. (nb. PAE is potentially useful even if you don't have more than 4GB RAM, since it gets you the NX bit).

  • Re:Wa wa what? (Score:5, Insightful)

    by fuzzyfuzzyfungus ( 1223518 ) on Tuesday August 25, 2009 @03:44PM (#29191355) Journal
    It would be pretty hard to get worked up about what you lose from the memory mapped regions(except on aesthetic grounds), except that your video RAM is one of those regions. All the weird legacy stuff below 16 megabytes is very nearly a rounding error; but with cheap, basic graphics cards packing 512megs(and high end cards pushing 1.5gigs, and possibly more than one card per system) you can exhaust a fair slice of the first 4GB that way.
  • 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 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 Fujisawa Sensei ( 207127 ) on Tuesday August 25, 2009 @03:51PM (#29191463) Journal

    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.

    If the system needs swap or a page file, then it doesn't have enough RAM.

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

    Not understanding how CPU architecture works and the implications of "32-bit" aside, many people need more than 4GB of RAM, even if they don't realize it. You don't have to be an ubergeek to edit home movies on a desktop system these days. Witness the popularity of flash-based video cameras, like the Flip, and how cheap they're becoming. I'll bet that even as I type this, some kid is trying to edit a skateboarding video he just recorded and loaded onto his parents' 512MB XP machine. When it comes to image or video manipulation, there's almost no such thing as "too much RAM", and more is almost always better.

    Also when the 4GB of RAM limit was set, RAM was really expensive.

    To the tune of $1,000 a MB. That's approximately what it was going for when I bought my first 32-bit computer. That still has nothing to do with why they "set" a 4GB limit.

  • by rabbit994 ( 686936 ) on Tuesday August 25, 2009 @04:02PM (#29191613)

    Errr no, Vista x64 runs with more then 4GB RAM without a problem. Windows 7 32 bit still has same limit. Windows 7 64 bit does not. There is a RAM extender called PAE that is used by all the OSes, Microsoft simply chooses not to install it in their desktop OSes because PAE has been known to break drivers and they want to push 64 bits to desktop. 4GB limit doesn't bother most desktop users and those who have more then 4GB run 64 anyways if they are power users. Yes, I consider 4GB+ users to be power users.

  • Re:I didn't ... (Score:3, Insightful)

    by rudy_wayne ( 414635 ) on Tuesday August 25, 2009 @04:14PM (#29191843)

    Pardon my French, by how can you access RAM above 4GB, if you are running a 32-bit OS?

    How can a 16 bit OS address 1 Meg of RAM when 2^16 is only 64k? Read the article. It's interesting.

  • by Ardaen ( 1099611 ) on Tuesday August 25, 2009 @04:24PM (#29192031)

    Did you read the article? (No, you didn't) It points out most modern Windows systems automatically use PAE because Microsoft has turned on DEP by default where supported. It appears 32bit desktop Windows has a limitation imposed by the licensing code since around XP SP2, not some option you can disable. It also points out most applications don't use anywhere near 4GB of memory (yet at least) and the primary practical use of that much RAM these days IS multiple applications.

  • Re:I didn't ... (Score:2, Insightful)

    by maxume ( 22995 ) on Tuesday August 25, 2009 @04:26PM (#29192053)

    Just go 64 bit.

    Really, I'm sure that designers at least considered being able to easily bank ram back when they were working on the 386, but for consumer systems, no way would it have made sense. Even if you could have figured out a way to wire it all together (in a consumer system), just buying 1 GB of memory in the late 1980s would have cost hundreds of thousands of dollars, so this isn't quite as shortsighted as the DOS memory limit.

  • Re:Wa wa what? (Score:2, Insightful)

    by shentino ( 1139071 ) <shentino@gmail.com> on Tuesday August 25, 2009 @04:40PM (#29192271)

    In other words, Windows is bona fide crippleware.

  • Re:Hmm (Score:3, Insightful)

    by Tweenk ( 1274968 ) on Tuesday August 25, 2009 @04:42PM (#29192321)

    Aye. Linux is no utopia, though. Truth is, Windows works pretty darn well so long as you cater to it's "special needs" properly.

    Aye. Windows is no utopia, though. Truth is, Linux works pretty darn well so long as you cater to it's "special needs" properly.

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

    The only cost in software production isn't disk pressing.

    And lemons are yellow, but that's not what we're talking about. The marginal cost of copying and distributing two different versions of the same OS, assuming similar packaging, is nil. The only reason to ship cheap limited versions is to segment the market.

  • by GreatBunzinni ( 642500 ) on Tuesday August 25, 2009 @04:52PM (#29192455)
    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.
  • by mlts ( 1038732 ) * on Tuesday August 25, 2009 @05:10PM (#29192737)

    Two reasons I see for having a 32 bit OS:

    1: 64 bit editions do not have 16 bit MS-DOS support. Of course, this can be mitigated by DOSBox, Windows XP Mode, and other VMs, but a number of places have a specific application that they want to work out of the box and not have to install/configure any more than they have to.

    2: Netbooks have a low resource footprint. A 32 bit OS can work better in the 1-2GB max and still offer a workable machine.

  • by Locke2005 ( 849178 ) on Tuesday August 25, 2009 @05:48PM (#29193229)
    Pointers in 64-bit code take up twice as much memory as pointers in 32-bit code. No amount of skill or fastidious programming is going to change that fact. Integers also take up twice as much memory. A good programmer who knows the bounding values of the variable can always define it as a smaller type, but that doesn't prevent the compiler from going ahead and padding the memory structure out to a 64-bit boundary for alignment, and using packed data can seriously slow down your memory access.
  • by Eirenarch ( 1099517 ) on Tuesday August 25, 2009 @05:49PM (#29193237)
    Exactly. MS should shove 64 bit down users' throats. Otherwise at some point in the future people will curse 32 bit Windows much the same way they curse IE6 now. After all IE6 was fine when it was release. The problem is users not upgrading an ancient browser. Do we want users not upgrading ancient architecture? Go, Microsoft, go! If I were Microsoft I wouldn't make 32 bit Windows 7 at all.
  • by PitaBred ( 632671 ) <slashdot&pitabred,dyndns,org> on Tuesday August 25, 2009 @06:05PM (#29193443) Homepage
    I ran 6GB with Linux on a 32bit Xeon system with PAE for a while. It worked alright, just a little slowdown. Felt maybe like a couple hundred MHz drop in CPU clocks.

    The cost effective thing to do in the vast majority of cases is to upgrade to 64bit. Multiple 32bit machines will eat a lot more power.
  • Comment removed (Score:5, Insightful)

    by account_deleted ( 4530225 ) on Tuesday August 25, 2009 @06:39PM (#29193901)
    Comment removed based on user account deletion
  • by u19925 ( 613350 ) on Tuesday August 25, 2009 @06:46PM (#29193969)
    Yes, I know this solution, but I didn't have a spare copy of XP. I used Linux with VirtualBox, and it worked but it was too slow (as slow as my old box which was 5.5 years old then). Why would I buy a new box and a copy of XP only to get same performance as my existing box?
  • Re:Hmm (Score:3, Insightful)

    by Eil ( 82413 ) on Tuesday August 25, 2009 @06:49PM (#29194011) Homepage Journal

    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.

  • Re:Simple (Score:3, Insightful)

    by Anpheus ( 908711 ) on Tuesday August 25, 2009 @08:55PM (#29195253)

    It does if the drivers have to pass a standardized method of certification and testing on both 32 and 64-bit kernels.

    Food for thought:

    Before Vista was released, 64-bit drivers were hard to find for Windows. They were frequently buggy, rarely supported every feature, and as a result, Windows XP 64-bit is barely acknowledges as a legitimate OS release, and has received little fanfare. With Vista, and the introduction of 64-bit as a consumer OS feature widely available, and closer alignment to the server platform that would soon (2008 R2) become 64-bit only, this has changed. Why? Not because of anything I said, actually. It's because WHQL and Windows Logo certification didn't necessarily require 64-bit drivers to be released. When Vista was under development, it was decided the only thing that would drag the hardware vendors into the 21st century was to require 64-bit drivers under a number of categories (I'm unfamiliar if there are exceptions for certification.) This means that, for example, every shipping driver in Windows Vista that received WHQL certification has a 32 and a 64 bit version.

    This requirement from Microsoft killed Vista's reputation, as we all know. Why is Windows 7 being reviewed so much better? In many ways, it's a similar OS, with a similar kernel. There are performance improvements, some very nice new features, etc. I could talk about those at length. But the reason it's getting fantastic reviews is that since three years ago, anyone who was anyone who wanted to release hardware that worked with Windows and get it certified had to make sure a 32-bit and a 64-bit driver was released.

    I only mention all of this because this is one of the primary reason why certain things are supported on certain SKUs of Windows. I outlined differences between Windows XP and Windows Vista in terms of driver certification, but that's just the beginning. For the most part, consumer drivers should work with PAE, but may not, and as far as I know, this is an issue with the requirements Microsoft laid out. For consumer OSes and server OSes, it was decided that the driver requirements differed and support for certain features was an unnecessary burden on hardware manufacturers. It is those logo requirements that drive many vendors to add features.

    You'd be surprised by the list of logo requirements and how they benefit end users. For example, Windows Vista logo testing required cameras to support Media Transfer Protocol, for speeding file transfer. It requires printers to support the Windows Color System, for accurate color space representation. It requires DVI connectors on logo bearing monitors. It requires QoS and topology discovery in routers, switches, and network hardware that is logo tested. These are all things that have real benefits, no? Companies are not required to get logo testing, but it's a win for consumers, even those who never use Microsoft's OS.

    So yes, signing does have a thing or two to do with quality, if the right agency is doing the signing and certification.

    No, I don't work for Microsoft, I just despise the people who think that every corporation can do no good. Does it right Microsoft's wrongs? No. Don't pretend I think it does!

  • by drsmithy ( 35869 ) <drsmithy&gmail,com> on Tuesday August 25, 2009 @09:20PM (#29195453)

    The key here is that PAE support exists already in 32 bit Windows, but that Microsoft chooses to disable it for consumer operating systems so they can differentiate the consumer and server OS's.

    No, they disable it because it breaks a whole bunch of badly written software that they have no control over.

  • by magarity ( 164372 ) on Tuesday August 25, 2009 @09:34PM (#29195537)

    It's first an architecture limit because in order to handle more than 32 bits' worth of memory the OS has to do 36 bit memory addressing in a 32 bit processor. This means paging the memory addresses used in any given running program. So that's where the licensing part comes in: Vista, being a desktop OS, doesn't include the license for all the extra code that deals with the memory paging.
     
    For more info on how the memopry paging works with 32 bits to 36 bits, see page 15 of this Intel architecture doc [intel.com]. If it doesn't make sense, look up CPU registers and how they are used by an operating system.

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

  • Re:Wa wa what? (Score:4, Insightful)

    by c6gunner ( 950153 ) on Wednesday August 26, 2009 @01:01AM (#29196901) Homepage

    That's a completely different thing. He's referring to an incident where MS limited the number of inbound connections on port 80. They did that specifically to make it impossible for people to run large scale web-servers on NT Workstation. It had nothing to do with security/stability - it was purely an attempt to protect their profit margin.

    And, btw, one of the first things I did after installing XP was get rid of that silly TCP/IP restriction. I agree that it was useful for at least slowing the transmission of worms, as well as limiting how effective they could be as part of a DDOS botnet attack, but I had the exact opposite experience from yours when it came to P2P apps.

    I'm also fairly certain that you're wrong about it being "a simple reg entry". You actually had to patch TCPIP.SYS in order to remove/modify the connection limit.

  • by smash ( 1351 ) on Wednesday August 26, 2009 @05:22AM (#29198475) Homepage Journal
    We've been running 64 bit XP with 8gb of RAM for years. If you truly yearn for the days of Conventional memory, XMS, high memory, UMBs, and EMS, I say this: get fucked. :)

    It wasn't fun in 1989, and it won't be fun now. Just run a 64 bit OS (your existing license key will probably even allow you to use it on 64 bit media) and move on. You'll get flat memory, double-sized registers and more of them anwyay. >32bit RAM on a 32 bit X86 OS is an ugly hackish waste of time that needs to die.

  • by PRMan ( 959735 ) on Wednesday August 26, 2009 @07:53AM (#29199325)

    Yeah, you would think so. And that's what I keep saying. But every company/client I've worked at has had at least one somewhere.

Get hold of portable property. -- Charles Dickens, "Great Expectations"

Working...