Behind the 4GB Memory Limit In 32-Bit Windows
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?"
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?
Remember, Slashdot does not have a -1 disagree moderation, and no, troll, flamebait, and overrated are not substitutes.
Linux does not have the same limit
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.
FOX NEWS.com should be BANNED from television and internet. Have the Congress take it over and give us Truespeak.
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.
"When life gives you lemons, don't make lemonade. Make life take the lemons back!" -- Cave Johnson
Price is the same. In fact, you can barrow someone's 64 bit disk and use your 32 bit license key to to install 64 bit Vista. It is on the front page because it is quite interesting.
I have a feeling he hit it on the head when he mentioned third party drivers as being a possible reason for the limit.
Do you Gentoo!?
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.
yes, PAE has been around forever infact you can enable it in Windows 32bit versions,
But it wont do you a lick of good in MS windows, except for a very few version of windows.
http://msdn.microsoft.com/en-us/library/aa366778(VS.85).aspx
Funny... What version of linux are you using that has the same limit? Slackware and Ubuntu don't have that limit.
Do not look at laser with remaining good eye.
In fact, you can barrow someone's 64 bit disk ...
Barrow:
A mound of earth and stones raised over a grave or graves.
Your plan to put 64 bit copies of Windows in the ground and cover them with grave stones and dirt intrigues me and I wish to subscribe to your newsletter.
My work here is dung.
Seriously, there are no real technical reasons why we can't just run 64bit operating systems. Let's just stop selling 32bit ones.
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.
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...
A slashdotter who didn't build his own computer is like a Jedi who didn't build his own lightsaber.
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.
Dewey, what part of this looks like authorities should be involved?
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?
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.
I have added you to my newsletter as requested. Email confirmation should be received in 1-2 hours.
Do you Gentoo!?
This sounds like more PAE shenanigans. Using PAE on 32 bit Windows has already been well covered by The Old New Thing.
So is that the reason that Linux has the same limit?
Unless I'm misunderstanding you and the summary (not RTFAed yet - I know, I'm bad) Linux doesn't necessarily have the same limitation. The summary seems to imply that only 4GB of *physical* memory are being supported on 32-bit systems by some versions of Windows. All OSes running on 32-bit x86 are restricted to a 4GB virtual address space, therefore neither Linux nor Windows can offer more than 4GB of directly addressable memory *per process*. But many 32-bit x86 CPUs can address more than 4GB of physical memory using PAE mode.
The base requirement for using PAE is that the OS supports it - Windows can use it, Linux can too. PAE gets you the ability to address physical memory addresses over 4GB but only if the motherboard has enough address lines to actually relay these requests to the memory. Even if you can't / don't have more than 4GB of RAM installed, it may still be worth it because PAE also lets you use NX (no execute) on 32-bit. PAE on 32-bit doesn't make the process address space any larger, so any given process is still limited to 32-bit pointers.
32-bit Linux has to be compiled with or without PAE support, so your distro should make sure it installs a the right kernel version to correctly support your hardware. Some OSes (e.g. Solaris) can switch between PAE and non-PAE at boot time, so they only need one kernel image to support both modes. I don't know how Windows handles this.
A further benefit of PAE, that I've left till last because it's really somewhat gross: the memory mapped IO regions used by PCI devices also take up part of your physical address space. This can result in a "memory hole" where your *real* RAM is overshadowed by an area of memory-mapped IO regions - the real RAM is there but you can't access it. As a result, if you put 4GB of RAM in your system and use a non-PAE kernel (only 4GB of physical address space) then you are *guaranteed* not to be able to use all that RAM because you will *definitely* have hidden some of it "behind" the memory mapped IO regions. If you use PAE mode, the motherboard can potentially remap that "hidden" RAM to a higher physical address, so that you can use it. Not all motherboards support this remapping, even if they *do* support 4GB worth of DIMMs - which is rubbish because they're claiming to support memory that the hardware will never let you actually address. It pays to be wary of this kind of craziness - my mobo has this limitation, which I discovered after buying 4GB of DIMMs (so I stuck one in another PC, which kept me happy in the end).
Uh, sorry to the parent poster, I've rambled a bit off the point I was originally making and probably just told you a load of stuff you already knew!
The last time I compiled linux for x386 I was given the option of supporting more than 4 gig of ram with a warning not to do it unless you needed to because of the performance penalty.
It seems like the cost effective thing to do in the vast majority of cases with x386 is to get multiple boxes with 4 gig of ram. The exception seems to be some database servers with a particular load pattern.
Work bio at MMWD
It does work with OEM licenses. I upgraded my 32 bit OEM Windows Home Premium to 64 bit by downloading the 64 bit version through a torrent and using my existing key. I had to call microsoft but they approved it.
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).
Only problem is since the Pentium Pro days to today it has been 36bits, AH-HA!
I have added you to my newsletter as requested. Email confirmation should be received in 1-2 hours.
Mr. Brinestar, confirmation of E-mail confirmation received at 3:31 PM EST:
Subject: Subscription Confirmation for Binestar's newsletter that you requested on slashdot.
This is an automated email confirming your subscription to Binestar's newsletter as requested in your slashdot post here: http://tech.slashdot.org/comments.pl?sid=1347281&cid=29191073
There is currently no way to remove yourself from this newsletter subscription. I hope you knew what you were doing when you subscribed!
Having completed reading your first newsletter (posted above), I found it vapid and devoid of the call to Microsoftalypse that I look for in all the periodicals I read (most notably my own newsletter entitled eldavojohn's Microsoftalypse that has a staggeringly high readership of a one eldavojohn of Slashdot.org).
Furthermore, to my horror, I noticed it was sent using an account from a hotmail.com address. Considering this datum, I found your footnote warning eerily apt. I shall post a scathing review of your newsletter (seven times longer than necessary) under the guise of frequent and unquestioned Slashdot contributor Bennett Haselton on the morrow. Good day, sir!
My work here is dung.
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.
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?
No sig, sorry.
Meh, us Linux users sneer at your pathetic Windows barrows. We put our stuff in SSH tunnels.
AT&ROFLMAO
The Intel Xeon processors introduced a mode called PAE that increases pointer size to 36 bits. This allows the OS kernel to access more than 4GB of ram. Individual processes typically can not access this RAM directly but the OS and CPU handle this using hardware and virtual memory.
The Slashdot post is typically alarmist in claiming that there is an MS conspiracy afoot when in fact it's that PAE causes problems for countless drivers that are used on consumer computers but aren't used on servers. Servers have a much smaller range of hardware and the hardware and drivers are tested for PAE. Your desktop was not tested for PAE. So Microsoft disables the feature because you probably don't need it and it probably won't work anyway. If you know what you are doing you can get a Server OS and make it work.
Now, you say, "Gee, it's 2009! Who's Microsoft to say I don't need 4GB of RAM?" Well, XP is 8 years old and that is when this limitation was introduced. And your consumer version of Vista or 7 will work fine with 4GB if you get the 64-bit version. So everyone can calm down and pick the right OS for the job instead of whining about the sky falling.
Even 4GB is too much for 32 bit WinXP. The OS will only let any app. use a maximum of 2 GB.
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.
How can a 16 bit OS address 1 Meg of RAM when 2^16 is only 64k? Read the article. It's interesting.
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.
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.
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
"Anyone who stands out in the middle of a road looks like roadkill to me." --Linus
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.
Nerd rage is the funniest rage.
Why run Vista32 on a 64 bit processor at all?
Windows Vista 64-bit ordinarily requires kernel-mode device drivers to be signed with a commercial Authenticode certificate. If you override this at startup, the desktop shows an ugly "Test Mode" banner in all four corners. There is a user-mode driver framework, but it makes no provision for input devices or a couple other cases. Some makers of low-volume hardware, such as hobbyists working on assistive input devices for people with disabilities or LPT-style bit-banging interfaces to systems too tiny/cheap/old for a proper USB connection, may want to develop drivers for their own hardware without paying $$$ per year to a certificate authority.
You can use the Vista32 license key to install Vista64 and have native support for the memory without going into test mode on windows.
As far as I know, you'll get the "test mode" again once you install a self-compiled driver.
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.
Some drink at the fountain of knowledge. Others just gargle.
In other words, Windows is bona fide crippleware.
If only they linked to an article that explains that~
dumbass.
The Kruger Dunning explains most post on
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.
"We returned the General to El Salvador, or maybe Guatemala, it's difficult to tell from 10,000 feet"
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, Textpad 5.2, PerfectDisk 8, Adobe Acrobat 9, Adobe CS3, Eclipse 3.3.2, Xming 6.9, IMGBurn, Cadence 16.01, Mass Effect, World of Warcraft, Civ 4, Galatic Civilizations 2, Team Fortress 2, and so on.
In total I have probably tested over 300 programs of all different kinds that work. By work I don't mean "Run with errors," I mean that run like they did on a 32-bit system.
The 32-bit compatibility layer in Windows is extremely good. More or less any usermode 32-bit software seems to run, nor problems. The only compatibility issues I've run in to are:
1) Drivers. All drivers have to be 64-bit. In general, these days most companies have 64-bit drivers out. However if you have a piece of hardware that you need and it doesn't have 64-bit drivers then you are SOL.
2) Programs that make use of a kernel mode component. If you have something like a virus scanner or firewall that needs a kernel module installed, that module must be updated to 64-bit. There is no 32-bit code in a 64-bit kernel, no exceptions.
3) 16-bit programs. MS has stated there is no 16-bit compatibility layer in 64-bit Windows.
So seriously, what programs are you finding that don't work?
I thought the BIOS could just remap the rest of your RAM above 4GB, as shown in the article.
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.
Often would have done - but this time ;-) I thought of it roughly in the middle of the rest of my ramble. Maybe I'm just slow today!
They should be selling the 64-bit version. They should be preinstalling the 64-bit version. People *shouldn't* be using the 32-bit version, becuase there's still a very real architectural limitation in the 32-bit version: a given process can only see 3 GB of memory, no matter how you set up your licensing.
That for an app to use more than 2GB of memory on a PAE enabled system, the app itself has to specially support and use AWE (address windowing extension). Only apps that are coded to do that can make sure of more than 2GB. Well those are extremely rare. MSSQL server is the only one I know of. Any other apps is still limited to 2GB.
No such problems on a 64-bit system. Each 32-bit app gets 4GB of virtual address space. That means normal apps can access 2GB of memory, any app flagged as large address aware can get 4GB of memory (programs like LaaTiDo can flag any app, though some will crash because of bad pointer math). Any 64-bit app will have access to as much physical memory as the system has, without any special coding.
Thus these days playing with PAE is silly. If you buy a desktop computer that supports more than 4GB, it also supports 64-bit. For that matter, if you buy a desktop computer period, it is almost impossible to get one that isn't 64-bit. So, if you need more memory, run 64-bit. If you don't, well then run whatever you like.
I recently did configuration work on linux boxes that had 4 GB in RAM in them, but couldn't see more than 1GB of it because the previous administrator had neglected to enable CONFIG_HIGHMEM4G in the kernel configuration.
And to see more than 4GB of RAM on a Debian box, you need to use a special -bigmem kernel that has CONFIG_HIGHMEM64G enabled, because handling physical memory addresses more than 32-bits wide slows everything down, so Debian opted not to enable CONFIG_HIGHMEM64G by default.
So your Linux boxes *could* have these issues, and you do need to worry about it.
(Get a 64-bit kernel on a 64-bit processor and you're fine, though.)
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
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.
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.
My blog. Good stuff (when I remember to update it). Read it.
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.
note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
That's complete bullshit. If you purchased the 32 bit version of Vista, you can go on the Microsoft website and order the 64 bit version for a little more than the cost of shipping. Or you can just buy 64 bit to start with - there's no price difference between the 32 bit and 64 bit editions.
Not only that but I have to call FUD, as there is a REASON why 32bit XP and Vista don't support more than 3.25 and it AIN'T about licensing. You want to know why? One word-drivers. I have found that there are plenty of seriously flaky drivers that act buggy as hell if PAE is used, and that is with the standard 3.25Gb limit. Capture cards, some of the older Sata and IDE cards, and those are just the ones off the top of my head that I have run into personally.
So while there are those that want to scream about MSFT and look for any reason to have a shitfit, considering the 64bit and 32bit OS editions are the same price it makes no sense. More likely MSFT tested extending PAE like they allow with 2K3 and found that non server (read Cheap Chinese Crap) drivers get uberflaky and fuck up with large amounts of RAM enabled. This of course would lead to a HUGE spike in the "Why don't my shit work? Fix it!" calls to MSFT, and they decided it just wasn't worth the hassle. At least with X64 they can say "Hey it ain't OUR fault, as we didn't build the device. Contact the manufacturer for a driver" whereas with 32bit folks would go "I GOT a &%&^ driver! Your OS don't work!" thus raising support costs.
So in a way it IS a business decision, but it ain't got to do with licensing. It has to do with the millions of 32bit drivers out there, a probably not insignificant amount of which don't play nice with PAE over 4Gb.
ACs don't waste your time replying, your posts are never seen by me.
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?
It's to describe everything you get given on the install media because technically a solitaire game for instance is an application and not a part of the operating system. Just calling it an OS doesn't really fit, and there are a lot of different versions of MS Windows you can get with just a few differences on the install media. The server versions have a lot of the same binaries.
Personally I'd call it different versions of MS Windows but I think the above poster thought distributions was close enough.
Example of several Windows distributions:
Windows XP
Windows XP Media Center Edition
Windows Server 2003
Same cat, different skin.
And software support, ask Intuit if their latest software in the Quicken line of accounting and retail software will run in 64bit windows.
...
What's the problem? Just grab the source and recompile it.
Nathan's blog
What is your justification that XP64 is "awful"? I've been running it for a couple years and haven't had problems. I mostly run computer modeling applications on it, but I've installed many other more mainstream things without a hitch. I don't recall running into any compatibility issues. I think there were driver issues in the early days of XP-64, but that was true of Vista too.
My new workstation is going to be Vista-64, but not because I had any problems with XP64.
I don't use the 64-bit IE at all. In fact I only use IE for some intranet sites that require it. Why use IE-64 at all. I've never needed to address more than 4GB with my web browser. I find no compelling reason to use 64-bit IE.
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)
Tell that to my cheap ass capture card, that is a good 4x more flaky now that I have PAE enabled. Since I have no intention of getting rid of my nice gobs o' RAM, and I haven't had time to find a card with XP X64 drivers for under $80(If anybody knows of one it would be appreciated) I have just learned to deal with it. For example it will crash more when switching channels in the 25-35 cable range, which is naturally where 3 of my favorite channels are. i have tested it by comparing side by side with my buddies card (we bought ours together on a "buy two and save!" sale) and his you can flip through that range til hell freezes over with no crashes, but he only has 2Gb.
So you can scream FUD all you want, I have seen it with my very own peepers. Now imagine how many millions of devices there are out there with WinXP 32bit drivers. Everything from funky USB stuff to the truly weird ass shit (like that cassette deck I saw a couple of years back) and then figure how much MSFT would have to pay for the "My shit don't work! Fix it!" calls.
It is cheaper in the long run just to make the switch to x64 than it is trying to make a hack work, especially a bad hack like over 4Gb support in an OS released in 2001, when 128Mb of RAM was a common configuration. If you are foaming at the mouth and truly need to hate MSFT for something, hate them for this...XP was NEVER supposed to last this long. Longhorn was supposed to be out in 2K3, and because they decided to start over with the Longhorn reset, that of course ended in the clusterfuck that is Vista, you have an OS pushing the decade mark still in widespread use. XP32 just wasn't built to handle gobs of RAM, and trying to force it down is like trying to drop a Mac truck engine in a Pinto. It is just more of a PITA than it is worth.
ACs don't waste your time replying, your posts are never seen by me.
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.
this nation, under God, shall have a new birth of freedom. -- Lincoln, Gettysburg Address
The best source for info for this is likely Mark Russinovich. His blog is the origin of the "difficult to measure risk" quote.
Because device vendors now have to submit both 32-bit and 64-bit drivers to Microsoft's Windows Hardware Quality Laboratories (WHQL) to obtain a driver signing certificate, the majority of device drivers today can probably handle physical addresses above the 4GB line. However, 32-bit Windows will continue to ignore memory above it because there is still some difficult to measure risk, and OEMs are (or at least should be) moving to 64-bit Windows where it's not an issue.
He also acknowledges the commercial aspect of product differentiation on MS 64-bit OS versions, but suggests that the 32-bit issue derives from actual experience;
64-bit Windows client SKUs support different amounts of memory as a SKU-differentiating feature, with the low end being 512MB for Windows XP Starter to 128GB for Vista Ultimate and 192GB for Windows 7 Ultimate...
the Windows team started broadly testing Windows XP on systems with more than 4GB of memory. Windows XP SP2 also enabled Physical Address Extensions (PAE) support by default on hardware that implements no-execute memory because its required for Data Execution Prevention (DEP), but that also enables support for more than 4GB of memory.
What they found was that many of the systems would crash, hang, or become unbootable because some device drivers, commonly those for video and audio devices that are found typically on clients but not servers, were not programmed to expect physical addresses larger than 4GB. As a result, the drivers truncated such addresses, resulting in memory corruptions and corruption side effects.
http://blogs.technet.com/markrussinovich/archive/2008/07/21/3092070.aspx
I'd suggest though, the decision to completely disable PAE instead of only enabling it when paired with drivers certified by WHQL as being PAE-safe was a commercial one, based on SKU differentiation rather than risk.
"I've got more toys than Teruhisa Kitahara."
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.
WRONG!! WRONG!! WRONG!!
You are confusing virtual (app) memory and physical memory.
Virtual memory is ALWAYS limited to 4GB (with 2/2GB or 3/1GB split of user/kernel) on 32-bit, PAE or not, Workstation or Server.
PAE allows for more than 4GB PHYSICAL memory. That means you could have 2 3GB apps running all in RAM (no swap) in 6+GB RAM.
For ONE app to use more than 4GB, you NEED 64-bit.
Each application page (usually 4K) is mapped to physical space, whether it's RAM or swap (when idle of course). The PAE allows you to map a page on more than 4GB RAM. This is done entirely by OS.
The problem is that drivers need to know the physical address, because that is what HW devices can access. Some drivers are poorly implemented and fail to do this (like giving a 32-bit address when they sould give 36-bit to the HW).
For a server, the company usually has an IT department that can get certified HW (not off-the-shelf cheap HW) and they usually test the server before deploying. So any driver issue can be corrected (either change the HW or resolve the driver issue) before deployment.
So MS did not want to get calls of data corruption and limited PAE on client windows. My problem (and the article's author's) is that WE (tech-savy computer users) cannot activate it afterwards.
PS: PAE was implemented since Pentium Pro. As I recall it already had 36-lines for adresses (that is 64GB memory space).
While I agree completely that PAE is a total hack, all these folks screaming their butts off because MSFT don't allow over 4Gb in client OSes just because they allow it in server is just nuts, which was what i was responding to. A server is a VERY different beast than a desktop, especially in Windows. With a server much more care is usually taken with the drivers, because if it crashes you are costing somebody serious $$$. You are also more likely to be able to contact a server hardware vendor and say "we need support for PAE. Without it we are gonna have to dump your product." and the will comply, because the money in server hardware is much fatter.
In desktops by comparison you have this myriad of funky ass cheap shit from all over the place, vendors can be here today and gone later today (like with my Easy TV FM capture card) and that is if you can even FIND the vendor, as some of this junk has been re-badged by a dozen different companies that just repackage the stuff and don't have jack shit to do with the drivers. It makes desktop support a hell of a lot harder than server. To try to support PAE over 4Gb in XP32 or Vista32 would be support hell for MSFT. In XP64/Vista 64 they can say "Not our fault, we didn't make that. Please find out who did and ask them for a driver" and that's it, end of story. But with PAE on 32bit they would get "I HAVE a *&^%&%$ DRIVER and it STILL don't work! Fix it!!!!" which of course they can't.
So I stand by my original statement that PAE support for over 4Gb would be super expensive for MSFT and just ain't worth the PITA. Whether because of PAE itself being a bad hack (which is the truth, especially if you got the wrong Intel CPU/chipset that as another points out can do 32 OR 64 bit, but not both) or the nasty driver getting flaky because it doesn't have a clue what to do with those wider addresses, either way it equals royal PITA for MSFT. Better just to get everyone to switch over to a REAL 64 bit OS, like XP64 or Vista/7 64 and just be done with it. That way everyone gets real hardware and driver support without the whole thing being a big kludge. And considering I just picked up 4Gb of RAM for a whole $35 after rebate it is just nuts to jump through flaming hoops for a hack like PAE.
ACs don't waste your time replying, your posts are never seen by me.
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.)
Peter predicted that you would "deliberately forget" creation 2000 years ago...