Random Thoughts – Randocity!

So you want 8GB of RAM in your computer…

Posted in 64 bit computing, computers, linux, windows by commorancy on January 30, 2009

This seems like a simple problem to solve. You know, like opening your computer and putting the RAM sticks into the slots, closing it and turning it on… Seems simple enough, right? But, wait! What’s this? You’ve booted up Windows and it only shows 3.65GB of available memory. How’s that possible? Is there something wrong? Where’s my memory? It’s there, but take a breath, get a cup of coffee and read this…

Welcome to the 32 bit club!

Since RAM costs are, once again, on the downward trend and the size of the sticks are going up, it’s inevitable that you might think of adding 4GB or more RAM to your machine. However, it must be said that 32 bit operating systems have important limitations that need to be discussed, but that no one is really discussing. Note, some operating systems are more affected by the 32 bit limitation than others (due to some 36 bit additions).

What is the 32 bit RAM limitation?

A 32 bit operating system that’s installed can only address a maximum of 32 bits of memory address space. That is, the amount of total memory that can be installed and visible to an operating system. In a 32 bit operating system, that amounts to a total of 4GB of RAM (no matter where that RAM is). Note, that this space includes such installed RAM as system memory, cache memory, video card memory and any other incidental memory that the operating system has direct access to. So, for example with Windows, if you install 4GB of RAM, you may see 3.62GB available. The amount of missing RAM that makes up the difference to 4GB total is video RAM and other RAM caches installed in other hardware devices. So, the more RAM in your video card or USB controller, the less you’ll will see in available memory to use for applications.

Windows 32 bit vs Linux 32 bit

As of Windows Vista 32 bit (any home edition), Microsoft has not addressed this 4GB limitation. Thus, installing more than 4GB RAM in your 32 bit Windows system is not only wasteful (take the extra RAM back to the store if you still have the receipt or read on for the other alternative), but it won’t let you use more than 4GB on home editions of Windows 32 bit systems (Vista included). Windows server operating systems have been designed to allow addressing more RAM (like Linux 32 bit), but that’s an expensive operating system to run at home just to overcome that limitation.  I’ll reiterate, non-server Windows operating systems (Vista, XP Pro, etc)  haven’t been fixed to allow installation and use of more than 4GB of RAM.  Only Windows systems with the ‘Server’ moniker address more than 4GB of RAM.

Through Intel chip extensions and the Linux (and Windows Server) 32 bit operating systems, this has allowed for up to 36bit of addressable RAM space. So, that extends the 4GB maximum of RAM installed to up to 64GB of RAM space. While this does allow installation of up to 64GB of RAM, there are other important operating system limitations that can prevent full utilization of that installed memory.

PAE

The extension from 32 bit to 36 bit addressable RAM space is called Physical Address Extension (PAE). Intel added this extra bit space to allow for just this eventuality in RAM. But, the underlying operating system needs to be able to support it. As of this writing, only Linux 32 bit fully supports PAE.  As far as Windows, not all versions of Windows support PAE even though this MS developer article states that Windows does support it. True, Windows does support it, but only Windows Server versions.  So, the lack of support includes all versions of Vista and below (XP Home/Prof, 2000 Prof and 2000 server). I believe that PAE was added to 2003 server and above.

If you pick up one of the most recent versions of Linux 32 bit (in the last 1-2 years), you should be good to go for PAE.

As far as Mac OS X, it appears that from user complaints I’ve found through Google, that 32 bit Mac OS X does not support PAE (or doesn’t support it fully). On the other hand, there is a 64 bit version of Mac OS X. We’ll come to 64 bit editions shortly.

What about the applications?

Applications are also a problem. 32 bit applications can only address up to 4GB of RAM space. So, even if you manage to get all 64GB of RAM visible to your operating system, each 32 bit application itself can only use a maximum of 4GB when running (even when running on a 64 bit platform with 32 bit compatibility). But, when would an application need more than 4GB of space? Well, if it’s a database server, a 3D rendering application loading lots of texture maps with high res 3D meshed objects or even Video editing suites such as Vegas or Pinnacle studio where you have lots of video and audio media. Even gaming may begin running into this important limit as 3D worlds get larger and more complex. So, expect this issue to become even more important as applications grow bigger and more complex.

Ok, what’s the solution?

