<P> On Microsoft Windows 64 - bit, in a process running an executable that was linked with / LARGEADDRESSAWARE: NO, the operating system artificially limits the user mode portion of the process's virtual address space to 2 GiB . This applies to both 32 - and 64 - bit executables . Processes running executables that were linked with the / LARGEADDRESSAWARE: YES option, which is the default for 64 - bit Visual Studio 2010 and later, have access to more than 2 GiB of virtual address space: Up to 4 GiB for 32 - bit executables, up to 8 TiB for 64 - bit executables in Windows through Windows 8, and up to 128 TiB for 64 - bit executables in Windows 8.1 and later . </P> <P> Allocating memory via C's malloc establishes the page file as the backing store for any new virtual address space . However, a process can also explicitly map file bytes . </P> <P> For x86 CPUs, Linux 32 - bit allows splitting the user and kernel address ranges in different ways: 3G / 1G user / kernel (default), 1G / 3G user / kernel or 2G / 2G user / kernel . </P>

Virtual address space of a process in linux
find me the text answering this question