Account Links: Cart | Register | Log In

Skip to content

Red Hat Knowledgebase
Red Hat Knowledgebase Search
Currently Being Moderated

How large is the virtual address space for a process in Red Hat Enterprise Linux?

Article ID: 6571 - Created on: May 23, 2004 6:00 PM - Last Modified:  May 14, 2009 11:28 AM

Release found: Red Hat Enterprise Linux 3, 4 and 5 on PC (x86) hardware

 

Problem

 

How large is the virtual address space for a process, i.e. how much memory can a process address?

 

Solution

 

This depends on the capabilities of the CPU, the kernel running on the CPU, and how the application was compiled.

 

CPUs such as the Intel Pentium 4 and the AMD Athlon are 32-bit processors, will use 32-bit kernels, and will run applications that are compiled and linked for a 32-bit environment.

 

In contrast, most later processor models are capable of running 64-bit code (see What is the difference between 32-bit and 64-bit? and How can I find out if I have a 64-bit capable CPU?). This is often indicated as "AMD64", "EM64T", "x86-64" or even "x64". They can boot either 32-bit or 64-bit kernels, and, when using a 64-bit kernel, can execute both 32-bit and 64-bit applications.

 

In each of these cases, the virtual address space available to the executing application is different, as shown in the table below:

CPU             Kernel              Application     Virtual Address Size
32 or 64 bit    32 bit (smp *)      32 bit          slightly under 3GB
32 or 64 bit    32 bit (hugemem **) 32 bit          slightly over 3.7GB
64 bit          64 bit              32 bit          4GB
64 bit          64 bit              64 bit          more than 256GB

 

(*) An SMP-capable kernel. "kernel-smp" for Red Hat Enterprise Linux 3 and 4; for Red Hat Enterprise Linux 5, this functionality is included in the regular "kernel" package.

(**) The "hugemem" kernel is no longer provided in Red Hat Enterprise Linux 5. If a virtual address size of 3GB or larger is needed for a 32-bit process on Red Hat Enterprise Linux 5, the process must be run under a 64-bit kernel, i.e. on a 64-bit installation of Red Hat Enterprise Linux 5.

 

Note that shared libraries occupy the virtual address space of a running process, so the actual virtual address space available to the core application code itself will be lower than the values listed here.

 

 

Feedback from users like yourself is a critical factor in helping us make the Red Hat Knowledgebase as useful as possible.

More Like This

  • Retrieving data ...