The OS uses all four, a process can only use three. Get your terminology correct.
Now I know why some people always butt in when I explain the 3.x GB memory limit on 32-bit Vista and are adamant that their Vista 32 system can use all 4 gigs. The announcement for the latest dl.tv podcast lists several reader replies to an episode where they were discussing this issue.
Turns out Microsoft has changed the system information display in 32-bit Vista so that "4 GB" are shown if that much memory is in your system... despite the fact that the operating system still can only use around 3 GB!
Thank you, Microsoft, for this latest pile of bullshit. Clearly deceiving users is so much better than educating them. Anything to keep the number of hotline calls down!Originally Posted by Commenter Larry
The OS uses all four, a process can only use three. Get your terminology correct.
No, the OS doesn't use all four. Not on a 32-bit system. Or are you claiming that Vista is now doing bank-switching by temporarily going into 64-bit mode or enabling server-style PAE mode? I find that hard to believe...
Last edited by Chris Nahr; 12-21-2007 at 01:32 AM.
It basically can, if you enable PAE, but that's off by default.Originally Posted by Chris Nahr
Yes, I'm aware of that. But there's a good reason the memory extension aspect of PAE is off by default, and that's because it would break all kinds of drivers and programs that aren't written to respect this kind of address translation. So I can't imagine that MS has now secretly turned it on. A simple change of the number shown on the system information dialog is much more plausible.
Also, I'm not sure it's actually possible to enable PAE memory extension on consumer systems. I seem to recall that Microsoft has completely removed this functionality from non-server systems, at least in Vista.
Yeah, I don't mean to suggest SP1 turns on PAE by default, it doesn't. It is basically what you said, it is simply reporting how much physical memory is installed rather than what is usable. It doesn't really seem like such a big deal to me, though, and I can understand why they made the change. It might be a little be more honest of them to say something like --
Memory (RAM): 4000 MB (3070 MB Accessible)
-- though, perhaps with a link you click that brings you to a help/support page that explains in simple terms why this is. Hell, they could even use that page as a method of upselling you to Vista 64bit, so win/win.
Ah, but IIRC Microsoft exchanges 32-bit Vista for the equivalent 64-bit version for a nominal fee, so there's no extra profit to be had...
You're swinging at a windmill.
When I look at the System Properties page, it's to see what is installed in the computer. xx CPU at xx Ghz, xxx GB of RAM.
I think it's a feature, and a good one. If it only reported how much memory the OS used, then I couldn't go to my friend's house, open the System Properties, and say "WTF you have 4GB of RAM installed? Don't you know winxp 32-bit can only use 3?
So if you've got 4GB of RAM in 64-bit Vista, can you actually use all of it? An article I read a while ago indicated that you'd still have a memory hole between 3-4GB, which maybe isn't a big deal if you've got 8-16GB, but still makes 4GB pointless, if true.
The memory hole still exists, since that's where memory-mapped devices live in the address space, but the RAM that would have otherwise been there just gets shifted to a different place and is still usable with 64-bit Vista. The place it gets shifted to is above the 4GB mark though, which is why 32-bit Vista can't use it (at least without PAE and the previously mentioned associated problems, etc...).
I've got 4 gigs of memory installed on my Vista 32-bit system, not because I'm ignorant of the issue (I've been a programmer since way back in the near/far mode memory days) but because 1 gig sticks of decent DDR2 RAM are 20 friggin' bucks, so when upgrading from 2 gigs it seemed stupid to buy 2 512 mb sticks for my 2nd two RAM slots for a total of like $16 less for both new sticks combined. Sooner or later I'll upgrade to 64 bit and use that extra memory and even if I've bought new RAM by then, I still get more than 3 gigabytes of usable RAM for now, though not anywhere near 4 gigs.and say "WTF you have 4GB of RAM installed? Don't you know winxp 32-bit can only use 3?
In 32-bit Vista a process (other than SQL Enterprise Edition with virtual addressing) can only use 2GB of memory. The OS itself can only address 3.0-3.2GB, depending on the method of the CPU and BIOS for extended memory mapping and how much memory is reserved for PCI addressing.Originally Posted by bago
P.S. PAE doesn't work in Vista 32-bit even though the option is still valid in the boot.ini file. They broke it on purpose.
It's actually a feature based on user feedback. End users wanted it to correctly report what was installed in their system. And tech support types (or the companies that run them) got tired of users calling and saying their computer didn't have 4 gigs, when they knew it did, or whatever.Originally Posted by Lunch of Kong
This is one of those damned if they do, damned if they don't situations. People are going to complain about it either way.
Any process can access the 3gb space if you compile with /largeaddressaware or /3gb.
You also have to boot with the /3gb flag in the boot.ini (or equivalent; where'd it run off to on Vista?), and it reduces the amount of memory available to the kernel for its own caching, buffers, etc., which affects all processes. Acceptable in business environments perhaps, but not really viable for home users unless a service pack makes it the default or something.Originally Posted by bago
Originally Posted by bago
Sweet! Now let me go recompile World of Warcraft ... oh wait.
Well, seeing as it is just a flag in the PE header (I think, been a few years since I mucked with PE headers) it wouldn't be to hard to hexedit the binary. Of course a mud client might be doing consistency checks to make sure the binary hasn't been hexedited sooo, yeah.
I doubt that'd work, as a pointer above 2GB crosses the signed/unsigned boundary, and there'd probably be a least one spot crashing spot in the app that assumes pointers are less than 2GB.
Ah, programmers and their assumptions.
Only if you bought the retail version; OEM is another story.Originally Posted by Chris Nahr
If they followed CCZ's suggestion and reported both installed and accessible, there would be nothing to complain about.Originally Posted by Jason Cross
Just think: If you have 4 gigs of ram you're all set for XP or Vista 64-bit!
What are the downsides of running Vista-64 versus Vista-32? Does everything work just as well in Vista-64, or are there driver, printer, and application issues?
No and yes.
I run Vista 32 in PAE mode and I've had no issues with it. It actually improved performance for me a great deal, particularly with regard to multitasking. Alt tabbing in and out of games is much, much faster for me since making that change. I don't pretend to have the technical understanding of why, I just like the end result.
Except people calling in to ask why only 3GB is accessible when they bought 4GB and the system reports 4GB...Originally Posted by Qenan
I think this is a total cop-out by MS. Jason C, people complaining that the OS only shows 3GB of RAM are not making a complaint strictly limited to the accuracy of that display. They're complaining because they think they paid for something their computer isn't using.
Fixing the display in the manner that they have hardly addresses that, and I don't think it's even a defensible argument so much as a pedantic excuse.
64 bit OS's were supposed to be mainstream by now. On the PC side it still isn't, but that hasn't kept the hardware from moving along anyway, and that gap doesn't magically remove software companies from their share of liability in that failure.
Just so I have this straight:
MS is supposed to come up with a software-based workaround for virtually all 32-bit motherboards not supporting more than 3GB and change of RAM, even thought logically it's a hardware problem, and to make the tiny market segment of people who are running 32-bit Vista with 4GB of RAM happy.
Basically the drivers for applications running under 64 bit Vista have to be digitally signed, and many applications haven't gotten their drivers digitally signed by MS, and the devs probably don't plan to, at least not for applications planned for use in the home.Originally Posted by Aleck
PM Chris Nahr, he can tell you all about it.
No, you are not. Not in the way you think anyway. It's not possible, and if it were your system would crash instantly due to driver conflicts. What you're experiencing is the so-called placebo effect. :)Originally Posted by Lokust