地址:
unix设计与实现(学习内核书籍,是一个内核设计文档)
1.地址总线
地址总线 (Address Bus;又称:位址总线) 属于一种电脑总线 (一部份),是由CPU 或有DMA
能力的单元,用来沟通这些单元想要存取(读取/写入)电脑内存元件/地方的实体位址。(学术理解)
cpu能够访问内存的范围(通俗理解)
现象:装了32位的win7系统,明明内存条8G,可是系统只识别了3.8G,装了64位,才能识别8G
32位能表示/访问 4,294,967,296 bit (2的23次方)
bit 4,294,967,296 (计算是 %1024)
kbit 4,194,304
mbit 4,096
gbit 4 (可以看出最大访问是4G,但是实际3.8,其余的用作其他用途)
树莓派 32位 1G 949M 但也只能访问到949M 剩下的作为他用呗
2.物理地址
硬件实际地址或绝对地址
假如树莓派只有1个G这么大的(物理地址)内存,cpu(总线)可以访问到4个G,但你要运行的程序又超过了1个G,此时虚拟地址可以将物理地址的1个G映射4个G,此时程序就可以运行。如若没有虚拟地址的映射,则不能。
3.虚拟地址
逻辑(基于算法的地址(软件层面的地址,假的地址)) 地址称为虚拟地址
如果程序在磁盘的物理地址只有1个G,但是你又想运行超过1个G的程序,此时就得虚拟地址,可以将1个G的物理地址映射成4个G(其实真正物理地址里的数据其实是在虚拟地址上跑的,虚拟地址可以比真正的物理地址大)
其实我们写的所有代码都是操控的虚拟地址,不管是上层应用程序,还是底层操控的地址都是虚拟地址
BCM2835 树莓派3b cpu型号 它是 ARM-cotexA53架构