How FreeBSD manage more than 4GB on 32 bits architecture

John Levine johnl at
Thu Apr 9 19:07:46 UTC 2015

>So, I've the required hardware I think. My problem is to find out how
>FreeBSD can use this mechanisms. But I'm realizing that it may be not a
>kernel issue, because it's an hardware functionality which should works
>with Linux too. Right ?

Right.  I don't think I've ever seen a machine with a 32 bit
architecture that could address more than 36 bits of real memory.  If
you need more than that, you use a 64 bit architecture.

As far as I know, 32 and 64 bit versions of FreeBSD use the same
virtual memory manager, and there's no inherent reason you couldn't
manage large physical memories with 32 bit code.  But I can tell you
that you will be sorry if you try.  If the physical memory is much
bigger than a program's logical address space, you have to do some
sort of tricks for programs to access all of the memory.  If the
memory is only a few times larger than the address space, say 36 bits,
it's OK to limit programs to 32 bits and hope you have enough of them
to keep the memory busy.  Or you use tricks like large shared files
that are mapped in and out of the program's address space, typically
with a blizzard of TLB misses every time.

But if you have 40 bits, you really want something that can address 40
bits which in today's world means a 64 bit architecture.  Take a look
at ARMv8 which handles 48 bit physical addresses and is supposed to
have low power implementations for smartphones and other
power-constrained environments.


More information about the freebsd-questions mailing list