-1

My knowledge of computer hardware is fairly extensive, however it is apparent that this is not the case when considering types of operating systems. I've gone by the rule of thumb for years that if a machine is over 4GB, install a 64bit version in order to use all that memory, and the opposite for choosing 32bit operating systems.

In my latest purchase of a processor, I've noticed explicit detail highlighting the processors' architecture; "32bit" or "64bit". I know this has relevance to how many bytes can be stored in registers for memory addressing, but does this play part in when considering an OS, too?

For example, if your CPU is 64bit but you have 2GB memory, shall you choose the 32bit version of an OS? According to this question, the answer is yes. Can someone please explain this to me, if you have the time?

I would like to know the affects of installing a 32bit system on a 64bit system with 2GB, and what role the capacity of memory really has when choosing 32/64bit hardware and software.

Edit I've correct a mistake in paragraph 3 of the question.

Edit v2 Whilst, indeed, this is a duplicate, I did search for similar questions and that question linked above was not in the results. I blame the searching algorithm, not my now perceived laziness.

codaamok
  • 1,393

2 Answers2

2

Note that there aren't really any standard 64bit processes in the PC market; they are all EMT64/AMD64, which is just an extended-memory x86 architecture, unlike intel's old IA64 architecture, or some of the more obscure server architectures like SPARC.

So, an x64 CPU is not so much 32bit AND 64bit as it is an x64 processor with an instruction set that will work fine for either 32 or 64bit OS's. Its the OS that is the primary concern when it comes to accessing extended memory.

There are lots of good reasons to use x64, including memory access and virtualization (you can only run virtual x64 os's on a x64 system with vt-x).

The only good reasons to use an 32bit OS specifically are devices with 32bit drivers only, and applications that statically link to 32-bit dependencies.

Frank Thomas
  • 37,476
1

I have a computer with a 64-bit CPU and 4GB of RAM. I did notice a memory improvement when I switched my Linux from 64 to 32 bits. I did so because I frequently ran into memory issues when running several programs at the same time, and I've read it could help. It indeed helped, though eventually I hit some memory limits on it as well.

Then, I started having compatibility issues due to having a 32-bit OS installed, namely the fact that I couldn't compile Android without a virtual machine. So I changed back to 64-bit. I still feel a bit extra of memory pressure, but at least I can run software made for 64-bit only machines. I don't believe you'll want to compile Android with 2GB of RAM anyway, but check if you have something with such dependencies before switching.

I am inclined to say that 32 bits would help you due to extra memory (32-bit pointers versus 64-bit pointers and that sort of thing), but be aware of dependencies concerning 64-bit only code. There are not so many, but when they happen, you're stuck with them. On the other hand, using 32-bit software on a 64-bit OS is mostly without issues due to backward compatibility efforts.

anol
  • 1,870