Originally Posted by mq15
what does it mean by a 32 bit and 64 bit operating system?
In x86 systems a 32-bit OS is one that runs the hardware in 32 bit mode and a 64-bit OS is one that runs the hardware in 64 bit mode (see below).
Any x86 hardware that can run in 64-bit mode can also run in 32-bit mode, so if you have a recent x86 CPU with support for 64 bit mode you have your choice of 32 bit or 64 bit OS. But if the hardware is older (doesn't support 64 bit) only a 32 bit OS can be used.
A 64-bit OS can run application programs in 32 bit mode or 64 bit mode. A 32 bit OS (even on hardware that could support 64 bit mode) can only run applications in 32 bit mode.
For an application, the big differences between 32 bit mode and 64 bit mode are the size of a virtual address (32 or 64 bits) and the number of general and xmm registers (twice as many in 64 bit mode).
For the OS itself, there are some additional differences (physical address size, etc.) to running in 64 bit mode.
When the hardware and OS are in 64 bit mode and the application is in 32 bit mode, the application can use only 32 bit virtual addresses (max 4GB virtual memory) and can use only the smaller number of general and xmm registers (even though the hardware has more) but it can use the full physical address space. Even if your PC has more than the 32-bit mode limit of 64GB of physical ram, a 32 bit mode program can still be mapped by the OS anywhere in physical ram.
I use Linux fedora. Is this 32 bit or 64 bit?
I'm sure there is a 32 bit version of Fedora. I'm pretty sure there is also a 64 bit version. Earlier posts suggested uname -a or -m. Either way, when you look at the result "X86_64" should be in there if it is a 64 bit Linux OS and will not be in there if it is 32 bit. In uname -a you may see "X86_64" a few times for 64 bit, but certainly zero times for 32 bit. For 32 bit you would see i386 or i686 (or both) or something like that.
A 64 bit OS can run 64 bit applications. A 32 bit OS can't.
A 64 bit OS can run 32 bit applications better than on a 32 bit OS (if you have a lot of ram):
1) A 32 bit OS normally splits the 4GB virtual memory, 3GB for the application and 1GB for the kernel. A 64 bit OS lets a 32 bit application use a full 4GB of virtual address space, while the kernel virtual memory is elsewhere.
2) If you have a lot of physical ram (8GB to 64GB) to run a lot of 32 bit applications at once, the 1GB kernel virtual memory in a 32 bit OS may be overloaded reducing performance or even failing entirely. The kernel virtual memory in a 64 bit OS is big enough for any amount of ram anyone currently has (and for most of us, enough for many years in the future).
3) If you have a LOT of physical ram (over 64GB) to run a lot of 32 bit applications at once, a 32 bit OS simply can't use it. A 64 bit OS has no problem.