strredwolf: (Default)
[personal profile] strredwolf
A particular "software analyst" claims that the 4 gig RAM limitation in 32-bits is a joke, and says it's a Vista licensing scam from Microsoft.  http://www.geoffchappell.com/viewer.htm?doc=notes/windows/license/memory.htm for the full article.

Let me call bull on this one.

First, and most simple reason:  Some CPU's have 32 bit wide address spaces.  The newest one to have this is the Intel Atom (the one geared for netbooks).  If the address space is set for 32 bits, that means it can only address 2^32 (that's 2 to the 32nd power) bytes of RAM.  2^32 is 4 gig (not 4 billion bytes, that's the base 10 version).   To get even more RAM address space, you must have a 64-bit processor that can address more space... and not all of them will do it.  Some Core 2 Duo's are stuck in 32-bit hell, but AMD's Athlon 64's, 64 X2's, and Phenoms are all 64-bit.

Now, to get even more technical, because there's a few "gotchas".

Second:
  Because a 32-bit CPU can only address 4 gigs of space, and a video card (like the Nvidia Geforce cards) has up to a gig of RAM for itself, you're going to loose whatever main memory you have if you max the RAM for the CPU out to 4 gig.

Example:  Nvidia Geforce 9800 on a WinXP system, having 4 gigs of RAM and a 1/2 gig on the video card.  XP will report at most 3.5 gigs because the video card has to be fully seen.

You don't have that limitation in 64-bit mode.

Third:
  There is a way around it, but it's crude and comes from the 16-bit days of the IBM XT.   Back then, it was called LIM EMS (Logitech/Intel/Microsoft Epanded Memory Specification), which swapped 64K chunks of RAM supplied on an expansion board in and out of a reserved area of the 1 Meg address space the old Intel 8088 CPU has. 

Now, in 32-bit land, a similar technology is called PAE.  And it's only useful for swap, because it's slower than accessing the RAM directly (in 64-bit mode) but faster than smacking it onto the disk.

Now who thought up of PAE (Physical Address Extention)?  Intel, back in the Pentium Pro days.  The same guys who invented LIM EMS!

Forth:  Vista's a joke by itself anyway.  Wait until October and get a copy of Windows 7, or go with a copy of Ubuntu 64-bit.

Date: 2009-08-09 04:36 am (UTC)
From: (Anonymous)
The article is about operating systems not processors. It touches on processors only from the operating system's perspective. As long as the PAE kernel believes it is running on a processor that executes x86 instructions with PAE enabled (and with memory to match), what does it matter to the logic of my article if this execution environment is created by a "thin 64-bit shell" or by a 64-bit processor that virtualises the x86 instruction set on the chip or even by an emulator in software?

However this execution environment comes about, the only reason that the PAE kernel won't look at any memory above 4GB is licensing. The demonstration is as much proof as any demonstration can be that 32-bit Windows Vista, which does not ordinarily use memory above 4GB even with PAE enabled, will use that memory if you enable PAE and disable the two license values.

Well, perhaps it leaves open that the simple change of those license values suddenly opens up a whole new execution environment so that memory above and below 4GB suddenly gets virtualised in a way that memory below 4GB isn't ordinarily - but although that's conceivable, it is beyond incredible. Anyway, if that were happening, then surely the memory element of the Windows Experience Index, for what it's worth as a performance measure, would degrade badly when memory above 4GB is brought into use - and, no, it doesn't.

Now, having defended the demonstration as not being intended for what you seem to expect of it, I must of course agree with you that the demonstration does not prove that the PAE kernel actually is using PAE to access the 8GB. OK, so suppose I'm interested. I'd begin by asking how else might the PAE kernel be accessing the extra memory except through PAE and I'd follow with the observation that alternatives would be not just outlandish but fantastic.

If you need to prove to everyone's satisfaction that the PAE kernel actually is using PAE, then yes, you could try running the demonstration on a processor that everyone agrees is incapable of anything relevant except PAE. I'm happy for anyone to do it if they feel the need, but it seems excessive to me.

Even as someone who likes more than most to dot every I and cross every T, I'm entirely happy to presume that the PAE kernel actually does use PAE (however the PAE gets implemented). To anyone who needs it proved, I say it would be easier just to inspect the page tables with a kernel debugger and see that they conform to the PAE algorithm. Indeed, it would be easier to step through the BOOTMGR and OSLOADER with the boot debugger and watch it enable PAE and set up those page tables. If my article doesn't give you enough detail for where to look by yourself, I can easily enough tell you more.

Geoff Chappell.

Date: 2009-08-09 02:01 pm (UTC)
From: [identity profile] strredwolf.livejournal.com
Well, it's hard to not get into a discussion of hardware when you're talking about a hardware feature of a CPU. Operating systems by default have to be intimate with the hardware -- Windows just isn't that intimate like Linux (depending on the distribution used) or even old OS/2.

That said, I did feel the demo on a 64-bit processor in 32-bit mode could open up too many avenues for access or non-access, and really not proved your point. There could be a different way of doing the access (native 64-bit/32-bit switching, VM emulation); there could be a limiting factor (VM again, disabling PAE; BIOS turning off PAE; 64-bit/32-bit switching can't handle it). Forcing Vista to use PAE on a Pentium 3 or -4 would do it, and is the better option than decompiling Vista.

All that said, I go all the way back to my fourth point: Why Vista? It's a joke. Ignore it -- Gartner urged businesses to go Windows 7 instead of Vista. Focus on that OS instead. If Windows 7 has the same licensing issues, then you'll have some news for Paul Thurrott over on the Supersite for Windows and the Windows Weekly podcast.

Date: 2009-08-18 10:29 am (UTC)
From: (Anonymous)
You can feel as much as you like that the demonstration leaves open the question of precisely how the 32-bit operating system accesses memory above 4GB. The point is that nothing like the demonstration should be possible if your first post is justified.

The article gives a perfectly reasonable and sufficiently detailed explanation of how the PAE kernel comes to be limited to using only memory below 4GB. Remove the limitation and it uses memory above 4GB too. Whether the PAE kernel actually does use PAE (as seen by the chip) is just not the article's domain and is not necessary for anything the article claims.

Whether the PAE kernel actually does use PAE (as seen from the operating system) is not proved, I accept. It's just the obvious explanation that fits the observations, and it's the only explanation that isn't fantastic. If you need to chase the fantastic to justify having called me a "dolt" and a fraud, well, I leave you to it.

On minor points...

Finding a Pentium 3 or 4 with a chipset that takes 4GB may be easier for some. Debugging may be easier for others. Disassembling may be easier for hardly anyone, but it's what I do. How else do you think I even imagined the patch except by knowing of the memory-limiting code first?

Yes, Vista is a half-baked rush release with many irritations and outright defects. But it has been for nearing 3 years the current version of the dominant operating system. Inasmuch as anything to do with computers is worth understanding, Vista must be understood, as must the next Windows version, good or bad. As an aside, consider that theology faculties all round the western world have atheists on the staff.

As for Windows 7, I haven't seen it yet - disassembly takes enough time that I work only on released versions - but numerous websites in China and Taiwan had reproduced the patch for Windows 7 within a couple of weeks of my posting a draft of the article in January. I leave it to others to decide whether it's newsworthy. I have my work cut out finding out what Windows actually does.

Geoff Chappell.

Profile

strredwolf: (Default)
STrRedWolf

May 2020

S M T W T F S
     12
3456789
10111213141516
1718 1920212223
24252627282930
31      

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 27th, 2026 11:34 pm
Powered by Dreamwidth Studios