February 21st, 2013, 02:18 AM
32-bit applications on 64-bit OS?
I have two major questions in my head which are troubling me.
First of all - What do you mean by 64-bit or 32-bit operating systems?
I understand that hardware i.e. the processor can be 64-bit or 32-bit depending on the size of its registers etc. But what do you mean by 64 or 32-bit OS?
Secondly - I was running this qemu-arm application which simulates arm hardware architeture on my pc. Apparently it is a 32-bit application so I need to install 32-bit libraries for it. Why is this. What do you mean by 32-bit application?
February 21st, 2013, 11:30 PM
Software has to be translated from human-readable source code into machine-readable 'code' before it can be executed on a computer. The machine code interacts directly with the registers and memory addresses of the hardware - there is no layer of abstraction between them. This means that the machine code must be aware of the size of the registers and memory addresses of the hardware in order to perform calculations correctly.
A 64-bit operating system is one that has been compiled to use 64-bit values for memory addresses and registers. A 32-bit operating system is one that has been compiled to use 32-bit values for memory addresses and registers. There are separate 64-bit and 32-bit libraries and applications for exactly the same reason.
The only reason 32-bit applications can be run on 64-bit hardware is because virtually all general purpose 64-bit computing hardware is backwards compatible with 32-bit instructions.