Why are some operating systems labeled 32-bit and others 64-bit? If the processor is the one doing the actual execution, why does the operating system care about how many bits are used?
closed as off-topic by Robert Harvey, dan_waterworth, delnan, Jimmy Hoffa, Thomas Owens♦ Jul 1 at 17:41
This question appears to be off-topic. The users who voted to close gave this specific reason:
- "Questions about the use of general computer hardware or software are off-topic, but can be asked on Super User." – dan_waterworth, delnan, Thomas Owens
In the hopes of giving you a better idea of how this all works together, I'm going to break this down into a few different sections. Feel free to skip sections you feel confident you know enough about.
Operating systems are large pieces of software that manage the resources of the computer and allocate them out to other applications running on the system. Windows is an example of one operating system, just like OSX or Ubuntu. These don't do anything by themselves, they rely on other applications to do real work, like word processors, or web browsers. Once an operating system is written, it gets compiled, that is it goes from being human readable code to a long string of 1s and 0s that the processor understands.
Processors are the actual machines that run the compiled code and do certain things based on the code they are given. They are actually rather simple and do very small operations, like adding two numbers, or fetching a piece of data out of memory. The reason they are so powerful is because they can do billions of these small, seemingly insignificant operations per second.
64 bit vs 32 bit
This is where we get into your question. You asked what the difference between 32 bit and 64 bit processors were, and the difference is how information is fed to the processor. If it is a 32 bit processor, the operating system's code gets compiled down to 32 bit chunks, that is a set of 1s and 0s that is exactly 32 numbers long. If it were a 64 bit, or 128, or 2304981234 bit processor, it would get compiled to being exactly that many bits long.
Why does it matter?
Well, if you have a set of 1s and 0s, there are a finite number of different combinations that can go into that set right? Lets take a simple example of a 2 bit processor. It only accepts 2 bits for every operation. We can list all the possibilities here:
This means that our system can only ever run 4 operations, so we need to string those operations together in some meaningful order to get it to do anything considered useful. With a 32 bit operating system, it's the same concept, but with many, many more possible instructions, but when you start trying to include data in with the instructions, you use up some of the bits as well, and before you know it, pretty soon we are out of instructions to use. Then we just have to be more creative with how we put the instructions together in order.
With 64 bits, we gain more instructions, allowing for things that take 2-3 instructions to possibly be turned into 1 instruction, which doesn't really seem like much, but when you are doing upwards of billions of operations per second, the gains can be HUGE!
|show 8 more comments|