Slashdot is powered by your submissions, so send in your scoop

 



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

  • 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 SlashDev ( 627697 ) on Tuesday August 25, 2009 @03:39PM (#29191269) Homepage
    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.
  • by SilverEyes ( 822768 ) on Tuesday August 25, 2009 @03:42PM (#29191307)

    ...I'm just saying MS needs to just draw the line somewhere and stop making 32bit operating systems.

    My mac is soon to be mostly 64bit with SL coming out. My linux machines have been 64bit for at least a year. Let's get the windows machines up to snuff.

    Windows 64-bit has been around for awhile. Server 2k8 R2 has no 32-bit support, indicating that the next client version of the Windows OS will be 64-bit only. Currently Windows 7 ships both 32 and 64 bit on the same disc, hopefully reducing confusion and increasing 64-bit installs.

  • Re:32b? (Score:3, Interesting)

    by pavon ( 30274 ) on Tuesday August 25, 2009 @03:47PM (#29191401)

    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.

  • by Locke2005 ( 849178 ) on Tuesday August 25, 2009 @03:58PM (#29191571)
    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.
  • by EXrider ( 756168 ) on Tuesday August 25, 2009 @04:04PM (#29191647)

    There are a lot of hacks required for backwards compatibility of x86. Hell, switch to a new architecture.

    They tried this with Itanium and PowerPC (so long Mac G4 and G5 support!). It failed, consumers clearly want x86 cruft. Yeah, we're talking about the same consumers that actually bought P4's. We can additionally thank IBM for sucking so bad on the PowerPC alliance.

  • by Sandbags ( 964742 ) on Tuesday August 25, 2009 @04:11PM (#29191787) Journal

    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 don't work at all due to lack or GPU virtualization).

    I run 64 bit on my "core" machine, but too many apps are not yet compatible. Apple if farther ahead in this process than microsft, but they have slightly more control over how their app programmers put out code, and more of them are 64 bit ready today (or close). With the move to Windows 7, 64 bit should be starting to become more of a norm. Windows 2008 is actually driving this by forcing devs to released signed drivers only under 64bit, which means at least the hardware vendors are thinking in 64 bit code methodology and techniques. MOST 32bit apps, that don't require underlying driver support or cross application connectivity, work under 64bit. I Microsoft pushes the industry right, Windows 2010 will be 64bit only, and Windows 8 should likely be as well...

  • by drdrgivemethenews ( 1525877 ) on Tuesday August 25, 2009 @04:20PM (#29191951)
    I work for a technology company and Microsoft partner that routinely does these same shenanigans. It's about testing. It costs a lot of money to put together larger systems and test them rigorously (our testing cycle is close to a year long).

    It costs even more money to support said larger systems. When a customer with a large system has an outage, we have to reproduce the problem internally to figure out how to fix it. That may involve a lot of expensive equipment on top of the people time to set it up, configure it, load it, etc.

    Our licensing and support fees are structured accordingly.
  • 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:Wa wa what? (Score:3, Interesting)

    by codeguy007 ( 179016 ) on Tuesday August 25, 2009 @04:21PM (#29191981)

    If you have an AGP video card you will not be able to access all the memory. AGP video is memory mapped just below the 4GB mark.

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

    by Locutus ( 9039 ) on Tuesday August 25, 2009 @04:25PM (#29192049)
    but with something like Linux and how it is developed, you don't have it being designed for marketing. With Windows, Microsoft does things like restrict the number of TCP/IP connections either in software or in their license. They disable part of the system to limit its usefulness and sell it at a lower price as in Windows XP Starter Edition and almost did the same with Windows 7 with all that talk about only being able to run 3 applications.

    So there's been a hardware based solution to this since the days of the Pentium Pro( early 90s ) and it is used by open source while Microsoft uses the 4GB limit as a tool to get people to pay up. Surprise, that's why Microsoft has so much of your money in their bank account. These kinds of things are old news but it always helps to let others know that in the open source world, these restrictions and/or features get worked around to improve the product instead of getting used to extract money.

    LoB
  • by julian67 ( 1022593 ) on Tuesday August 25, 2009 @04:30PM (#29192115)
    There is one great reason to support 32-bit...the fact that most consumer/office PCs in use are still 32-bit hardware ;-) Even on 64-bit hardware if you don't have much RAM, i.e. 2GB or less (that's still almost every consumer/office computer sold) then it probably makes more sense to run a 32-bit OS. The trend for more compact PCs means that it isn't necessarily simple to add another stick of RAM. To do so on my budget desktop machine would entail removing the HDD, the DVD-RW to get to the RAM. Removing the HDD and DVD-RW means removing the CPU heatsink and fan because it's all crammed in so tight. This is way past what most people are able to do, and the machine is quite typical of the small, quiet PCs people buy these days. There is still extremely widely used software which is offered only in the form of 32-bit executables and if it also needs to be run under an emulator then the cost of a 32-bit compatibility library+OS/API emulation is usually very crappy performance. And many hardware and software vendors are simply lazy and slow. They offer a Win32.exe, and maybe an x86 rpm and a deb and that's it. Whether it's a driver or a crucial piece of software they effectively limit the end user's ability to choose 64-bit. And how about all the old ancillary devices which will *never* have a Windows or Apple 64-bit driver? Throw out your scanners, old printer, copier and so on. And good luck with all those personal music players which are not USB compliant and need a vendor supplied driver....that's many millions of devices which people use every day. Actually this is one area where MS could make a huge positive difference because if they make 64-bit Windows 7 ubiquitous then the pressure is very much on all the 3rd party software and hardware suppliers to keep up, or lose sales. I notice that every boxed sale of Windows 7 will include both 32-bit and 64-bit editions so that's a start in pushing a large number of not very interested consumers to make a better choice very easily (I'm assuming people will actually choose to buy Windows 7, unlike Vista). Meanwhile GNU/Linux seems the best choice for desktop 64-bit at the moment for desktop use because all the free software is by definition ready and available, as well as Adobe Flash and proprietary graphics drivers from Nvidia and ATI. 32-bit compatibility is also good and fairly close to being a non-issue....almost there. I've no experience of the latest OS X but it seems like Apple have put an awful lot of effort into making 64-bit OS on 64-bit hardware the default choice, and are taking the opportunity to have many users switch via the latest upgrade. Clearly they are looking at a 64-bit only environment long term. MS as usual are moving more slowly.
  • by Alzheimers ( 467217 ) on Tuesday August 25, 2009 @04:32PM (#29192147)

    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.

  • There is no reason to support 32-bit right now.

    Other than publishers of proprietary applications who won't port them to 64-bit. Some of these publishers are even out of business. Compare to the transition from PowerPC to Intel Macs during the Tiger era: without the Rosetta emulator, it would have been a much rougher experience.

  • by moredots ( 1613051 ) on Tuesday August 25, 2009 @04:35PM (#29192183)
    This guy has it right. These days, if you're putting more than 4GB of RAM into a computer, I'm sure you're running a processor that supports 64-bit Windows. Personally, I feel that companies producing software that is not 64-bit compatible are being lazy and irresponsible. They're negatively affecting the software industry by requiring other developers to produce both 32- and 64-bit versions of their software since both systems are still supported. How much of that developement time and spending could be redirected to improvements to other areas or eliminated and passed on to consumer or stockholders as increased profit margins?

    The 4GB RAM limit is a smart move by Microsoft to push computing towards 64-bit. Basically, if any software company wants their product to run on a system with more than 4GB of physical memory, they'll have to start supporting 64-bit Windows. Perhaps it's not about the money. Perhaps it's a political move to push progress.

    Disclaimer: I don't care about backwards compatibility, and I look down on anyone who uses legacy software as a lesser person.
  • Demand curve pricing (Score:5, Interesting)

    by goombah99 ( 560566 ) on Tuesday August 25, 2009 @04:36PM (#29192199)

    Just like that airplane seat, hotel room, rental car, theater ticket, etc... the same thing is sold for different prices according to willingness to pay. Just like senior discounts.

    It's econ 101. demand curve pricing. if the demand versus price curve is actually curved with a long tale then maximum profit is achieved when a company is able to segregate consumers by willingness to pay. Your revenue is the are under the curve. and single price just gets the area of the larges rectangle you can place under the curve.

    Econ 201: in second term economics we learn that the price demand curve is not actually a single curve but is a family of curves parameterized by the total number of units manufactured. So as the company is able to sell things at different prices to more people the entire curve shifts down, making it either cheaper for everyone, or mor profitable for the company depending who gets the benefit of the increased production.

    even though it's galling to know the product you bought is just a dumbed down version of a beter one at no difference in manufacturing costs it may well be much cheaper than it would have been had they sold one thing at one price.

    Of course it may be that your customers hate this. a few companies like Apple and Saturn use a more price fix model precisely because it fits their style of minimizing aggravation. But even they have college student or military discounts.

  • by nabsltd ( 1313397 ) on Tuesday August 25, 2009 @04:41PM (#29192295)

    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 32-bit one (like the IE shortcuts on the desktop and quick launch point to the 32-bit versions).

    Overall, though, the design of 64-bit Windows userspace is a complete kludge. Why Microsoft chose to make the "standard" directories (Program Files, System32) the 64-bit versions is beyond me, especially when they already had a precedent for new names ("System" for 16-bit and "System32" for 32-bit). In 64-bit, they have "System32" for 64-bit and "SysWOW64" for 32-bit.

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

    by Fulcrum of Evil ( 560260 ) on Tuesday August 25, 2009 @04:42PM (#29192325)
    If you remap the memory from 3.5-4G above 4G, you can put the PCI memory there and stick the .5G of ram on the end of your existing RAM.
  • by guruevi ( 827432 ) on Tuesday August 25, 2009 @05:04PM (#29192657)

    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 for Windows XP 64-bit c) the system is slow and doesn't run half the software.

  • by MBGMorden ( 803437 ) on Tuesday August 25, 2009 @05:05PM (#29192669)

    Whether users need it or not, new computers are going to start including more than 4 GB sooner or later by default.

    Which isn't really a problem, in that the newer 64-bit OS's support those quantities of RAM just fine. When XP 64-bit first came about it wasn't really ready for prime-time, but Vista 64 and Windows 7 64-bit are pretty much identical to their 32-bit cousins.

    Aside from obscure legacy needs, I don't see any reason why a new user wouldn't go for the 64-bit versions, and if you have to run obscure legacy hardware or software, then you have to (and always have had to) live with some restrictions cause by that.

  • Re:Word for the wise (Score:3, Interesting)

    by Pharmboy ( 216950 ) on Tuesday August 25, 2009 @05:25PM (#29192951) Journal

    Windows 64 bit runs either 32 or 64 bit apps pretty seemlessly. The big disadvantage of being 64 bit is that Microsoft has dropped all 16 bit support in their 64 bit operating systems. For 99.5% of people, this is fine.

    The other .5% are like me and still have some 16 bit software they are really old games from the Win 3.1 days I still love (sim tower and others), or old utilities from mid 90s that haven't been replaced simply because I am used to them and they work.

    For these, virtualPC is the only option to run them. It is a reasonable tradeoff to get 64 bit performance. Of course, it would be more reasonable if you could install VirtualPC on Vista Home Premium, as I have two laptops that run it (bought them used) and there is no technical reason they can't, except MS doesn't want them to.

    As for "big apps" that use lots of memory and you don't want to replace: either they use more than 4gb and are already 64 bit or they use less than 4gb and will run fine on a 64 bit platform. Even on Linux 64bit, I don't have any problem getting 32 bit programs to run fine. On both platforms, the key is having 64 bit DRIVERS.

  • Re:Mods on crack (Score:3, Interesting)

    by petermgreen ( 876956 ) <plugwash.p10link@net> on Tuesday August 25, 2009 @06:16PM (#29193593) Homepage

    In what way is it terrible? Driver availibility isn't brilliant and the lack of a netware client is annoying but other than that I haven't noticed any real problems with it.

  • by Barny ( 103770 ) on Tuesday August 25, 2009 @07:16PM (#29194363) Journal

    And software support, ask Intuit if their latest software in the Quicken line of accounting and retail software will run in 64bit windows.

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

    by GoRK ( 10018 ) on Tuesday August 25, 2009 @10:41PM (#29196043) Homepage Journal

    Not only can you enable it, but it's enabled by default. You can actually boost performance (significantly) on the versions of windows that are capped at 4gb by disabling it, since accessing memory using PAE requires an extra clock cycle (3 instead of 2, for direct access)

  • by glitch23 ( 557124 ) on Tuesday August 25, 2009 @11:56PM (#29196475)
    Funny you say that because I *do* have the problem with my MacBook. I got it in October of 2007. I recently (few weeks ago) bought 4 GB of RAM because I had to order a new hard drive so I figured I'd upgrade the 1GB of RAM at the same time. I installed everything but only 3GB of RAM was being used even though the system profiler utility said there was 4GB installed. I did some research and it turns out that pre-November 2007 MacBooks (I think this was also mentioned on the MacBook wikipedia page) artificially limit users to 3GB. It seems to not only be an issue with the firmware but elsewhere as well (although I forget the other area that enforces the limit) so both areas would have to be modified to allow 4GB to be used. Note that newer MacBooks are not affected.
  • by smash ( 1351 ) on Wednesday August 26, 2009 @05:43AM (#29198625) Homepage Journal

    Besides, this isn't a technical limitation, this is an imposed limit by Microsoft. They want you to purchase a more expensive version to use more memory

    32 and 64 bit versions of Windows are the same price. The same license key even works. If you purchased 32 bit and want to run 64 bit, the media is available for basically the cost of shipping. Otherwise, you can source media elsewhere and use your existing key on that computer.

  • by PRMan ( 959735 ) on Wednesday August 26, 2009 @07:04AM (#29199047)
    But if Microsoft defaulted to 64-bit, Canon would HAVE to release 64-bit drivers. (BTW, my Canon Pixma ip2000 printer works on Windows 7 64-bit. I can't remember if the driver came from Windows itself or from Canon Europe. Canon Europe always has better drivers.)

The use of money is all the advantage there is to having money. -- B. Franklin

Working...