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?"
Use bank switching... (Score:3, Interesting)
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.
server hardware vs desktop hardware (Score:3, Interesting)
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.
Re:Let's just get over this and move to 64bit (Score:3, Interesting)
Re: Let's just get over this and move to 64bit (Score:2, Interesting)
...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)
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:Let's just get over this and move to 64bit (Score:3, Interesting)
Re:Let's just get over this and move to 64bit (Score:2, Interesting)
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.
Re:Let's just get over this and move to 64bit (Score:3, Interesting)
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...
It's all about testing and support (Score:2, Interesting)
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.
Re:Let's just get over this and move to 64bit (Score:5, Interesting)
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)
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)
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
Re:Let's just get over this and move to 64bit (Score:3, Interesting)
Re:Let's just get over this and move to 64bit (Score:3, Interesting)
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:Let's just get over this and move to 64bit (Score:3, Interesting)
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.
Re:Let's just get over this and move to 64bit (Score:2, Interesting)
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)
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.
Re: Let's just get over this and move to 64bit (Score:3, Interesting)
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)
Re:Let's just get over this and move to 64bit (Score:3, Interesting)
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.
Re:Nobody needs more than 640K of RAM (Score:3, Interesting)
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)
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)
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.
Re:An OS has got to know its limitations! (Score:3, Interesting)
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)
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)
Re:windows 4gb memory limit (Score:2, Interesting)
Re:Nobody needs more than 640K of RAM (Score:3, Interesting)
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.
Re:I don't understand... Simple: Greed. (Score:3, Interesting)