On Thu, Dec 02, 1999 at 12:59:25PM +0530, Joseph Bill wrote:
> 
> On Wed, 1 Dec 1999, Arun Sharma wrote:
> 
> > You'll have to get upto speed on Linux memory management. It divides
> > the 2**32 address space into two ranges - (user, kernel) = (0-3GB, 3-4GB) 
> > 
> > So all kernel addresses are of the format 0xcxxxxxxx and among user
> > addresses, shared libs are normally mapped in at 0x4xxxxxxx and text 
> > and data are normally at 0x8xxxxxxx. This is just a convention.
> 
> Sorry to ask the following question, since I am a newbie to C.
> I know that linux doesn't support more than 1GB of physical memory 
> currently. If so how come what u said above is possible ?

That's because of the simplistic design of the Linux memory management.
Linux insists on having a virtual to physical translation for *all* 
the available physical memory *all* the time.

So given that there is only 1GB of virtual space available, Linux can't
support more than 1 GB.

However, there was a way to use 2GB, using the (2GB, 2GB) split. 
More recently, people have come up with ways of using the extra memory
as special purpose memory, using it to cache files etc and mapping on
demand.

Traditionally, UNIX has always mapped physical memory on demand. The
powers that be thought that they can simplify things and "make things
faster" than other OSes by having it mapped unconditionally.

        -Arun

--------------------------------------------------------------------
The Linux India Mailing List Archives are now available.  Please search
the archive at http://lists.linux-india.org/ before posting your question
to avoid repetition and save bandwidth.

Reply via email to