2024年4月2日发(作者:)
物理地址和逻辑地址的区别
参考如下
MAC地址也叫物理地址、硬件地址或链路地址,由网络设备制造商生产时写在硬件
内部。IP地址与MAC地址在计算机里都是以二进制表示的,IP地址是32位的,而
MAC地址则是48位的。MAC地址的长度为48位6个字节,通常表示为12个16进制
数,每2个16进制数之间用冒号隔开,
地址
网卡MAC地址不是随便定义的,它的组成结构如图所示。
1>后3个字节代表该制造商所制造的某个网络产品如网卡的系列号,前3个字节表示
代表网络硬件制造商的编号,它由IEEE电气与电子工程师协会分配
2>以太网的地址为48位,由IEEE统一分配给网卡制造商,每个网卡的地址都必须
是全球唯一的。共6个字节的长度。
逻辑地址Logical Address 是指由程序产生的与段相关的偏移地址部分。例如,你在
进行C语言指针编程中,可以读取指针变量本身值&操作,实际上这个值就是逻辑地址,
它是相对于你当前进程数据段的地址,不和绝对物理地址相干。只有在Intel实模式下,
逻辑地址才和物理地址相等因为实模式没有分段或分页机制,Cpu不进行自动地址转换;逻
辑也就是在Intel
保护模式下程序执行代码段限长内的偏移地址假定代码段、数据段如果完全一样。
应用程序员仅需与逻辑地址打交道,而分段和分页机制对您来说是完全透明的,仅由系统
编程人员涉及。应用程序员虽然自己可以直接操作内存,那也只能在操作系统给你分配的
内存段操作。
虚拟内存Virtual Memory
是指计算机呈现出要比实际拥有的内存大得多的内存量。因此它允许程序员编制并
运行比实际系统拥有的内存大得多的程序。这使得许多大型项目也能够在具有有限内存资
源的系统上实现。一个很恰当的比喻是:你不需要很长的轨道就可以让一列火车从上海开
到北京。你只需要足够长的铁轨比如说3公里就可以完成这个任务。采取的方法是把后面
的铁轨立刻铺到火车的前面,只要你的操作足够快并能满足要求,列车就能象在一条完整
的轨道上运行。这也就是虚拟内存管理需要完成的任务。在Linux
0.11内核中,给每个程序进程都划分了总容量为64MB的虚拟内存空间。因此程序
的逻辑地址范围是0x0000000到0x4000000。
有时我们也把逻辑地址称为虚拟地址。因为与虚拟内存空间的概念类似,逻辑地址也
是与实际物理内存容量无关的。
逻辑地址与物理地址的“差距”是0xC0000000,是由于虚拟地址->线性地址->物
理地址映射正好差这个值。这个值是由操作系统指定的。
感谢您的阅读,祝您生活愉快。


发布评论