Date: Thu, 09 Apr 2015 09:16:58 -0400 From: Lowell Gilbert <freebsd-questions-local@be-well.ilk.org> To: Pierre-Yves =?iso-8859-1?Q?P=E9neau?= <Pierre-Yves.Peneau@lip6.fr> Cc: freebsd-questions@freebsd.org Subject: Re: How FreeBSD manage more than 4GB on 32 bits architecture Message-ID: <44k2xlcugl.fsf@be-well.ilk.org> In-Reply-To: <5526408F.1090005@asim.lip6.fr> ("Pierre-Yves =?iso-8859-1?Q?P=E9neau=22's?= message of "Thu, 09 Apr 2015 11:04:15 %2B0200") References: <5526408F.1090005@asim.lip6.fr>
next in thread | previous in thread | raw e-mail | index | archive | help
Pierre-Yves P=E9neau <Pierre-Yves.Peneau@lip6.fr> writes: > For my internship, I have to find a way to manage more than 4GB of > memory with 32 bits processors. It seems that the FreeBSD kernel is the > perfect candidate for that. According to the architecture handbook(*), > "FreeBSD could theoretically handle memory configurations up to 8TB on a > 32 bit platform." This is quoting the Architecture Handbook's KVM memory mapping section. The following sentence reads "However, since most 32 bit platforms are only capable of mapping 4GB of ram, this is a moot point." > For the last two days, I was looking for documentation, articles, > thesis, or e-mails on that topic, but I can't find relevant > informations. Is anybody have informations on that topic ? Where should > I start to read the source code to find my answers ? I'm going to guess that the idea behind that comment is that FreeBSD's page tables can hold 2G (2^31) entries. At a 4k page size, that would give you 8TB of memory. But that only helps you if the hardware is physically capable of reading from more than 4G different locations. Therefore, the question becomes: what kind of hardware are you going to use that can keep track of those locations? As a side note, I would also recommend the book "The Design and Implementation of the FreeBSD Operating System," now out in a new edition. Good luck.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?44k2xlcugl.fsf>