我收到一封来自我的主机提供商(在本例中为bluehost)的电子邮件,邮件中的服务器名称应为vps.sitename.com ]更新主机名后,您应在sitename.com的已注册域名服务器中为条目vps.sitename.com添加一条A记录
所以我的问题是A记录应该指向什么?
@ ip address or
@ vps.sitename.com
我知道,如果我试图打印一个数组元素的地址,它将是一个来自虚拟内存的地址,而不是来自真实内存(物理内存),即DRAM的地址。
printf ("Address of A[5] and A[6] are %u and %u", &A[5], &A[6]);
我发现地址是连续的(假设元素是字符)。实际上,它们可能不是连续的,至少在DRAM中不是。我想知道真正的地址。我该怎么做呢?
无论是Windows还是Linux,我都需要知道这一点。
我需要在linux驱动程序中获得分配内存块的物理内存:这是一个FPGA SOC,内存被传递给SGDMA FPGA模块。
这可以归结为对“逻辑”和“虚拟”记忆的混淆:--它们是同义词还是反义?--
因此,我的驱动程序代码片段是:
unsigned long m = __get_free_pages(GFP_USER, order); // returns 'logical' address
if (m) {
instance->read_buffer[i].order = order;
if(1) { // should this be 0?
因此,我理解当cpu查找一个虚拟地址时,它会查看TLB,然后查看页面表,以获得物理地址( pa ),但是我有点困惑它如何处理这个pa。
它是否只是检查每个级别的内存地址,直到它被击中?例如:在缓存l1上检查pa,如果错过则在l2检查pa,如果错过则在l3检查pa,如果错过则在RAM中检查pa,如果丢失则从磁盘读取。我尝试过搜索这个和搜索堆栈溢出,但是我找不到对这个过程的任何全面或清晰的解释。