The resolution to this issue is a 64 bit (or higher) operating system. Linux 64 bit or Windows 64 bit breaks these 32 bit barriers down. A 64 bit operating system can address 16.8 million terabytes (16 Exabytes) of RAM. That’s so much RAM, at this point, it’s effectively unlimited as of today. In 15-30 years with technology progress, we might be able to purchase a 1 Exabyte stick of RAM and come close to the 64 bit limitations. But, not today.

64 bit natively compiled applications also allow for addressing 16 Exabytes of space within the application’s memory footprint. This also opens up doors to much larger databases, video games, editing softwares and any other very memory intensive applications.

Growing pains and adoption

To date, our softwares are still firmly entrenched in the 32 bit world. This is a world that’s rapidly approaching its end of life. Yet, we are not taking any steps to make it obsolete in favor 64 bit. The issue, however, is that we have not had a pressing need as yet. But, this is the time when it should happen. We need to make the move today when it’s NOT going to be painful. We should not wait until it becomes a major issue and then have to force everyone to move because of a major 32 bit failure (like the millenium clock thing).

Microsoft has made moving to 64 bit Windows much less painful than it used to be. The 32 bit subsystem in 64 bit Windows operates nearly every 32 bit application seamlessly. The only real issue with 64 bit Windows is drivers. Many drivers for 64 bit Windows are still way unstable for everyday use. No, the 32 bit Windows drivers do not work under 64 bit Windows.  So, if you bought Adobe Acrobat, for example, you cannot install the PDFWriter printer driver from your 32 bit media.  You’ll have to upgrade to the 64 bit software edition (if they even make it).  So, this driver issue is a substantial roadblock for Windows. This is partly because of the driver manufacturers, but it’s also partly because Windows Vista’s driver system is broken. Perhaps Windows 7 will be the correct step moving forward, but it’s way too early to tell. Suffice it to say that Windows Vista 64 bit can be used successfully with 32 bit applications.

Linux transition to 64 bit has been far more painful than Windows. While Linux does offer a 32 bit system to run 32 bit applications, compiling applications for the 64 bit environment can be quite a challenge.  Installing 32 bit applications on a 64 bit Linux system can also be a challenge.  Many source code trees use hard coded 32 bit integers that prevent easy compilation and, thus, cause many compilation errors that must be fixed. So, getting something like Firefox compiled on 64 bit Linux (or any other 64 bit OS ) is a challenge. Worse, the Adobe issue (see below) makes using a 64 bit compiled browser painful (for both Linux and Windows).

I haven’t had experience with Mac OS X 64 bit directly. So, someone else will have to speak of compatibility. However, according to Apple’s website, Mac OS X 64 also has a full 32 bit subsystem for running Mac 32 bit apps.

32 bit applications on 64 bit operating systems

Some important things to note about this issue. 32 bit applications running on a 64 bit operating system don’t gain any real benefit by running under 64 bit OS. The only notable exception to this is that the application will have access to the full 4GB of RAM space rather than the lesser amount if running under a 32 bit operating system. 64 bit users should encourage developers to create 64 bit editions of their favorite softwares to ensure that the native 64 bit applications that can take full advantage of the 64 bit architecture (and memory space).

Adobe and 64 bit

Adobe has been, to date (and for many years) opposed to creating 64 bit editions of their applications. I don’t know why. But, they still have not released Flash or Shockwave for 64 bit edition browsers for either Linux or Windows. I’m unsure why Adobe has decided these are not important. But, these types of arbitrary decisions prevent widespread 64 bit adoption. Either that, or 64 bit users will simply do without Adobe products (more likely the case). Since other open source alternatives to Adobe’s products are available, these products may out mode Adobe’s product in a 64 bit world.

So, how do I get 8GB in my computer?

You have several options:

  • Run Linux 32 bit with PAE (lets your system address 64GB)
  • Install Windows 2003 Server (expensive)
  • Install Windows 64 bit edition: Vista or Windows 7 (less expensive)
  • Install Linux 64 bit version (free or thereabouts)
  • Wait for Windows 32 bit (lesser versions) to finally support PAE (perhaps Windows 7)
  • For Mac OS X users, upgrade to Mac OS X 64 bit

64 bit (or larger) is the future of computing and it’s high time that companies and users start to realize this.