Re: Memory addressing confusion

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

 



Hi ,

  For x86 architechture 

   (RAM)       SEGMENTATION( Mandatory )  
  Physical  ------------------------------> Linear
  Address                                    Address

           PAGING(Optional -Enabled For Linux)      
   Linear ------------------------------------>
Virtual
   Address                                     
Address  

   
Now ,there are two cases :

<1> If only Segmentation is enabled , and there 
    is no Paging .

Terminology -> Logical Address == Linear Address

<2> If Segmentation & Paging ,both exist .

Terminology -> Logical Address == Virtual Address

   The Translation of the Addresses is done by 
the Memory Management Unit in the Processor .
This is done automatically . But, the Page tables (
for 
Paging ) and LDT/GDT ( for Segmentation ) need to 
be appropriately initialized .

   Hope this clears your doubts .Please correct 
me if I'am wrong .

Regards!

 --- Kirk True <ktrue@movaris.com> wrote: > Hi all,
> 
> I'm really confused about the differences between
> the logical, linear, and
> virtual addresses on x86 systems after reading
> "Linux Core Kernel
> Commentary" and "Understanding the Linux Kernel".
> 
> "Linux Core Kernel Commentary" states that the
> logical address space is also
> known as the virtual address space (logical ==
> virtual). It then says that
> on x86 that the logical and linear address space is
> the same (logical ==
> linear). Thus virtual, linear, and logical addresses
> are all the same,
> right? What's the point of having three names for
> the same thing?
> 
> "Understanding the Linux Kernel" states in chapter 1
> that a virtual address
> is the same as a logical address (logical ==
> virtual), but in chapter 2 it
> states that a linear address is also known as a
> virtual address (linear ==
> virtual).
> 
> I'm also confused about who actually translates from
> the logical address to
> the linear address to the virtual address to the
> physical address. Does the
> CPU (and associated hardware) do this magically
> behind the scenes? Does the
> OS take care of the conversions? Does the OS set up
> the mapping that the CPU
> uses or vice-versa? Where in the kernel does this
> transformation take place?
> 
> Lots of questions and ambiguous and seemingly
> inconsistent answers. Please
> help!
> 
> Thanks,
> Kirk
> 
> --
> Kernelnewbies: Help each other learn about the Linux
> kernel.
> Archive:      
> http://mail.nl.linux.org/kernelnewbies/
> FAQ:           http://kernelnewbies.org/faq/
>  

________________________________________________________________________
Missed your favourite TV serial last night? Try the new, Yahoo! TV.
       visit http://in.tv.yahoo.com
--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive:       http://mail.nl.linux.org/kernelnewbies/
FAQ:           http://kernelnewbies.org/faq/



[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux