Linux Process Address Space

SHIERA LYN DELUSA smdelusa at gmail.com
Mon Jul 2 19:50:50 EST 2007


Hello,

Based on the following thread regarding Linux memory map:
http://ozlabs.org/pipermail/linuxppc-embedded/2000-May/001333.html

Obviously, I am still a newbie in Linux kernel and I find it hard to grasp
things especially Linux MM.  I quoted some lines from this thread (from
Dan's post), then some follow-up questions.  I do hope you could help me out
in these:

1.)  *"Virtual addresses from 0 to 0x7fffffff are for user context."*
     a.) If TASK_SIZE is defined as 0x80000000, does this necessarily mean
that 2G-2G split is used?


2.)  *"For this reason, and since it followed prior PowerPC platform
examples, I chose to map the embedded 8xx kernel to the 0xc0000000 virtual
address."*
     a.)  This 0xc0000000 virtual address must be defined as the value of
PAGE_OFFSET, right?
     b.)  Does this mean that the kernel's .text section is located in this
address?
     c.)  If user space is only up to 0x80000000, and the kernel starts at
0xc0000000, what could possibly be located in between?


3.)  *"Prior to this KVM initialization, we choose to map virtual to
physical addresses 1:1.  That is, the kernel virtual address exactly matches
the physical address on the bus.  These mappings are typically done in
arch/ppc/kernel/head.S, or arch/ppc/mm/init.c.  Only   absolutely necessary
mappings should be done at this time, for example board control registers or
a serial uart.  Normal device driver initialization should map resources
later when necessary." *
      a.)  Is there any chance that the mapping done here is relocated later
in the initialization process?


I would really appreciate your input on this.  Thank you very much!


Regards,
Shiera
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://ozlabs.org/pipermail/linuxppc-embedded/attachments/20070702/f742be3e/attachment.htm 


More information about the Linuxppc-embedded mailing list