腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
1
回答
哪种
地址
是0x0000000140001000?
、
、
这个
地址
是
绝对
虚拟地址
还是相对
虚拟地址
? 0x0000000140001000
浏览 4
提问于2022-05-15
得票数 -1
2
回答
链接器、
绝对
引用和进程
地址
空间。
、
我对重新定位
绝对
引用、共享库和与位置无关的代码感到非常困惑。我假设我对单个进程的
地址
空间还不太了解。 在我的书中,作者谈到了通过插入全局变量/函数的运行时
地址
来解析
绝对
符号引用的链接。我猜每次都不会把它加载到同一个内存中,那么链接器怎么可能知道变量/函数的
绝对
运行时
地址
呢?
浏览 0
提问于2013-06-10
得票数 1
回答已采纳
1
回答
物理
地址
和
绝对
地址
有什么区别?
、
物理
地址
和
绝对
地址
有什么区别?
浏览 0
提问于2012-07-06
得票数 6
回答已采纳
3
回答
将物理
地址
映射到
虚拟地址
linux
、
、
、
、
我想把它们映射到用户空间的
虚拟地址
。目前,我正在通过一个内核模块来做这件事。我使用vmalloc/kmalloc (取决于大小),然后对返回的
虚拟地址
使用ioremap_page_range来映射我的物理
地址
。我认为这不是正确的做法。首先,我正在分配内存,然后我请求内核将
虚拟地址
空间重新映射到一些不同的物理
地址
空间。(最初在vmcall/kmalloc中映射physical->virtual有点没用,因为我不关心那些物理页面。这
绝对
不是好事。) 相反,有一种更好
浏览 0
提问于2012-07-24
得票数 8
回答已采纳
2
回答
指定符号放置的
绝对
地址
、
、
我有一个我编译的静态库,当我创建可执行文件时,我希望我在库中创建的某个函数始终放在固定的
绝对
地址
。具体地说,我的静态库是一组x86汇编例程,我希望其中一个例程(称为_start_exec)在加载ELF二进制文件时始终位于固定的
虚拟地址
。我尝试过--defsym,尽管我不认为那是我想要的。我不想打乱可执行文件的起始点,我只希望在我链接的所有可执行文件中,特定的指令序列始终位于固定的
虚拟地址
。
浏览 0
提问于2012-03-05
得票数 1
1
回答
cudaMalloc在不同的CPU线程上返回相同的内存
地址
、
、
、
我没有合适的统一
地址
空间(由于卡的限制: sm_12)。我觉得这很难相信。为了说明这一点:两个进程都使用cudaMalloc (运行时应用程序接口)和cuMalloc (驱动程序API) (在大卡上为400MB)请求设备内存,并且两个
浏览 4
提问于2012-10-20
得票数 3
回答已采纳
3
回答
CPU如何知道哪个物理
地址
被映射到哪个
虚拟地址
?
、
、
、
根据我的理解,每个进程通过
虚拟地址
而不是物理
地址
访问内存,CPU有责任通过MMU单元将这些
虚拟地址
转换为物理
地址
,两个或多个进程可以具有相同的
虚拟地址
。假设进程A试图访问
虚拟地址
12345,进程B也试图访问
虚拟地址
12345。MMU将如何将每个进程的
虚拟地址
转换为物理
地址
,它是否为每个将
虚拟地址
映射为物理
地址
的进程设置了映射表(因为我认为CPU甚至不知道什么是“进程”,它的唯一责任是执行指令,而不关
浏览 0
提问于2017-05-12
得票数 6
回答已采纳
2
回答
链接器是否在链接时生成
绝对
虚拟地址
?
、
、
、
、
f8 05 00 00 00 movl $5, -8(%rbp)如您所见,内存
地址
是它们不是真正的
地址
。movl $5, -8(%rbp)我的问题是,100000f90是虚拟内存字节的实际
地址
还是偏移量链接器如何在执行前给出实际
地址
?如果在执行时该内存
地址
不可用怎么办?如
浏览 0
提问于2019-03-16
得票数 7
2
回答
加载程序是否在程序启动时修改重新定位信息?
、
、
、
、
我一直认为解析
绝对
地址
完全是链接器的工作。也就是说,在链接器将所有对象文件组合成一个可执行文件之后,它将修改所有
绝对
地址
,以反映可执行文件中的新位置。但是在中看到加载程序不必将程序文本放在链接器指定的
地址
之后,我真的很困惑。return 0; Foo.cvoid printMe(){} 假设链接后,main的代码被放置在
地址
0x00000
浏览 1
提问于2018-04-29
得票数 1
回答已采纳
1
回答
当我在GDB中运行一个程序时,GDB如何显示程序的
虚拟地址
?
、
、
、
当我在GDB中运行我的简单程序时,GDB会向我显示程序的
虚拟地址
(在我的程序的可执行对象文件中定义)。但GDB没有给我那个
地址
。相反,GDB显示我的简单程序的
虚拟地址
,它定义在我的简单程序的可执行对象文件中。 怎么会出这事?GDB有
虚拟地址
表吗?
浏览 1
提问于2017-09-19
得票数 2
回答已采纳
1
回答
图像基
地址
、
虚拟地址
和相对
虚拟地址
有什么区别?
、
、
、
图像基
地址
、
虚拟地址
和相对
虚拟地址
有什么区别?但是我所读到的关于物理可执行(PE)文件格式的内容是非常不同的。我发现
虚拟地址
=映像库+相对
虚拟地址
偏移量 这两个有什么区别?图像基
地址
到底是什么?图像基
地址</em
浏览 4
提问于2016-06-05
得票数 3
回答已采纳
1
回答
近/远jmp/呼叫细节
、
、
、
Far jmp/call指令使用
绝对
地址
作为操作数。jmp [new number of code segment][proc name as offset]address = new number* 10h + offset 这实际上是实模式下的物理
地址
。
浏览 1
提问于2013-10-28
得票数 1
3
回答
我们看到一个进程的
虚拟地址
(在分页系统中),这些
虚拟地址
在哪里?
、
、
、
、
我们看到与任何指令对应的
虚拟地址
,所以我的问题是这些
虚拟地址
在哪里?如果我们看到gdb中的反汇编,我们就会看到
虚拟地址
,这些
地址
位于哪里?请不要说它只是
虚拟地址
,它必须按页映射到物理
地址
,我知道,但是我们在gdb中看到的
虚拟地址
在哪里存在呢?在RAM里还是在硬盘里?
浏览 2
提问于2016-09-17
得票数 2
回答已采纳
1
回答
虚拟内存
地址
驻留在哪里?
、
、
、
因此,如果
虚拟地址
没有对应的物理
地址
,CPU将从磁盘获取该
地址
。因此,
虚拟地址
的映射可以在以下两个位置之一:它在物理内存或磁盘中。我的问题是
虚拟地址
本身驻留在哪里?因为CPU需要这个
虚拟地址
来执行映射。CPU从哪里获得这个
地址
?当我们使用gdb查看
虚拟地址
空间时,gdb将所有这些
虚拟地址
放在哪里?对于ex:页表20这里20 (页表条目)驻留在RAM中。0x800
浏览 5
提问于2013-10-30
得票数 2
1
回答
x86程序集中的
地址
是虚拟的还是物理的?
、
假设我们有一些x86指令,比如[ebx]的值是一些
地址
0x123456789。读取时,它声明“
虚拟地址
空间由CPU的内存管理单元(MMU)实现”。 那么,是否有一个独立于操作系统的CPU
虚拟地址
空间?除了内核
虚拟地址
空间之外,为什么还需要这样做呢?如果没有操作系统,CPU将如
浏览 0
提问于2017-01-02
得票数 8
回答已采纳
1
回答
是否需要将操作系统分配给设备的内存映射到虚拟内存空间?
、
、
、
所以我有必要用
虚拟地址
来使用这个内存吗?我们不能使用物理
地址
本身来寻址内存吗?
浏览 3
提问于2013-03-21
得票数 0
2
回答
加载时ELF重定位
、
、
、
通常,当一个程序被内核的ELF加载程序加载时,它被加载到它自己的
地址
空间中。这样,数据段和代码段可以加载到ELF段中指定的正确
虚拟地址
。然而,在我的例子中,我通过mmap向内核请求
地址
,可能会也可能得不到在ELF段中请求的
地址
。这对于代码段来说不是问题,因为它与位置无关。但是,如果数据段未加载到预期
地址
,代码将无法正确引用存储在数据段中的任何内容。 实际上,我的加载器似乎可以很好地处理不包含任何数据的简单程序集可执行文件。
浏览 2
提问于2009-08-28
得票数 21
回答已采纳
1
回答
Linux中使用的
地址
类型
我试图理解Linux内核使用的内存
地址
类型,这些类型是物理
地址
核逻辑
地址
我的理解如下: 我不明白公共汽车
浏览 0
提问于2013-04-04
得票数 4
回答已采纳
1
回答
如何在保留
虚拟地址
范围的同时释放内存?
、
、
、
我在一个内存大小和
虚拟地址
空间都非常紧张的设备上工作。我试图通过更频繁地回收内存,而不是更频繁地回收
虚拟地址
来解决这个问题,例如,提前保留
虚拟地址
但延迟提交内存,同时提前回收内存并延迟释放
虚拟地址
。特别是,有一个非常大的分配受到
地址
空间碎片的影响,我正在尝试通过预先为它预留
地址
空间来解决这个问题。解决了第一个问题:使用mmap和PROT_NONE来获取
虚拟地址
范围,在使用之前使用mprotect和PROT_READ|PROT_WRITE,这样页面在使用时就会出错。但是,
浏览 1
提问于2018-04-12
得票数 1
1
回答
我怎么能跳到上半个内核呢?
、
、
、
、
我目前正在构建一个更高的半内核,我的引导程序将内核加载到物理
地址
0x100000(1M),并且身份映射已经设置为0-4MB。下面是一个问题:如何跳转到更高的
虚拟地址
(例如,3GB)。我搜索了这个问题,发现了两种方法:一种是使用
地址
空间扭曲,另一种是设置页面条目将3GB~3GB+4MB映射为0-4MB,然后“跳转”到较高的
地址
。我决定使用第二种方式,但找不到足够的信息来实现它。我拆解了内核,发现所有的
地址
都是
绝对
的,所以我相信一个"jmp“指令是不够的。我能想到的唯一方法是,在3
浏览 3
提问于2013-04-19
得票数 1
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
什么是虚拟地址注册?合法吗?
可以使用虚拟地址注册公司吗?
上海园区虚拟地址注册公司是啥意思呢?
如何把织梦内容页图片的相对地址修改成绝对路
地址映射:计算机系统中的关键概念
热门
标签
更多标签
云服务器
ICP备案
对象存储
腾讯会议
实时音视频
活动推荐
运营活动
广告
关闭
领券