Hi,
   
  I was studying "Understanding the Linux Kernel" regarding memory management. 
I have few questions on that.
   
  "
  Linear addresses from 0x00000000 to 0xbfffffff can be addressed when the 
process runs in user mode / kernel mode. 
  Linear addresses from 0xc0000000 to 0xffffffff can be addressed only when the 
process runs in kernel mode.
   
  The mapping entries that map the linear addresses greater than 0xc0000000 
should be the same for all processes and equal to the entries of the master 
kernel page global directory.
  "
   
  My question is :
   
  1. Does this mean that irrespective of which process is in kernel mode, a 
linear address X will only map to the same physical address Y ? 
  ( Because in user mode, linear address X can map to physical address Y for 
process P1, but for another process P2 the same linear address X will map to 
another physical address Z. )
   
  2. If so, does this mean two different processes in kernel mode cannot access 
the same linear address X ( unless the address maps to common kernel code or 
data ) ?
   
   
  Also when explaining ZONE_DMA , ZONE_NORMAL etc , the author says "The 
ZONE_DMA and ZONE_NORMAL zones include the 'normal' page frames that can be 
directly accessed by the kernel through the linear mapping in the fourth 
gigabyte of the linear address space".
   
  Why only the fourth gigabyte of the linear address space ? Do not the 0-3GB 
of user mode address space use the page frames of these Zones ?
   
   
  Please clarify.
   
  Thanks,
Rajaram.  
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   

       
---------------------------------
Looking for a deal? Find great prices on flights and hotels with Yahoo! 
FareChase.

Reply via email to