摘自http://blog.csdn.net/fudan_abc/article/details/1918974;

与咱们最贴近的是一个“用户虚拟地址”,是用户空间所能看到的地址,每个进程都有这么一个虚拟地址空间。然后是耳熟能详的“物理地址”,在处理器和系统内存之间使用的地址。接着是“总线地址”,是处理器在总线上所看到的地址。第四个是“内核逻辑地址”,这些地址组成了常规的内核地址空间,映射了大部分乃至全部的系统主内存,被视为物理地址使用,在大多数的体系结构中,逻辑地址及其所关联的物理地址之间的区别,仅仅在于一个常数的偏移量,在拥有大量内存的32位机上,仅通过逻辑地址未必能够寻址所有的物理内存。最后一个是“内核虚拟地址”,和逻辑地址的区别在于前者不一定会直接映射到物理地址,所有的逻辑地址都可看成是内核虚拟地址。
对内核来说,总线地址、逻辑地址都可以当物理地址来用,其实对于CPU来说,总线地址就相当于物理地址,为外设分配地址就是来分配总线地址,分配得到的地址一般都不能直接使用,还要通过ioremap映射为内核虚拟地址之后使用专门的接口来访问。所以你说struct resource描述的是逻辑地址也对,物理地址也没什么不妥。