[Ilugc] Diff between 32bit and 64bit HW & OS

  • From: karra.etc@xxxxxxxxx (Sriram Karra)
  • Date: Sun, 29 Dec 2013 10:45:31 +0530

On Sat, Dec 28, 2013 at 1:23 PM, S Suresh <sureshkumarr.s at gmail.com> wrote:


All,

I have in the impression that , difference between 32bit/64bit hardware &
OS is handling of physicall address (means handling greater memory size.
(2^32 address bus for  32 bit machine, 2^64 bit address bus for 64bit
machine)

[...]



There are few questions in my mind which is not clear to me.

1) what is the diff between 32 bit & 64 bit machine. where we can see the
real use cases of 64 bit machine?


I do not have much experience with Ubuntu, so I will limit my answer
specifically to the topic of 32-bit vs 64-bit.

There are three pieces that need to fall into place before you can call
your system fully 64-bit:

1. The Hardware - this means you can install and use more than 4 GB RAM.
This is the biggest advantage of going for a 64 bit machine in the first
place. In addition to higher supported RAM, the processor's general purpose
registers are 64 bits big, meaning they are capable of larger computations
in the processor, stack pushes and pops can happen at 64 bits at a time and
stuff like that.

2. The Operating System - The OS, standing is it does between the hardware
and the user, needs to use the additional address bits the hardware makes
available. As with most processor / hardware improvements, OSes typically
lag quite a bit in supporting the new features. Without an OS that
specifically supports 64 bit memory access, you will not be able to use the
additional memory even on a 64 bit hardware. So this is pretty important.

3. Your software needs to be compiled for 64 bit - Finally, given how these
hardware and operating systems are designed to be backward compatible, you
can continue to write 32 bit programs to run on them. And usually they will
run just fine - perhaps even without any performance penalties. However
there are some benefits for moving to 64 bit sooner rather than later - C
long variables will now become 64 bit so you can do more efficient larger
integer math (if you care about such things), and such stuff. But the main
reason most of us should move to 64 bit is that over time all key libraries
and systems would have moved to 64 bit and you will really have no choice.
So better make the move now itself.

Other related posts: