Address types in linux

Address types used in Linux

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 can’t understand the bus address and its requirement.

If it’s quite naive to explain, materials to refer can be useful.

makelinux.net/ldd3/chp-15-sect-1 is the only link i could regarding this, which requires (might) some pre-requisite, so i couldn’t understand.

Where does this come up? That might change the exact definition, and what do you want this for could color the answer quite a bit.

1 Answer 1

In most systems the physical address space is mapped to various «devices» — one of which is the system ram, another of which might be something like a PCI bus. The bus address is the value actually placed on the address pins of the mapped bus, and is usually some range of bits taken from the physical address. Other bus pins such as chip select and read/write etc may or may not be taken from the physical address. This is the «memory mapped» approach to interfacing to devices and buses, but it isn’t the only way — for example, Intel processors have special I/O instructions to indicate that you are communicating with a device and the physical address plays no part in it. In this case, the bus address is encoded in the instruction or resides in a register. Cheers!

Читайте также:  Linux подключение usb флешка

Hey thanks for the explanation.. and Kernel logical addresses (address in kernel space) map to a physical address on RAM, whereas the Kernel virtual address might map to a swap space. Which implies, Kernel logical address is a subset concept of Kernel virtual address.

Источник

Оцените статью
Adblock
detector