I am trying to understand the Memory address types used by the Linux kernel, which are
- User virtual address
- Physical address
- Bus address
- Kernel logical address
- Kernel virtual address
I understood the following:
User virtual address: User sees an address, which might not be in RAM, it might be a swap address.
Physical address: Every memory address, in some form, has to represent the physical address. Physical address is in direct form.
Similarly: Kernel Logical address and Kernel virtual address.
I cant understand the Bus address and its requirement.
If its quite naive to explain, materials to refer can be useful.