Wednesday 21 September 2011

64-bit vs 32-bit

Processors, installed operating systems and applications can be 32-bit or 64-bit. OS needs processor support (64-bit OS requires 64-bit processor) and Application needs operating system support (64-bit application requires 64-bit OS). Backwards compatibility is preserved (32-bit OS runs on 64-bit processor; 32-bit application runs on 64-bit OS).

Here is a short review of all possible combinations:

Operating System
32 64
P
r
o
c
32 OK x 32 A
p
p
x x 64
64 x OK
OK OK 32

Backward compatibility is not preserved in kernel mode: 32-bit drivers won't work on 64-bit OS!

  • 32-bit applications can run both on 32-bit and 64-bit operating systems. 64-bit Windows OS uses WoW64 emulation layer to support executing 32-bit applications which are, by default, installed in C:\Program Files (x86) directory, load 32-bit libraries from C:\Windows\SysWOW64 and use HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node portion of the registry.
  • 64-bit applications can run only on 64-bit operating systems. It is possible to run 64-bit operating system on (physically) 32-bit machine (by using some of Virtual Machines, e.g. Oracle's VirtualBox).

It is possible to build applications that target 64-bit architectures on 32-bit hosts. This process is called cross-compiling.

No comments: