bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [bug #17346] GNU mach can't handle 4GB memory


From: Samuel Thibault
Subject: Re: [bug #17346] GNU mach can't handle 4GB memory
Date: Mon, 20 Nov 2006 16:17:58 +0100
User-agent: Mutt/1.5.11

Constantine Kousoulos, le Mon 20 Nov 2006 18:08:21 +0200, a écrit :
> If user address space is 3 GB and kernel address space is 1 GB, 
> then the whole vm space is 4 GB, right? However, user address 
> space and kernel address space both start at 0x00000000.

Nope.

> How can this happen? What exactly is 'linear space' and why are there
> two kinds of 'spaces'?

Grrmbl, sorry, I mixed it up in my previous post.

* Physically, the kernel is roughly at 0x0.
* In linear space (i.e. only paging enable, not segmenting), the whole
physical memory is mapped at linear 0xc0000000-0xffffffff.
* In virtual space, (i.e. segments are now applied), the kernel is put
back at 0x0-0x40000000 by making CS:0x0 actually point to linear address
0xc0000000 (which actually is physical memory 0x0).

That's why you have kvtolin and lintokv which just add/substract
0xc0000000.

I hope this time I didn't mix it up.

Samuel




reply via email to

[Prev in Thread] Current Thread [Next in Thread]