Hi Everyone! Friends, could someone explain me the difference between Kernel Logical and Kernel Virtual Address? 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? Regards. Atenciosamente, Gustavo da Silva
On Thu, Dec 23, 2010 at 6:10 PM, Gustavo da Silva <gustavodasilva@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?
Regards.
Atenciosamente,
Gustavo da Silva
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
-- Regards, Denis
Good!! Thanks a lot, Denis. 2010/12/23 Denis Kirjanov <kirjanov@gmail.com>:
On Thu, Dec 23, 2010 at 6:10 PM, Gustavo da Silva <gustavodasilva@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?
Regards.
Atenciosamente,
Gustavo da Silva
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
-- Regards, Denis
participants (2)
-
Denis Kirjanov -
Gustavo da Silva