You only have 512 MB of RAM, so you don't need to recompile your kernel to support high memory or anything. Just don't worry about the amount of memory shown by the free program. Linux tries to use as much RAM as possible for buffers/cache. The memory will be made available to programs that need it. Every well-behaved Linux box has very little free memory.
|
naw, i had 512 ram, and i got another 512 ram stick, so it's 1 gig :)
|
You will have to compile your stock kernel source code to handle a gigabyte of RAM or more. People just did not read your first post correctly.
I preferred using the instructions at http://www.justlinux.com/nhf/Compili...mpilation.html because it is more organized than DrOzz and it explain what each command does. Also the one at justlinux.com is much cleaner and makes the user that is following it breath a little. |
If you don't enable the High Memory Support in your kernel then it won't use more then 896MB. Not a big deal, but if you *really* want that last 100+MB of RAM to be used then you'll need to enable the option in the config file and recompile the kernel.
As for the question of why the kernel is using so much memory in the first place: it's designed that way. The kernel tries to use up as much RAM as it can by caching things that might get called. If a program needs more RAM, it will get it, even if it looks like there's none left. |
Quote:
|
alright
thanks all :) so i guess i don't have to update |
Linux will use all the ram it can find. The linux attitude is it's there, you paid for it, why waste it. Cache it, buffer it, put it in a stew. Whatever.
This is what the kernel config has to say about compiling the kernel for various memory sizes - linux has the selection of 1GB (off), 4GB and 64GB... ---------------------------------------------------------------------------------------------- Linux can use up to 64 Gigabytes of physical memory on x86 systems. However, the address space of 32-bit x86 processors is only 4 Gigabytes large. That means that, if you have a large amount of physical memory, not all of it can be "permanently mapped" by the kernel. The physical memory that's not permanently mapped is called "high memory". If you are compiling a kernel which will never run on a machine with more than 1 Gigabyte total physical RAM, answer "off" here (default choice and suitable for most users). This will result in a "3GB/1GB" split: 3GB are mapped so that each process sees a 3GB virtual memory space and the remaining part of the 4GB virtual memory space is used by the kernel to permanently map as much physical memory as possible. If the machine has between 1 and 4 Gigabytes physical RAM, then answer "4GB" here. If more than 4 Gigabytes is used then answer "64GB" here. This selection turns Intel PAE (Physical Address Extension) mode on. PAE implements 3-level paging on IA32 processors. PAE is fully supported by Linux, PAE mode is implemented on all recent Intel processors (Pentium Pro and better). NOTE: If you say "64GB" here, then the kernel will not boot on CPUs that don't support PAE! The actual amount of total physical memory will either be auto detected or can be forced by using a kernel command line option such as "mem=256M". (Try "man bootparam" or see the documentation of your boot loader (lilo or loadlin) about how to pass options to the kernel at boot time.) If unsure, say "off". ----------------------------------------------------------------------------------------------------- |
All times are GMT -5. The time now is 11:15 AM. |