Linux - GeneralThis Linux forum is for general Linux questions and discussion.
If it is Linux Related and doesn't seem to fit in any other forum then this is the place.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
The max amount of addressable memory for a 32 bit OS is 4GB. Does this 4GB also includes the swap space I might have allocated?
Lets say, I am running a 32bit version of Linux on a machine with 4GB of RAM. And I allocated another 4GB in swap. Can the OS use all that is available from the RAM and AS WELL AS the swap?
If you have a PAE enabled kernel it (the kernel) can access (I believe) 36 bits of address space (64GB). However, since it's a 32 bit system, any one process can only access 32 bit space (4GB).
1) The maximum physical ram for the kernel plus all processes is BIOS dependent, typically limited to about 3.25GB.
2) Swap space can be used to bring the effective usable memory well above 4GB. I don't know the limit.
3) Each process is limited to 3GB virtual, and the kernel is limited to 1GB virtual, so total memory use over 4GB is only meaningful for multiple processes.
If you have a PAE kernel, item (1) changes. The maximum amount of physical ram used can be over 4GB (I think up to 16GB). Items 2 and 3 don't change at all with a PAE kernel.
"PAE" is the name of a hardware feature of the CPU. A "PAE kernel" is a kernel with support for that CPU feature. But I believe the naming is inconsistent for that kernel support. I think some distributions, including Red Hat, call that "PAE" but I think others have other names for it. You might need to look carefully at kernel features to know if you are getting the right one.
I don't think anything in that article contradicts anything I said. It just ignores some of the issues I partially covered.
The 32bit memory mapping system supports either 4GB of address space without PAE or 64GB with PAE. But that does not necessarily tell you how much Linux supports with/without PAE.
Linux also introduces constraints on total physical memory based on interactions with the way it manages kernel virtual memory. That leads to at least four different levels of memory support based on choices made during kernel build.
The lowest level is 896MB without PAE
The next level is about 3.25GB (bios limited) without PAE
The next level is, I think, about 16GB, with PAE
The highest level, I think, is the full 64GB with PAE plus an ugly kludge in kernel virtual memory (I think a bad idea. Use 64bit instead for that much ram).
John,
PAE is optionally available with NOHIGHMEM or explicitly set with HIGHMEM64G. It in't available with HIGHMEM4G. I have no idea what the reasoning is with any of it; especially why PAE is available with NOHIGHMEM. I believe this is the full set of HIGHMEM and PAE config options.
The question also asked the part about a swap file. I think the swap file is handled differently. One could address say 3.2G and then have a 4 gig or more swap file. That swap file would not count toward the ram limit. Even though it is being used as ram.
Pretty sure on that but could be wrong. Simple to test.
i have 6 GB Ram, if i install 32bit ubuntu, is it a waste?
I'm pretty sure a PAE kernel is either default or available through the package manager in Ubuntu 11.04, so 6GB should work just fine (any one process is still limited to 3GB virtual, but multiple processes plus the kernel can make good use of 6GB physical).
But I don't have a Ubuntu system handy to check and I couldn't remember the right keywords to search for the answer at packages.ubuntu.org, so I'm not 100% sure there is a PAE kernel in 11.04
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.