Linux - NewbieThis Linux forum is for members that are new to Linux.
Just starting out and have a question?
If it is not in the man pages or the how-to's 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.
I didnt think that I had a PAE kernel because I have a 64bit processor but I kept seeing references to having more than 4GB of ram and no mention of processor arch so I was confused, thanks.
To use 4GB RAM and over that , you need either PAE enabled kernels(PAE feature will be supported by 64-bit CPU's) in a 32-bit OS , else you can use a 64-bit OS which can detect and use your 4GB RAM efficiently. Issue with 64-bit OS is you cannot find all the device drivers and applications.
A 64 bit x86 processor can run a 32 bit non PAE kernel or a 32 bit PAE kernel or a 64 bit kernel. You have a 64 bit kernel.
Quote:
I kept seeing references to having more than 4GB of ram
A 32 bit non PAE kernel is limited to three and a fraction GB of ram.
A 64 bit kernel necessarily includes the extension to the address mapping system that is called "PAE" when used in a 32 bit system, and necessarily includes a further extension to the address mapping system beyond that. But a 64 bit kernel is never called "PAE" because (so far) there is just one possible address mapping design that can be used in 64 bit kernels (the one that is a step beyond 32 bit PAE).
Do you have 4GB or more of ram? Is it all working?
There are a number of possible motherboard and/or BIOS issues that limit a system to three and a fraction GB of ram even if they are 32 PAE or 64 bit. If the ram is limited that way by the BIOS or motherboard the choice between those three kinds of kernel does not affect the amount of usable ram.
If the limit is in the BIOS, it may be correctable by changing a BIOS setting or by installing a newer BIOS.
A 64 bit kernel necessarily includes the extension to the address mapping system that is called "PAE" when used in a 32 bit system, and necessarily includes a further extension to the address mapping system beyond that.
Are you sure? A 64 bit kernel doesn't need any remapping tricks to access the address space above 32 bits.
A 64 bit kernel doesn't need any remapping tricks to access the address space above 32 bits.
x86 Linux always uses memory mapping. 32 bit non PAE, 32 bit PAE and 64 bit all use similar mapping designs.
The memory mapping translates a virtual address into a physical address. All three use a design that leaves the bottom 12 bits of the virtual address unchanged.
32 bit non PAE has 1024 entries per 4KB mapping table so each mapping level translates ten address bits. There are two mapping levels to translate the top 20 address bits. With the bottom 12 untranslated, a 32 bit virtual address becomes a 32 bit physical address.
There is nothing in the basic design that says a virtual address should be the same size as a physical address. The 32 bit x86 architecture limits the virtual address to 32 bits, but places no such limit on the physical address.
The 32 bit limit on physical address comes from having 1024 entries per 4KB mapping table. The major change from that to both PAE and 64 bit is having only 512 entries per 4KB mapping table.
With 512 entries, each level translates nine address bits. PAE needs three levels (two ordinary and one small) to translate the top 20 bits. 64 bit mode uses four levels to translate 36 bits, so including the 12 untranslated bits it has 48 bit virtual addresses.
I think 52 physical address bits would be possible with 512 x86 format entries per 4KB table. The spec for 32 bit PAE specifies 36 physical address bits. Various x86_64 chip models have various numbers of physical address bits from 36 up.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.