On Thu, Dec 23, 2010 at 6:10 PM, Gustavo da Silva
<gustavodasilva@gmail.com> wrote:
AFAIK there are 3 types of addresses: physical, kernel virtual
(one-to-one mapped),
and ...user virtual addresses...
Lets assume x86_32 for simplicity:
==========================
+kernel part (identity-mapped) +
========================== <---- PAGE_OFFSET protection boundary
+ +
+ user portion(THREAD_SIZE)+
+ +
==========================
Kernel works on behalf of the user address space (think about that one
part of the user space is
always the same for each process - kernel part). Kernel portion (at
PAGE_OFFSET and above) translates address
using simple formula:
kernel virtual addr - PAGE_OFFSET
Things are different for the bottom half of the virtual address space
(THREAD_SIZE portion).
This is a MMU time :)
Here well-known translation process (using page tables) of the virtual
address to physical one begins.
--
Regards,
Denis
_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.orghttp://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies