Log in

fragglet [userpic]

4 gigs of pain

August 4th, 2008 (12:19 pm)

We're rapidly reaching (or have reached?) the point where it's standard to have at least 4 gigabytes of RAM in desktop PCs. This presents an interesting dilemma, because most people run 32 bit operating systems; 32 bits doesn't allow more than 4GB of RAM to be addressed. The ideal alternative is to move to 64 bits; all modern CPUs support x86-64. Unfortunately, it requires a massive porting effort to get everything working on x86-64 (drivers from third party vendors are likely to be the biggest problem), so we're not quite there yet.

In the meantime, there's a useful feature called PAE which allows up to 64GB to be addressed by a 32 bit OS. I was surprised to see, however, that neither Windows XP or even Vista support it, although the server-based versions of Windows do!

The cynic in me wondered if this was a deliberate attempt by Microsoft to stop people from using the normal desktop version of Windows for running big servers, but this seemed a bit too much, even for them. But the Wikipedia article has the actual reason: "desktop versions of Windows (Windows XP, Windows Vista) limit physical address space to 4 GB for driver compatibility reasons".

So poor Microsoft appear to be stuck between a rock and a hard place. They cannot enable PAE, which is, in a sense, a backwards compatibility feature, because doing so would break driver backwards compatibility. This would appear to be an example of a situation where the Linux-style hatred of stable APIs wins over maintaining backwards compatibility. One part of the problem is that Microsoft relies on third-party vendors for drivers. They can't just update their platform and the drivers with it, because they don't have any control over them.


Posted by: LionsPhil (lionsphil)
Posted at: August 4th, 2008 02:10 pm (UTC)

My experience was that PAE didn't work anyway, so I just installed XP64.

This has mostly been trouble-free. The problem has not been with anything that has to care about bus widths, but crappy userspace applications being retarded (and monitor metadata, which is even more retarded). In particular, because XP64 doesn't follow the same service pack treadmill as regular XP, game demos that insist on checking for Service Pack 2 (here's looking at you, Hellgate London) will fail.

Conversely, Linux® remains a complete joke, and API instability is an excuse to not think ahead. If you think they keep all their in-kernel drivers up-to-date with this week's latest Way To Do It™, you're deluding yourself.

Posted by: LionsPhil (lionsphil)
Posted at: August 4th, 2008 02:27 pm (UTC)

Oh, and I can't run the DOS build of FreeChain. THE HORRORS.

Any machine high-spec enough to need a 64-bit OS is high-spec enough to [need to] run DOSBox. Microsoft have already added compatability workarounds to make 16-bit Windows installers still function.

Posted by: fragglet (fragglet)
Posted at: August 4th, 2008 02:48 pm (UTC)

If I was running 64-bit Windows (or Vista), I don't think I'd even bother trying to run DOS programs "natively" any more. DOSBox does such a better job of it that it's not even worth wasting the time. If Microsoft had some sanity, they'd just bundle DOSBox with Windows and remove the native DOS support entirely.

Posted by: fragglet (fragglet)
Posted at: August 4th, 2008 02:43 pm (UTC)
stable api/abis

Yeah, to be honest, I'm not entirely convinced by the whole lack-of-stable-api thing. I think there probably ought to be a maintained, stable, api of some sort, even if it just covers the basic kernel interfaces. The arguments that are made against it seem rather dubious at best (eg. use of inline functions). I'm almost surprised that nobody has made a stable API already, but then again, the kernel people would probably never accept it anyway :-)

This isn't really actually the "Linux rllz, Winblow sux!!" Linux zealot post you might imagine it's supposed to be, just an interesting look at the inevitable difficulties of dealing with backwards compatibility. Things are certainly easier when you don't have to worry about it.

4 Read Comments