With the rapid pace at  which  chip design is progressing, you see laptops and desktops being shipped with more than 4GB memory out of the box.  A lot of you might be wondering whether to use 32bit or 64bit Operating System on these machines. Which ones are supported? Will upgrading to 64bit boost the performance significantly? Lets look at it closely.

You’ll have to install a PAE aware kernel to access memory above 4GB if you use 32bit. PAE is slower than using a native 64bit system but in practice the difference is tiny. There were problems with some non-OSS apps and libs only being available in 32bit but with 32bit emultion libs that isn;t a huge problem anymore. I’ve been running 64bit dstros on various desktop/laptop systrems for years and I’ve been fine. Even then, with a PAE enabled kernel, your apps are still restricted to the 3/1 GB split in the memory manager. With a full 64-bit kernel, your app is capable of allocating the full memory range.

Not only for memory, but also for large file systems >16TB you’ll need a 64bit kernel. This might seem a ridiculous large file system, but in fact there are situations where you need that. Capacities keep on growing… I recommend to install and use only 64bit systems unless you have to rune some proprietary software that simply won’t run on a 64bit system with 32bit libraries.

One more  restriction of a 32 Bit kernel is the maximum size of an individual process. This problem is often seen with systems such as Oracle databases where the SGA size needs to be more then 4GB. With PAE a 32 Bit system can see upto 64GB of RAM (maybe more that figure is from memory) however an individual process is limited to a maximum of 4GB. With 64 Bit this restriction is removed or at least extended to very large amounts of RAM.

Using  64-bit environment has nothing to do with performance, and little to do with physical memory beyond 4GB. It has to do with logical addressable space. It is important to keep in mind that virtual memory is not the same as swap — even though swap depends on virtual memory in order to function, they are separate systems and a process using virtual memory is not necessarily using swap. A process which accesses memory at address 0×10000000 and at address 0×80000000 does not necessarily have 1.75GB of physical memory. The system will map a page of physical memory to the virtual page located at 0×10000000, and another page of physical memory to the virtual page located at 0×80000000, but the pages between those addresses might be completely unmapped, and neither represent nor consume any physical memory at all.

64-bit address spaces change the game. The 64-bit logical range is immense, equal to four billion 32-bit logical ranges. In a 64-bit environment, each process’ logical space can be partitioned into vast ranges, each many times larger than an entire 32-bit logical range. It also allows for the use of very large (multi-gigabyte) memory-mapped files without undue depletion of logical address space. Memory-mapping a file consumes logical address space, but not physical memory space. The pages are unmapped, which means when the process accesses them, the kernel takes over and substitutes the data from the appropriate location in the file.

In summary, some software might be able to perform tasks in a 64-bit environment which they would not be able to perform at all in a 32-bit environment. Whether your machine  needs  it or not depends on the specific application you intend for them to perform, and often on the dataset on which you need them to operate.

If your application is expected to evolve rapidly and encounter new, unfamiliar, and (especially) larger datasets, then in my opinion you are better off starting with a 64-bit environment, rather than transitioning from 32- to 64-bit when you hit the limits of your application’s scalability. Such transitions are perilous, because not all libraries and applications are available or fully-featured for 64-bit environments. Better to get it all out in the open during initial development. Of course if you depend on software or capabilities which are not available on 64-bit systems (such as certain packet filtering rules), then you might not have the option, or might need to break out your application into two servers (one 32-bit and one 64-bit).

Verdict

Go 64 bit. There’s support for any codecs you need, even flash. On the one-offs where Adobe decides to ignore Linux on flash updates, you can use nspluginwrapper and use a 32 bit flash module even in your 64 bit browser. Nothing else is going to require you to do anything in 32 bit mode. And, if you did, any new laptop should support hardware virtualization, so fire up kvm and launch a 32 bit version of your favorite Linux in a window. Note: you can’t do that in reverse. With 64 bit, there are not hacks or hoops to use your full memory. You’ll see better performance on some things as well, for example encoding/decoding video. Several years ago, 64 bit Linux was a headache for most folks who weren’t gurus. Any more, it’s just another install. Run it because you can and because it runs well.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

IMPORTANT! To be able to proceed, you need to solve the following simple math (so we know that you are a human) :-)

What is 12 + 3 ?
Please leave these two fields as-is:

site tracking with Asynchronous Google Analytics plugin for Multisite by WordPress Expert at Web Design Jakarta.