On Thu, Dec 23, 2010 at 6:10 PM, Gustavo da Silva <gustavodasilva@xxxxxxxxx> 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@xxxxxxxxxxxxxxxxx > http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies > -- Regards, Denis _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies