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