What a 64 bit Linux can do that 32 bit linux can't?
Solution 1
32-bit x86 CPUs (since the Pentuim Pro) support up to 64 GiB RAM (using PAE). (The "CONFIG_HIGHMEM64G" kernel option needs to be set to actually use it). Each application can only see 4 GiB at a time (and some of that 4GiB must be used for other things, the exact amount depending on the "Memory split" kernel setting)
64-bit operating systems have some other advantages as well, such as access to extra registers on the CPU, which can speed up some types of applications (by allowing more temporary data to be kept in the much faster registers, rather than main RAM)
Solution 2
All your ram is accessible even with a 32bit kernel. The main difference is probably that any application cannot address more than 3gb of memory. I don't know if you really use such applications (usually databases, or graphics applications), otherwise you may ignore the problem. Please note that 64bits applications requires more memory (because registers and addresses are larger), and load slower from disk (because the binary files are larger).
So, before leaving the 32bits userspace, better check your requirements. Moreover, many Linux distribution provide 64bits kernels to be used with a 32bit userland: if you are referring to PC, then check how Debian provide amd64 kernel series for i386 (32bit) architecture as well.
Related videos on Youtube
user2935706
Updated on September 18, 2022Comments
-
user2935706 over 1 year
I ordered a server from fdcserver. Then I realized that, unless changed, fdcserver actually provides 32 bit operating as default.
I logged in using SSH, typed
uname -m
, and to my horror I saw that I was actually running a 32 bit Linux.I will definitely change this near the end of the month. Meanwhile, what are the limitation of this 32 bit operating system?
Can I use all 32 GB of memory the server has installed?
-
Mark McKinstry over 11 years
-
John Siu over 11 yearsIf you ordered 32G ram, there is really no reason to use 32bit OS. 64bit OS should be default without customer asking.
-
daemonofchaos over 11 yearsAdding to John Siu's comment, I would question any host that would setup a server with a 32-bit OS knowing that it was getting 32GB of RAM. A desktop system would even be questionable but definitely not with a server.
-
user2935706 over 11 yearswhat about php and apache? There are tons of process and they may count as one program.
-
eppesuig over 11 years@JimThio, could you better explain what is your worry? php and apache usually do not require much memory at all. tons of processes are perfectly managed by 32bits linux kernels. I think that even 64bits kernel do not have larger PIDs, so probably they cannot run more processes at the same time. If you are referring to shared memory among the various apache threads, this is not a problem, usually, since it is way lower than memory given to databases.
-
ctrl-alt-delor almost 10 yearsThe 4GB limit is for 32bit apps on 64bit kernel, on a 32 bit kernel the limit is 3GB.
-
ctrl-alt-delor almost 10 yearsIt is the process that has the 3GB limit. Application is not an operating system concept. If an application has 100 processes then the total memory is less than 100 × 3GB. I say less than because they will probably share some: shared libraries, and maybe there code.
-
Gert van den Berg almost 10 years@richard: As far as I remember, on a 32-bit kernel, each process has a 4GiB address space, of which only a part can refer to actual usable RAM (some likely refers to Kernel functions, other to hardware) (Which is shy a reference was made to the "Memory split" setting) Also found this: linux-mm.org/VirtualMemory
-
ctrl-alt-delor almost 10 years@GertvandenBerg yes 1 or 2 GB is used in kernel space, not available in user space. Also don't confuse virtual memory with RAM & hardware IO. RAM and hardware IO is about physical memory not virtual. Physical memory is higher that 4GB in 32bit-pae kernel.
-
ctrl-alt-delor almost 10 yearsPAE is so not very good, it should be considered only a stepping stone toward full 64bit. You will probably find 64 bit more efficient (at least a 64bit kernel).
-
ctrl-alt-delor almost 10 yearssee also x32 — en.wikipedia.org/wiki/X32_ABI