pandari kashyap wrote:
1. Why can't Kernel access physical addresses?
Because the CPU runs in protected mode.
Then what kind of address is 0xffff0000 if we assume that the system has 2GB of RAM. Is it Linear or physical?. In case it is linear what if we want to store 'a' in physical address 0xffff0000??
That is a virtual address, which happens to correspond to linear because segments are rarely used in Linux.
2. What is the difference and philosophy between kmalloc and vmalloc?
kmalloc gives you physically contiguous memory, which makes it possible to use the memory as one chunk for device DMA or for other special needs. However, such physically contiguous chunks are much harder to find and may not always be available. Vmalloc gives you a memory allocation that is only virtually contiguous, and may be virtually discontiguous. This allows for larger allocations. -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/