一、总线地址
百度百科解释: 地址总线 (Address Bus;又称:位址总线) 属于一种电脑总线 (一部份),是由CPU 或有DMA 能力的单元,用来沟通这些单元想要存取(读取/写入)电脑内存元件/地方的实体位址。
每个字都懂,合起来却不知道什么意思。
其实换句话说:总线地址就是cpu能够访问到内存的范围。
用一个现象来解释地址总线:
装了32位的win7系统,明明内存条8G,可是系统只识别了3.8G,装了64位,才能识别到8G。
32位能表示/访问 4,294,967,296(2的32次方) bit
kbit——mbit——gbit | 差1024 |
bit | 4,294,967,296 |
kbit | 4,194,304 K |
mbit | 4,096 M |
gbit | 4 G |
那么树莓派3B也是跑32位的操作系统,那么我们在树莓派下输入以下指令查看内存的大小
指令:cat /proc/meminfo
![](https://img-blog.csdnimg.cn/img_convert/5f6edbc413d4fc075086a830624e706d.png)
从上图的黄框中我们可以看出,树莓派内存的大小是949448 KB = 949 MB ,约等于1G的内存大小
二、物理地址
百度百科解释:
网卡物理地址存储器中存储单元对应实际地址称物理地址,与逻辑地址相对应。网卡的物理地址通常是由网卡生产厂家写入网卡的EPROM(一种闪存芯片,通常可以通过程序擦写),它存储的是传输数据时真正赖以标识发出数据的电脑和接收数据的主机的地址。
简单来说物理地址是实际地址或绝对地址。
三、虚拟地址
虚拟地址是程序访问存储器所使用的逻辑地址(基于算法的地址[软件层面的地址:假地址])称为虚拟地址。
四、物理地址和虚拟地址之间的关系
先了解一下什么是mmu
MMU是Memory Management Unit的缩写,中文名是内存管理单元,它是中央处理器(CPU)中用来管理虚拟存储器、物理存储器的控制线路,同时也负责虚拟地址映射为物理地址,以及提供硬件机制的内存访问授权,多用户多进程操作系统。作用有两点,地址翻译和内存保护。MMU将虚拟地址翻译为物理地址。
![](https://img-blog.csdnimg.cn/img_convert/a00480267fd1f8c37b956893e44ca8ab.png)
物理地址用1M的内存通过MMU映射功能转变为4M的虚拟地址。我们写的代码都是操控的虚拟地址,上层应用程序都是运行在虚拟地址中的。
学习笔记,仅供参考