Re: OS-question



Elcaro Nosille wrote:

Paul Gotch wrote:

Contemporary versions of Linux can be built to support 1GB, 4GB or 64GB of RAM on IA32.

MacOS X supports >4GB of RAM on IA32 and so does FreeBSD but I don't know
if they have software imposed limits lower than the 64GB limitation of PAE.

Microsoft also have support in server versions of Windows only but limit
the amount of RAM supported by how much you pay them. As of Windows Server
2003 it supports

Enterprise Edition: 32GB
Datacenter Edition: 64GB

The previous revision (Windows 2000 Server) had a configuration which only
supported 8GB of RAM but MS seem to have scrapped this.

Do you have sources on this, i.e. for any of these OSes?

As far as Linux is concerned, cf. arch/i386/Kconfig

http://lxr.linux.no/source/arch/i386/Kconfig

choice
prompt "High Memory Support"
default HIGHMEM4G if !X86_NUMAQ
default HIGHMEM64G if X86_NUMAQ

config NOHIGHMEM
bool "off"
depends on !X86_NUMAQ
---help---
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".

config HIGHMEM4G
bool "4GB"
depends on !X86_NUMAQ
help
Select this if you have a 32-bit processor and between 1 and 4
gigabytes of physical RAM.

config HIGHMEM64G
bool "64GB"
depends on X86_CMPXCHG64
help
Select this if you have a 32-bit processor and more than 4
gigabytes of physical RAM.

endchoice

choice
depends on EXPERIMENTAL
prompt "Memory split" if EMBEDDED
default VMSPLIT_3G
help
Select the desired split between kernel and user memory.

If the address range available to the kernel is less than the
physical memory installed, the remaining memory will be available
as "high memory". Accessing high memory is a little more costly
than low memory, as it needs to be mapped into the kernel first.
Note that increasing the kernel address space limits the range
available to user programs, making the address space there
tighter. Selecting anything other than the default 3G/1G split
will also likely make your kernel incompatible with binary-only
kernel modules.

If you are not absolutely sure what you are doing, leave this
option alone!

config VMSPLIT_3G
bool "3G/1G user/kernel split"
config VMSPLIT_3G_OPT
depends on !HIGHMEM
bool "3G/1G user/kernel split (for full 1G low memory)"
config VMSPLIT_2G
bool "2G/2G user/kernel split"
config VMSPLIT_1G
bool "1G/3G user/kernel split"
endchoice
.



Relevant Pages

  • [PATCH 2.6.24] mm: BadRAM support for broken memory
    ... This is the latest version of the BadRAM patch, ... run Linux on broken memory. ... a new kernel appeared, ... the BadRAM subsystem dealing with statically challanged RAM modules. ...
    (Linux-Kernel)
  • Re: Patch 4/6 randomize the stack pointer
    ... > it," so perhaps this would be a good compromise. ... less than 512M of memory to keep track of. ... what about the case where you have gobs of RAM and need a highmem ... Kernel data structures, no. ...
    (Linux-Kernel)
  • Re: Allocating kernel memory
    ... > I never complained about the real memory that was used but pointed out ... > that a large portion of the kernel virtual address space is used up. ... RAM you should avoid PAE, ... But it was limited to 1GB of physical RAM. ...
    (comp.os.linux.development.system)
  • Re: Newbie Setting up xserver
    ... Could be, but now that I know that low memory is causing the problem, I will ... The kernel gobbles up the rest of the physical memory huh. ... Actually my RAM is split into two ... >it could be that some of the processes related to setting the timezone ...
    (comp.os.linux.setup)
  • Re: Allocating kernel memory
    ... The kernel have a disk cache, ... > memory available within the kernel does not imply I do not understand ... >> to allocate high memory pages and map them into kernel ... > So you are saying that the kernel does not map all of physical memory ...
    (comp.os.linux.development.system)