为您找到与线性地址和物理地址对应相关的共176个结果:
在计算机科学中,逻辑地址是什么?线性地址是什么?物理地址优势什么?逻辑地址线性地址物理地址三个地址有什么联系?读文网小编整理了逻辑地址,线性地址以及物理地址的相关资料,下面大家跟着读文网小编一起去了解一下吧。
前面说了Linux中逻辑地址等于线性地址,那么线性地址怎么对应到物理地址呢?这个大家都知道,那就是通过分页机制,具体的说,就是通过页表查找来对应物理地址。
准确的说分页是CPU提供的一种机制,Linux只是根据这种机制的规则,利用它实现了内存管理。
在保护模式下,控制寄存器CR0的最高位PG位控制着分页管理机制是否生效,如果PG=1,分页机制生效,需通过页表查找才能把线性地址转换物理地址。如果PG=0,则分页机制无效,线性地址就直接做为物理地址。
分页的基本原理是把内存划分成大小固定的若干单元,每个单元称为一页(page),每页包含4k字节的地址空间(为简化分析,我们不考虑扩展分页的情况)。这样每一页的起始地址都是4k字节对齐的。为了能转换成物理地址,我们需要给CPU提供当前任务的线性地址转物理地址的查找表,即页表(page table)。注意,为了实现每个任务的平坦的虚拟内存,每个任务都有自己的页目录表和页表。
为了节约页表占用的内存空间,x86将线性地址通过页目录表和页表两级查找转换成物理地址。
32位的线性地址被分成3个部分:
最高10位 Directory 页目录表偏移量,中间10位 Table是页表偏移量,最低12位Offset是物理页内的字节偏移量。
页目录表的大小为4k(刚好是一个页的大小),包含1024项,每个项4字节(32位),项目里存储的内容就是页表的物理地址。如果页目录表中的页表尚未分配,则物理地址填0。
页表的大小也是4k,同样包含1024项,每个项4字节,内容为最终物理页的物理内存起始地址。
每个活动的任务,必须要先分配给它一个页目录表,并把页目录表的物理地址存入cr3寄存器。页表可以提前分配好,也可以在用到的时候再分配。
还是以 mov 0x80495b0, %eax 中的地址为例分析一下线性地址转物理地址的过程。
前面说到Linux中逻辑地址等于线性地址,那么我们要转换的线性地址就是0x80495b0。转换的过程是由CPU自动完成的,Linux所要做的就是准备好转换所需的页目录表和页表(假设已经准备好,给页目录表和页表分配物理内存的过程很复杂,后面再分析)。
内核先将当前任务的页目录表的物理地址填入cr3寄存器。
线性地址 0x80495b0 转换成二进制后是 0000 1000 0000 0100 1001 0101 1011 0000,最高10位0000 1000 00的十进制是32,CPU查看页目录表第32项,里面存放的是页表的物理地址。线性地址中间10位00 0100 1001 的十进制是73,页表的第73项存储的是最终物理页的物理起始地址。物理页基地址加上线性地址中最低12位的偏移量,CPU就找到了线性地址最终对应的物理内存单元。
我们知道Linux中用户进程线性地址能寻址的范围是0 - 3G,那么是不是需要提前先把这3G虚拟内存的页表都建立好呢?一般情况下,物理内存是远远小于3G的,加上同时有很多进程都在运行,根本无法给每个进程提前建立3G的线性地址页表。Linux利用CPU的一个机制解决了这个问题。进程创建后我们可以给页目录表的表项值都填0,CPU在查找页表时,如果表项的内容为0,则会引发一个缺页异常,进程暂停执行,Linux内核这时候可以通过一系列复杂的算法给分配一个物理页,并把物理页的地址填入表项中,进程再恢复执行。当然进程在这个过程中是被蒙蔽的,它自己的感觉还是正常访问到了物理内存。
看过“ 逻辑地址线性地址物理地址三个地址有什么联系”
浏览量:4
下载量:0
时间:
器语言指令中出现的内存地址,都是逻辑地址,需要转换成线性地址,再经过MMU(CPU中的内存管理单元)转换成物理地址才能够被访问到。那么线性地址物理地址是什么呢?今天读文网小编整理了线性地址物理地址的相关资料,希望对大家有帮助。
逻辑地址(Logical Address) 是指由程式产生的和段相关的偏移地址部分。例如,你在进行C语言指针编程中,能读取指针变量本身值(&操作),实际上这个值就是逻辑地址,他是相对于你当前进程数据段的地址,不和绝对物理地址相干。只有在Intel实模式下,逻辑地址才和物理地址相等(因为实模式没有分段或分页机制,Cpu不进行自动地址转换);逻辑也就是在Intel保护模式下程式执行代码段限长内的偏移地址(假定代码段、数据段如果完全相同)。应用程式员仅需和逻辑地址打交道,而分段和分页机制对你来说是完全透明的,仅由系统编程人员涉及。应用程式员虽然自己能直接操作内存,那也只能在操作系统给你分配的内存段操作。
线性地址(Linear Address) 是逻辑地址到物理地址变换之间的中间层。程式代码会产生逻辑地址,或说是段中的偏移地址,加上相应段的基地址就生成了一个线性地址。如果启用了分页机制,那么线性地址能再经变换以产生一个物理地址。若没有启用分页机制,那么线性地址直接就是物理地址。Intel 80386的线性地址空间容量为4G(2的32次方即32根地址总线寻址)。
物理地址(Physical Address) 是指出目前CPU外部地址总线上的寻址物理内存的地址信号,是地址变换的最终结果地址。如果启用了分页机制,那么线性地址会使用页目录和页表中的项变换成物理地址。如果没有启用分页机制,那么线性地址就直接成为物理地址了。
虚拟内存(Virtual Memory)是指计算机呈现出要比实际拥有的内存大得多的内存量。因此他允许程式员编制并运行比实际系统拥有的内存大得多的程式。这使得许多大型项目也能够在具有有限内存资源的系统上实现。一个非常恰当的比喻是:你不必非常长的轨道就能让一列火车从上海开到北京。你只需要足够长的铁轨(比如说3公里)就能完成这个任务。采取的方法是把后面的铁轨即时铺到火车的前面,只要你的操作足够快并能满足需求,列车就能象在一条完整的轨道上运行。这也就是虚拟内存管理需要完成的任务。在Linux0.11内核中,给每个程式(进程)都划分了总容量为64MB的虚拟内存空间。因此程式的逻辑地址范围是0x0000000到0x4000000。有时我们也把逻辑地址称为虚拟地址。因为和虚拟内存空间的概念类似,逻辑地址也是和实际物理内存容量无关的。逻辑地址和物理地址的“差距”是0xC0000000,是由于虚拟地址->线性地址->物理地址映射正好差这个值。这个值是由操作系统指定的。机理 逻辑地址(或称为虚拟地址)到线性地址是由CPU的段机制自动转换的。如果没有开启分页管理,则线性地址就是物理地址。如果开启了分页管理,那么系统程式需要参和线性地址到物理地址的转换过程。具体是通过设置页目录表和页表项进行的。
线性地址逻辑地址和物理地址的区别:
线性地址是逻辑地址到物理地址变换之间的中间层,是处理器可寻址的内存空间(称为线性地址空间)中的地址。程序代码会产生逻辑地址,或者说是段中的偏移地址,加上相应段的基地址就生成了一个线性地址。
如果启用了分页机制,那么线性地址可以再经变换以产生一个物理地址。若没有启用分页机制,那么线性地址直接就是物理地址。不过,在开启分页功能之后,一个线性地址可能没有相对映的物理地址,因为它所对应的内存可能被交换到硬盘中。32位线性地址可用于定位4GB存储单元。
所谓物理地址,就是指系统内存的真正地址。对于32 位的操作系统,它的范围为0x00000000~0xFFFFFFFF,共有4GB。只有当CPU工作于分页模式时,此种类型的地址才会变得非常“有趣”。本质上,一个物理地址是CPU插脚上可测量的电压。操作系统通过设立页表将线性地址映射为物理地址。Windows 2K/XP所用页表布局的某些属性对于调试软件开发人员非常有用。
分页机制把线性地址空间和物理地址空间分别划分为大小相同的块。这样的块称为页。通过在线性地址空间的页与物理地址空间的页之间建立映射,分页机制可以实现线性地址到物理地址的转换。线性地址空间的页与物理地址空间的页之间的映射可根据需要来确定。
线性地址空间的任何一页,可以映射为物理地址空间中的任何一页。
逻辑地址(Logical Address) 是指由程式产生的和段相关的偏移地址部分。例如,你在进行C语言指针编程中,能读取指针变量本身值(&操作),实际上这个值就是逻辑地址,他是相对于你当前进程数据段的地址,不和绝对物理地址相干。只有在Intel实模式下,逻辑地址才和物理地址相等(因为实模式没有分段或分页机制,Cpu不进行自动地址转换);逻辑也就是在Intel保护模式下程式执行代码段限长内的偏移地址(假定代码段、数据段如果完全相同)。应用程式员仅需和逻辑地址打交道,而分段和分页机制对你来说是完全透明的,仅由系统编程人员涉及。应用程式员虽然自己能直接操作内存,那也只能在操作系统给你分配的内存段操作。
线性地址(Linear Address) 是逻辑地址到物理地址变换之间的中间层。程式代码会产生逻辑地址,或说是段中的偏移地址,加上相应段的基地址就生成了一个线性地址。如果启用了分页机制,那么线性地址能再经变换以产生一个物理地址。若没有启用分页机制,那么线性地址直接就是物理地址。Intel 80x86的线性地址空间容量为4G(2的32次方即32根地址总线寻址)。
看过“ 线性地址物理地址 ”
浏览量:3
下载量:0
时间:
逻辑地址,需要转换成线性地址,再经过MMU(CPU中的内存管理单元)转换成物理地址才能够被访问到。那么线性地址怎么转物理地址?今天读文网小编整理了线性地址转物理地址的相关资料,希望对大家有帮助。
线性地址(Linear Address) 是逻辑地址到物理地址变换之间的中间层。程式代码会产生逻辑地址,或说是段中的偏移地址,加上相应段的基地址就生成了一个线性地址。如果启用了分页机制,那么线性地址能再经变换以产生一个物理地址。若没有启用分页机制,那么线性地址直接就是物理地址。Intel 80386的线性地址空间容量为4G(2的32次方即32根地址总线寻址)。
详细说下虚拟地址的转换。
首先,来看下内核为一个进程建立页目录和页表以及线性空间的函数。这个函数原型是:
VOID
MiInitMachineDependent (
IN PLOADER_PARAMETER_BLOCK LoaderBlock
)
位于init386.c的762行,这个函数太长了,挑选部分如下:
PointerPte = MiGetPdeAddress (PDE_BASE);
PdePageNumber = MI_GET_PAGE_FRAME_FROM_PTE (PointerPte);
CurrentProcess = PsGetCurrentProcess ();
#if defined(_X86PAE_)
PrototypePte.u.Soft.PageFileHigh = MI_PTE_LOOKUP_NEEDED;
_asm {
mov eax, cr3
mov DirBase, eax
}
//
// Note cr3 must be 32-byte aligned.
//
ASSERT ((DirBase & 0x1f) == 0);
//
// Initialize the PaeTop for this process right away.
//
RtlCopyMemory ((PVOID) &MiSystemPaeVa,
(PVOID) (KSEG0_BASE | DirBase),
sizeof (MiSystemPaeVa));
CurrentProcess->PaeTop = &MiSystemPaeVa;
#else
DirBase = MI_GET_PAGE_FRAME_FROM_PTE (PointerPte) << PAGE_SHIFT;
#endif
CurrentProcess->Pcb.DirectoryTableBase[0] = DirBase;
KeSweepDcache (FALSE);
//
// Unmap the low 2Gb of memory.
//
PointerPde = MiGetPdeAddress (0);
LastPte = MiGetPdeAddress (KSEG0_BASE);
MiZeroMemoryPte (PointerPde, LastPte - PointerPde);
第一句:PointerPte = MiGetPdeAddress (PDE_BASE);这句获得一个页表的指针。
PDE_BASE是页目录的基址,这个宏的定义如下:(i386.h 1968行)
#define PDE_BASE_X86 0xc0300000
#define PDE_BASE_X86PAE 0xc0600000
#define PTE_TOP_X86 0xC03FFFFF
#define PDE_TOP_X86 0xC0300FFF
#define PTE_TOP_X86PAE 0xC07FFFFF
#define PDE_TOP_X86PAE 0xC0603FFF
#if !defined (_X86PAE_)
#define PDE_BASE PDE_BASE_X86
#define PTE_TOP PTE_TOP_X86
#define PDE_TOP PDE_TOP_X86
#else
#define PDE_BASE PDE_BASE_X86PAE
#define PTE_TOP PTE_TOP_X86PAE
#define PDE_TOP PDE_TOP_X86PAE
#endif
#define PTE_BASE 0xc0000000
可以看出,如果CPU支持PAE或者开启了PAE(奔腾往后都支持,默认开启),那么一个进程页目录的基址为0xc0600000,这个在dbg调试的时候也可以看到,如
kd> !pte 0000
VA 00000000 (虚拟地址)
PDE at C0600000 PTE at C0000000
contains 0000000002B40067 contains 0000000000000000
pfn 2b40 ---DA--UWEV not valid
再来看这个MiGetPdeAddress ,他是个宏,定义如下:(mi386.h 1889行)
#define MiGetPdeAddress(va) ((PMMPTE)(((((ULONG)(va)) >> 22) << 2) + PDE_BASE))
可以看出他是取线性地址的最高10位,再左移2位,加上页目录的基址,得到该线性地址在该进程的 页目录的索引,而该处存放的就是其对应的页表索引,第二句:
PdePageNumber = MI_GET_PAGE_FRAME_FROM_PTE (PointerPte);
MI_GET_PAGE_FRAME_FROM_PTE 这个宏(mi386.h 2542行)的定义如下:
#define MI_GET_PAGE_FRAME_FROM_PTE(PTE) ((PTE)->u.Hard.PageFrameNumber)
他是直接取该页表对应的物理内存的地址。到这里,CPU就可以访问到实际的物理内存了。
剩下的工作就是把cr3寄存器的内容赋给dirbase,再把dirbase赋给进程pcb的DirectoryTableBase项,这个在windbg调试的时候我说过了。后面再把该进程的低2G的用户空间清零。
我举个例子,咱来一步步转换。(我关闭了PAE,关闭方法,网上找,xp sp3)
假如线性地址为7c920000,这个地址一般加载的是进程的ntdll文件,首先把它转换成二进制,我在windbg里做,如下:
kd> .formats 7c920000
Evaluate expression:
Hex: 7c920000
Decimal: 2089943040
Octal: 17444400000
Binary: 01111100 10010010 00000000 00000000
Chars: |...
Time: Mon Mar 24 11:44:00 2036
Float: low 6.0646e+036 high 0
Double: 1.03257e-314
可以看到高10位为01111100 10十六进制为0x1f2,
01111100 10 ->0x1F2按照上面的宏,0x1F2在左移2位,为0x7C8,加上PDE的基址C0300000,结果为C03007C8,我们在windbg里看下,如下:
kd> !pte 7c920000
VA 7c920000
PDE at C03007C8 PTE at C01F2480
contains 03793067 contains 03791025
pfn 3793 ---DA--UWEV pfn 3791 ----A--UREV
可以看到,结果是吻合的,下面我们来算页表,按照上面的说法,一个进程的页目录可以达到1024项(2的10次方),而每项都是4字节,所以一个进程的页目录大小为4096bytes(4k),同理,一个页表的大小也为4096bytes(4k),而每一个页目录项对应一个4k大小的页表,所以,页表项的地址可以这么算:
PTE = 页表基址+(页目录项索引 × 一个页表的大小) + (页表索引 × 每一个页表项的大小)
由上面的宏定义知道在关了PAE的情况下页表的基址PTE_BASE为0xc0000000,一个页表项的大小也为4字节。而该线性地址的中间10位为010010 0000十六进制为0x120,所以,该线性地址对应的页表地址为:
PTE = 0xC0000000 + (0x1F2 * 0x1000) + (0x120 * 0x4) = 0xC01F2480.和上面windbg显示的数据是一样的。
在windbg里看下该处的内容为
kd> dd C01F2480
c01f2480 03791025 00000000 00000000 04157025
该页表处的内容为0x03791025 ,其中,如果了解页表结构的话,其高20位为该页表指向的物理内存,为0x3791,再加上线性地址的末12位偏移,所以该线性地址对应的实际物理地址为:0X37910000.
到这里就算完了。
补充:
内核定义的页表的数据结构如下:
typedef struct _MMPTE {
union {
ULONG Long;
HARDWARE_PTE Flush;
MMPTE_HARDWARE Hard;
MMPTE_PROTOTYPE Proto;
MMPTE_SOFTWARE Soft;
MMPTE_TRANSITION Trans;
MMPTE_SUBSECTION Subsect;
MMPTE_LIST List;
} u;
} MMPTE;
typedef MMPTE *PMMPTE;
typedef struct _MMPTE_HARDWARE {
ULONG Valid : 1;
#if defined(NT_UP)
ULONG Write : 1; // UP version
#else
ULONG Writable : 1; // changed for MP version
#endif
ULONG Owner : 1;
ULONG WriteThrough : 1;
ULONG CacheDisable : 1;
ULONG Accessed : 1;
ULONG Dirty : 1;
ULONG LargePage : 1;
ULONG Global : 1;
ULONG CopyOnWrite : 1; // software field
ULONG Prototype : 1; // software field
#if defined(NT_UP)
ULONG reserved : 1; // software field
#else
ULONG Write : 1; // software field - MP change
#endif
ULONG PageFrameNumber : 20;
} MMPTE_HARDWARE, *PMMPTE_HARDWARE;
可以看出上面那个取物理地址的宏直接取的就是PageFrameNumber ,也就是该地址内容的高20位。
而在!pte命令在还显示了一些大些字母,如D,A,W,U之类的,也在该结构中有所显示。
看过“ 线性地址转物理地址 ”
浏览量:2
下载量:0
时间:
cad中线性标注怎么不显示呢?其实是可以解决的,下面读文网小编告诉大家cad中线性标注怎么不显示,一起来学习吧。
1、在任务栏打开线性标注命令,也可用DLI快捷命令打开
2、选择你要标注的距离的两个端点,请大家注意,线性标注只能标注水平方向及竖直方向,如图只能标注三角形的高,如要标注斜边要用水平标注
3、如果不想从端点直接引线的话,可以先将光标放在端点上,别点击,然后移动就会出现绿色辅助线,选择合适的位置作为标注端点
看了“cad中线性标注怎么不显示”
浏览量:3
下载量:0
时间:
物理地址就是windows系统自行的对用户的位置进行定位的,大家知道怎么样修改物理地址吗?今天读文网小编与大家分享下修改物理地址的具体操作步骤,有需要的朋友不妨了解下。
1、在任务栏右下角单击“网络”图标,选择“打开网络和共享中心”选择“更改适配器设置”。
2、对于有线网卡的MAC地址,请右键点击“本地连接”并选择“属性”。
3、点击“配置”,找到“高级”选项卡,在左边的栏中找到“网络地址”或者“Network Address”,找到“值”。
4、在输入框内输入要修改的物理地址,点击“确定”即可。
看过“怎么样修改物理地址”
浏览量:3
下载量:0
时间:
换网卡,网卡的物理地址重复或者需要某台机子临时登陆一下你的网络,那么这时候就需要更改电脑的物理地址了,那么Xp如何修改更改物理地址呢?下面跟着读文网小编来一起了解下吧。
1、首先是电脑物理地址的查看,不同连接方式对应不同的物理地址。包括本地连接和无线连接等。按win+R组合键打开“运行”。输入 cmd。即可进入命令窗口。
2、在命令窗口中输入ipcongfig/all .图中看到的physcial address就是物理地址。这是物理地址的查看方式。
3、下面是物理地址的更改步骤。首先打开网络连接。选择要使用的连接方式。右键选择“属性”。
4、更改配置,在属性窗口,点击“配置”按钮,其实这个连接使用的硬件就是我们的网卡。
5、点击【配置】后,选择【高级】。选择“本地管理的地址”,正常情况下,是如图所示的情况,物理地址也就是我们电脑本身的物理地址。
6、如果要更改物理地址,点击“值”,输入你要使用的物理地址即可。连续输入即可,注意数字和字母的正确区分,比如数字0和字母O。
浏览量:2
下载量:0
时间:
网卡物理地址存储器中存储单元对应实际地址称物理地址,那么我们怎么知道物理地址呢?接下来大家跟着读文网小编一起来了解一下知道物理地址的解决方法吧。
用鼠标右键点击“网上邻居”,选择“属性”,会出现下面的窗口。
再双击Internet协议(TCP/IP),在出现的对话框中就可以看到本机的IP地址。这种方法也是最常用的一个方法。
看过“怎么知道物理地址”
浏览量:5
下载量:0
时间:
直接修改网卡ROM信息来实现修改地址可以修改网卡物理MAC地址,那么到底怎样更改物理地址呢?就让读文网小编来告诉大家更改物理地址的方法吧,希望对大家有所帮助。
更改物理地址方法一1、在任务栏右下角单击“网络”图标,选择“打开网络和共享中心”选择“更改适配器设置”。
2、对于有线网卡的MAC地址,请右键点击“本地连接”并选择“属性”。
3、点击“配置”,找到“高级”选项卡,在左边的栏中找到“网络地址”或者“Network
Address”,找到“值”。
4、在输入框内输入要修改的物理地址,点击“确定”即可。
如更换新网卡,网卡的物理地址重复或者让笔记本电脑临时登陆一下网络等情况。更改网卡MAC地址的文章网络中有很多,但大都说的不够详细,下面笔者试着以Windows XP操作系统为例介绍两种网卡MAC地址的修改方法,希望对大家有所帮助。
简单的修改方法
读者可以在桌面上的“网上邻居”图标上单击右键,选择“属性”,在弹出的“网络连接”的对话框中,在“本地连接”图标上单击右键,选择“属性”,会弹出一个“本地连接属性”的对话框,单击“配置”按钮,选择“高级”,选中左栏“属性”中“Network Address”(其实,并非所有的网卡,对物理地址的描述都用“Network Address”,如Intel的网卡便用“Locally Administered Address”来描述,只要在右栏框中可以找到“值”这个选项就可以了),然后选中右栏框“值”中的上面一个单选项(非“不存在”),此时便可在右边的框中输入想改的网卡MAC地址,形式如“000B6AF6F4F9”。点击“确定”按钮,修改就完成了。
注册表修改方法
第1步,单击“开始”,选中“运行”,键入“regedit”调出注册表。
第2步,在HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlClass{4D36E972-E325-11CE-BFC1-08002BE10318}000、0001、0002 等主键下,查找 DriverDesc ,内容为要修改的网卡的描述,如Intel的网卡会被描述成“Intel(R) PRO/100+ Management Adapter”,3Com的网卡会被描述成“3Com EtherLink XL 10/100 PCI For Complete PC Management NIC (3C905C-TX)”等。
注:上面提到的关于网卡描述的选项出现的位置,和网卡本身以及操作系统有关。不同的网卡可能出现在不同的主键下,而同一网卡用不同版本的操作系统(如OEM版,VOL或者VLK等)也会出现在不同的位置。而这一步的任务就是找到含有网卡描述的主键。
第3步,选中在第二步找到的主键,在右栏框中添加一个字符串,命名为“Network Address”,其值设为要改的MAC 地址,形式如“000B6AF6F4F9”。
注:到这一步,修改网卡物理地址的任务可以说是完成了,有的网卡需要重启以下才能正常的工作,而有的只需一点点的时间“反应”一下而已。下面的几步是为了以后再修改物理地址方便用的,如果读者不再需要再次修改,到这里可以止步了。
第4步,在“第一步选中的主键”Ndiparams下添加一项名为“NetworkAddress”的主键,此时一般都会随着在右栏框中产生一个“(默认)”的字符串,将其值设置为最终想要修改的MAC地址,形式如“000B6AF6F4F9”。如果没有此字符串,读者也可自行添加此字符串。
注:此步骤就是为网卡设置一个初始MAC地址。
第5步,在“NetworkAddress”的主键下继续添加名为“ParamDesc”的字符串,其作用为指定“NetworkAddress”主键的描述,其值可自己命名,如“Network Address”,这样在网卡的高级属性中就会出现“Network Address”选项,就是刚在注册表中加的新项“NetworkAddress”,以后只要在此修改MAC地址就可以了。
第6步,在“NetworkAddress”的主键下继续添加名为“Optional”的字符串,其值设为“1”,则以后在网卡的高级属性中选择“Network Address”项时,右边会出现“不存在”选项。
第7步,重新启动计算机(不是一定要重新启动,但要视不同网卡的要求而定,不过,重启没有任何差错。),按照第一种方法找到“高级”选项就可发现此时“属性”栏中已有“Network Address”的选项,现在读者可以用来直接修改MAC地址或恢复原来的地址。
以上两种修改方法保证读者可以修改任何网卡的物理地址,希望笔者的这点总结和心得可以帮助到你。
看过“怎样更改物理地址”
浏览量:2
下载量:0
时间:
虚拟机用的人越来越多,在使用过程中有很多新人,对于如何修改VMware虚拟机中的网卡MAC地址很陌生,那么虚拟机怎么改物理地址呢?今天读文网小编与大家分享下虚拟机改物理地址的具体操作步骤,有需要的朋友不妨了解下。
最实用,快速的更改方法:
右击 我的电脑->Device Manager->Network adapters->选中某网卡,右击属性->Advanced->Locally Administered Address-> 输入想要设定的mac value->OK
转:
1、修改虚拟机的*.vmx文件.
这种方法最值得推荐,因为这样就类似于重新“烧录”了VMware虚拟机的“物理网卡ROM”。方法是:
分两种情况:
a:
ethernet0.addressType = "static"
ethernet0.Address = "00:50:56:0A:0B:0C"
"static"说明VM的"物理网卡"的MAC是静态设定的,你可以改成一个以005056开头的另外一个MAC即可。改完启动VM时如果问你SSID的话,选择“Keep Always”。
b:
ethernet0.addressType = "generated"
uuid.location = "56 4d dc f1 ff aa 75 ea-f1 b9 ee 0d 68 9c 65 5c"
uuid.bios = "56 4d ed 23 13 8c 96 91-7c 68 b2 09 8b aa bb cc"
ethernet0.generatedAddress = "00:0c:29:aa:bb:cc"
"generated"说明VM的"物理网卡"的MAC是系统随机动态设定的,你可以通过将uuid.bios后六位及ethernet0.generatedAddress后六位改成你想要改成的以000c29开头的MAC即可。
2、修改Linux系统里相关 /etc/sysconfig/network-scripts/ifcfg-eth0文件MAC值.
vi /etc/sysconfig/network-scripts/ifcfg-eth0
MACADDR=xx:xx:xx:xx:xx:xx
:wq 保存退出
reboot
3、修改Linux系统里相关rc.local文件MAC值.
可以通过改启动脚本/etc/rc.d/rc.local:
ifconfig eth0 down
ifconfig eth0 hw ether quduwenxxxxx
ifconfig eth0 up
/sbin/route add default gw x.x.x.x eth0
:wq 保存退出
reboot
看过“虚拟机怎么改物理地址”
浏览量:2
下载量:0
时间:
很多人不知道其实物理地址是可以改的,换电脑也同样可以上网。那么怎么可以改变物理地址呢?今天读文网小编与大家分享下改变物理地址的具体操作步骤,有需要的朋友不妨了解下。
只适用于windows7系统的网卡MAC地址修改。XP的可用。
部分windows7下的无线网卡地址无法修改,也可以使用本软件修改。
修改MAC地址前,先在开始菜单-运行,输入cmd打开控制台,输入getmac获取原来网卡MAC并记下来,用于以后可改回来。
只需在下拉列表选择所要修改的网卡,然后在文本框里面输入一个新的MAC地址,如EF2d32BC6525(不要加横杠),然后点击修改按钮即可修改。
个性后开始,运行输入cmd打开控制台,输入getmac查看是否修改成功。
浏览量:2
下载量:0
时间:
时候说的mac地址也就是物理地址,手机像电脑一样也有mac地址,那么怎么修改手机物理地址呢?接下来大家跟着读文网小编一起来了解一下修改手机物理地址的解决方法吧。
1、手机先root
2、安装RE文件管理器
3、把/data/etc/wifi/fw复制到电脑里
4、电脑事先安装好16位编辑器,同时先记下你的MAC地址
5、用16为编辑器打开复制出来的文件,
6、按照事先记号得MAC地址数据,寻找相对应的数据,然后要怎么改就是你自己的事了!
7、改好后把文件再拷回手机替换原来的文件!
注意请备份好原来的哪些数据,要是改乱了就麻烦了!
看过“怎么修改手机物理地址”
浏览量:3
下载量:0
时间:
MAC地址为网卡的物理地址,在Windows系统下非常容易修改,那么虚拟机的物理地址怎么改呢?今天读文网小编与大家分享下改虚拟机的物理地址的具体操作步骤,有需要的朋友不妨了解下。
修改Linux系统里相关/etc/sysconfig/network-scripts/ifcfg-eth0文件MAC值.
vi/etc/sysconfig/network-scripts/ifcfg-eth0
MACADDR=xx:xx:xx:xx:xx:xx
:wq保存退出
reboot
以上为VMware虚拟机中修改Linux MAC地址的三种方法,非常简单易行。
看过“虚拟机的物理地址怎么改”
浏览量:2
下载量:0
时间:
查看电脑的网卡的物理地址 mac地址我们都知道,也很简单 ,那么大家知道小米手机怎么查看物理地址吗?今天读文网小编与大家分享下小米手机查看物理地址的具体操作步骤,有需要的朋友不妨了解下。
点击菜单,打开系统设置,如图。
在系统设置里,点击WLAN,如图。
然后点击高级设置,如图。
在高级设置页面,你会发现有mac地址,如图所示,其它IP地址等信息也可以在这里查看。
浏览量:13
下载量:0
时间:
在确保访问的数据已在物理内存中后,还需要先将虚拟地址转换为物理地址,即"地址映射",那么虚拟地址映射到物理地址怎么做呢?今天读文网小编与大家分享下虚拟地址映射到物理地的具体操作步骤,有需要的朋友不妨了解下。
Win32通过一个两层的表结构来实现地址映射,因为每个进程都拥有私有的4G的虚拟内存空间,相应的,每个进程都有自己的层次表结构来实现其地址映射。
第一层称为页目录,实际就是一个内存页,Win32的内存页有4KB大小,这个内存页以4个字节分为1024项,每一项称为“页目录项”(PDE);
第二层称为页表,这一层共有1024个页表,页表结构与页目录相似,每个页表也都是一个内存页,这个内存页以4KB的大小被分为1024项,页表的每一项被称为页表项(PTE),易知共有1024×1024个页表项。每一个页表项对应一个物理内存中的某一个“内存页”,即共有1024×1024个物理内存页,每个物理内存页为4KB,这样就可以索引到4G大小的虚拟物理内存。
如下图所示(注下图中的页目录项的大小应该是4个字节,而不是4kB):
Win32提供了4GB大小的虚拟地址空间。因此每个虚拟地址都是一个32位的整数值,也就是我们平时所说的指针,即指针的大小为4B。它由三部分组成,如下图:
这三个部分的第一部分,即前10位为页目录下标,用来寻址页目录项,页目录项刚好1024个。找到页目录项后,找对页目录项对应的的页表。第二部分则是用来在页表内寻址,用来找到页表项,共有1024个页表项,通过页表项找到物理内存页。第三部分用来在物理内存页中找到对应的字节,一个页的大小是4KB,12位刚好可以满足寻址要求。
具体的例子:
假设一个线程正在访问一个指针(Win32的指针指的就是虚拟地址)指向的数据,此指针指为0x2A8E317F,下图表示了这一个过程:
0x2A8E317F的二进制写法为0010101010_0011100011_000101111111,为了方便我们把它分为三个部分。
首先按照0010101010寻址,找到页目录项。因为一个页目录项为4KB,那么先将0010101010左移两位,001010101000(0x2A8),用此下标找到页目录项,然后根据此页目录项定位到下一层的某个页表。
然后按照0011100011寻址,在上一步找到页表中寻找页表项。寻址方法与上述方法类似。找到页表项后,就可以找到对应的物理内存页。
最后按照000101111111寻址,寻找页内偏移。
上面的假设的是此数据已在物理内存中,其实判断访问的数据是否在内存中也是在地址映射过程中完成的。Win32系统总是假设数据已在物理内存中,并进行地址映射。页表项中有一位标志位,用来标识包含此数据的页是否在物理内存中,如果在的话,就直接做地址映射,否则,抛出缺页中断,此时页表项也可标识包含此数据的页是否在调页文件中(外存),如果不在则访问违例,程序将会退出,如果在,页表项会查出此数据页在哪个调页文件中,然后将此数据页调入物理内存,再继续进行地址映射。为了实现每个进程拥有私有4G的虚拟地址空间,也就是说每个进程都拥有自己的页目录和页表结构,对不同进程而言,即使是相同的指针(虚拟地址)被不同的进程映射到的物理地址也是不同的,这也意味着在进程之间传递指针是没有意义的。
浏览量:2
下载量:0
时间:
cad如何让线性引出标注呢?下面读文网小编把方法都教给大家,一起来学习吧。
引出标注:天正菜单中,符号标注——引出标注,可以先填对话框,再放置引出点,也可以直接放置引出点,再双击引出线编辑注释内容。
命令MLEADERSTYLE,新建自己的样式,并修改
设置也与尺寸标注很相似
完成后就可以创建多重引线了。
命令MLEADER,指定引线位置后就可以输入做法内容,因为类型是多行文字,所以写好一层之后可以回车写第二行,全部写完后,在CTRL+1窗口中调整设置。
索引标注,在CAD中也可以用多重引线表达,如下图,只是设置不太一样。
在这个索引标注中,“楼梯”“详建施”“3”“JX-1"都是用户块里的属性,因为多行文字与块不能同时出现,所以要把文字做进块里。
引出标注与做法标注一样,就是没有那么多行文字而已,不需赘述。
看了“cad如何让线性引出标注”
浏览量:6
下载量:0
时间:
网卡物理地址存储器中存储单元对应实际地址称物理地址,与逻辑地址相对应。那么大家知道怎样获取电脑物理地址吗?今天读文网小编与大家分享下获取电脑物理地址的具体操作步骤,有需要的朋友不妨了解下。
查arp表就好了
ping对方
然后本机就会刷新自己的arp表然后通过查询arp表就可以知道对方的物理地址了。
原理如下:
在每台安装有TCP/IP协议的电脑里都有一个ARP缓存表,表里的IP地址与MAC地址是一一对应的。
以主机A(192.168.1.5)向主机B(192.168.1.1)发送数据为例。当发送数据时,主机A会在自己的ARP缓存表中寻找是否有目标IP地址。
如果找到了,也就知道了目标MAC地址,直接把目标MAC地址写入帧里面发送就可以了;如果在ARP缓存表中没有找到目标IP地址,主机A就会在网络上发送一个广播,A主机MAC地址是“主机A的MAC地址”,这表示向同一网段内的所有主机发出这样的询问:“我是192.168.1.5,我的硬件地址是"主机A的MAC地址".请问IP地址为192.168.1.1的MAC地址是什么?”
网络上其他主机并不响应ARP询问,只有主机B接收到这个帧时,才向主机A做出这样的回应:“192.168.1.1的MAC地址是00-aa-00-62-c6-09”。这样,主机A就知道了主机B的MAC地址,它就可以向主机B发送信息了。同时A和B还同时都更新了自己的ARP缓存表(因为A在询问的时候把自己的IP和MAC地址一起告诉了B),下次A再向主机B或者B向A发送信息时,直接从各自的ARP缓存表里查找就可以了。ARP缓存表采用了老化机制(即设置了生存时间TTL),在一段时间内(一般15到20分钟)如果表中的某一行没有使用,就会被删除,这样可以大大减少ARP缓存表的长度,加快查询速度。
看过“怎样获取电脑物理地址”
浏览量:4
下载量:0
时间:
一般每个手机都有自己的物理地址,即MCA地址,就像人的身份证一样。那么大家知道如何查看手机的物理地址吗?下面读文网小编就为大家带来了查看手机的物理地址的方法。
一、打开Android手机。
二、点击"设置"图标进入设置窗口。
三、点击“无线网络”选项,进入无线网络设置窗口。
四、点击“WLAN设置”选项,打开“WANL设置”窗口。
五、在“WANL设置”窗口,直接点击手机左下方的“菜单”键。会出现“扫描”和“高级”两个选项。
六、直接点击“高级”选项。进入"高级“选项窗口,其中一项为“MCA地址”,即为手机的物理地址。
浏览量:3
下载量:0
时间:
虽然手机MAC地址在日常生活中自己实用时不常用到,但手机也是像电脑一样的。那么大家知道苹果手机怎么查看手机物理地址吗?今天读文网小编与大家分享下苹果手机查看手机物理地址的具体操作步骤,有需要的朋友不妨了解下。
第一步,点击 “设置” 图标
第二步,点击 “通用” 按钮
第三步,点击 “关于本机” 按钮
第四步,轻按屏幕向上滑动
第五步,WI-FI地址后边的那十二位就是MAC地址。
浏览量:12
下载量:0
时间: