Logical, Linear and Virtual Address.
Gustavo da Silva
gustavodasilva at gmail.com
Thu Dec 23 11:11:03 EST 2010
Good!! Thanks a lot, Denis.
2010/12/23 Denis Kirjanov <kirjanov at gmail.com>:
> On Thu, Dec 23, 2010 at 6:10 PM, Gustavo da Silva
> <gustavodasilva at gmail.com> wrote:
>> Hi Everyone!
>> Friends, could someone explain me the difference between Kernel Logical
>> and Kernel Virtual Address?
> 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.
>> I'm reading Linux Device Drivers 3th, but I did not understand about that.
>> I have a macro vision about Kernel Virtual Address (virtual address is used
>> do hide the paging mechanism and physical memory, I think), and Linear
>> is the address used in to evaluate to the physical (using page
>> directory+page table+offset).
>> But and the Kernel Logical Address? Why Logical Address is Virtual
>> Address, but not all
>> Virtual Address is a Logical Address?
>> Gustavo da Silva
>> Kernelnewbies mailing list
>> Kernelnewbies at kernelnewbies.org
More information about the Kernelnewbies