腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(5953)
视频
沙龙
1
回答
Linux
是否对页目录和页表使用自映射?
、
、
、
我之所以问这个问题,是因为我很好奇
Linux
内核
是
如何工作
的
。根据
的
说法,Windows在其页目录和页表中使用了名为self-map
的
特殊条目,以便能够操作来自
内核
虚拟地址
空间
的
页目录/表内容。如果有人熟悉
Linux
内存管理,请告诉我
Linux
内核
处理这个问题
的
方式
是
相似的
还是
不同
的
。谢谢。
浏览 1
提问于2011-03-11
得票数 3
回答已采纳
1
回答
在
Linux
内核
的
mm_struct
中
,'
pgd
‘
属性
是
物理地址
还是
虚拟地址
?
、
、
、
在
Arm32体系结构(平面内存模型)
中
,
mm_struct
中
的
'
pgd
‘
属性
是
一个
虚拟地址
。然而,如果我没理解错的话,
在
Arm64架构(稀疏内存模型)
中
,
mm_struct
中
的
'
pgd
‘
属性
是
一个
物理地址
。 为什么两种架构之间会有如此大
的
浏览 60
提问于2021-05-11
得票数 0
2
回答
内核
虚拟地址
到底
是
如何转换成物理RAM
的
?
、
、
表面上看,这似乎
是
一个愚蠢
的
问题。请耐心点..。*正在将这一qs分为两部分: 第1部分:我完全理解platform RAM映射到
内核
段;尤其
是
在
64位系统上,这将很好地工作。此外,我
的
理解
是
,由于
Linux
是
一个现代虚拟内存操作系统,所有地址都被视为
虚拟地址
,必须在运行时通过硬件( TLB/MMU )“传递”,然后通过
内核
分页表由TLB/MMU进行翻译。但是,在运行时,
内
浏览 7
提问于2016-04-15
得票数 20
回答已采纳
1
回答
ARM MMU
在
不同运行模式下
的
运行
、
、
在
我提出问题之前,我会先把我对这个话题
的
理解,
Linux
内核
模式对应于ARM监控器mode.
Linux
用户模式对应于ARM用户Mode.In
内核
模式 (MMU已启用),
Linux
使用相对地址代替
物理地址
例如,
物理地址
=相对地址- PAGE_OFFSET +用户模式 (MMU已启用),
Linux
使用
虚拟地址
代替
物理地址
。使用pte、pmd、
pgd
的</e
浏览 3
提问于2012-04-03
得票数 4
1
回答
ARM
Linux
如何维护段?
、
Linux
通过MMU将平面
虚拟地址
转换为
物理地址
。
在
Linux
的
虚拟地址
空间中,有许多类型
的
段:
Linux
如何维护这些段(也就是部分)?这些段
的
基本地址和大小存储在哪里?
内核
中
的
寄存器、GDT/LDT、
mm_struct
或其他数据结构
浏览 1
提问于2015-07-23
得票数 0
回答已采纳
5
回答
如何从
Linux
内核
中
的
任意地址获取结构页
、
这可能
是
用kmalloc获得
的
缓冲区,
内核
线程堆栈
中
的
指针,或者其他我不知道
的
情况。我唯一
的
保证
是
,这个上层
的
调用方必须确保在这一点上内存缓冲区被映射到
内核
空间中(也就是说,此时对所有0<=i<size访问buffer[i]
是
有效
的
)。此外,测试一个地址是否来自vmalloc,测试一个地址是否
是
一个有效
的
虚拟地址
(v
浏览 6
提问于2011-05-12
得票数 27
2
回答
Linux
内核
线程如何使用上一次运行进程
的
内存描述符(
Mm_struct
)?
、
关于
mm_struct
和
内核
线程,
在
Linux
kernel Development ( Robert Love)一书中提到
的
一些要点
是
:“由于
内核
线程在用户空间中没有任何页面,它们实际上不值得拥有自己
的
内存描述符和页表(页表将在本章后面讨论)。然后,
内
浏览 3
提问于2014-12-17
得票数 3
1
回答
虚拟到
内核
逻辑地址
、
、
、
、
我有一个字符驱动程序,其中我添加
的
接口函数之一
是
alloc_contig(int order),其中log2
是
所需
的
4K页数
的
顺序。此函数分配连续
的
物理内存,并使用remap_pfn_range函数将其映射为用户空间使用情况。我正在尝试编写释放内存
的
函数,现在在
内核
中
,我有用户提供
的
虚拟地址
可以释放,并且我需要获得底层
物理地址
,所以我尝试使用virt_to_phys,但它没有给我想
浏览 0
提问于2016-06-27
得票数 2
2
回答
基于内存管理
的
linux
内核
x86分页
、
、
、
、
在
linux
arch
中
,x86
内核
2.6.x,32位系统
是
为
内核
保留
的
。并且该
虚拟地址
可以被转换为
物理地址
然而,我认为即使结果
是
一样
的
,MMU也会翻译 通过遍历页表将
内核
虚拟地址
(如0xC0851000)转换为
物理地址
。我
是<
浏览 0
提问于2012-07-23
得票数 2
回答已采纳
1
回答
从
linux
内核
访问用户空间数据
、
这是一个要求部分实现进程检查点
的
赋值问题:我可以直
浏览 1
提问于2013-03-15
得票数 1
回答已采纳
2
回答
Linux
中进程
的
遍历页表
、
、
我正在尝试为
linux
中
的
一个进程导航页表。
在
一个
内核
模块
中
,我实现了以下功能:{ pte_tprintk(KERN_INFO "page frame struct is @ %p", page); return page;此函数从ioctl调用,add
浏览 1
提问于2012-01-24
得票数 21
回答已采纳
1
回答
Linux
中使用
的
地址类型
我试图理解
Linux
内核
使用
的
内存地址类型,这些类型
是
物理地址
核逻辑地址我
的
理解如下:
浏览 0
提问于2013-04-04
得票数 4
回答已采纳
1
回答
使用页表查找
物理地址
演练
、
查找访问进程页表项以查找作为参数传递给char驱动程序读取例程
的
进程数据
的
物理地址
。以下
是
针对禁用PAE模式
的
32位
Linux
x86
的
代码 static unsigned long getDirEntry(const
pgd
_t *
pgd
, void *address)KERN_INFO "Value of string inside physical page = %s\n",(char *)kptr2
浏览 1
提问于2014-04-08
得票数 0
1
回答
Linux
VAS管理
在
Linux
内核
中
,
在
虚拟地址
空间(vas)之间交替
的
代码行在哪里?我知道
Linux
用struct
mm_struct
来描述vas,但是找不到实际
的
代码。
浏览 4
提问于2011-09-22
得票数 0
回答已采纳
1
回答
捕获并避免物理内存中固定偏移量
的
内存损坏
我们有一个4字节
的
内存损坏,它总是发生在物理内存
中
的
固定偏移量。物理帧号为0x00a4d,偏移量以dc0结尾。问题1)根据这些信息,我们可以说损坏
的
物理地址
是
0x00a4d * PAGE_SIZE (4096) + dc0 = 0x00A4DDC0。通过编程方式,确认
物理地址
的
最佳方法是什么?我们
的
系统
是
基于ppc64
的
。 问题2)找出内存损坏
的
最佳方法是什么?我读得越多,我就越迷
浏览 0
提问于2016-08-31
得票数 0
1
回答
用它
的
物理地址
获取内存
的
哪个实现是正确
的
?
、
、
我需要在
linux
驱动程序
中
获得分配内存块
的
物理内存:这是一个FPGA SOC,内存被传递给SGDMA FPGA模块。因此,我
的
驱动程序代码片段
是
: unsigned long m = __get_free_pages(GFP_USER, order); // returns 'logical' addressinstance->
浏览 8
提问于2014-06-01
得票数 0
回答已采纳
1
回答
内核
如何设置注册cr3?
、
、
我理解处理器
的
mmu使用寄存器cr3将线性地址转换为
物理地址
,前提
是
cr3被正确地设置为页面目录
的
物理地址
。但是在
内核
分配了页面表之后,它如何找到表
的
物理地址
并将cr3设置为它呢?编辑:我说
的
是
linux
内核
。
浏览 4
提问于2017-07-21
得票数 4
回答已采纳
1
回答
那么/proc/$pid/map文件
中
没有显示
的
许多地址呢?
、
、
简要版本:地图文件
中
未显示
的
地址是什么状态?它们
是
属于未分配
的
虚拟页面,
还是
从匿名文件或其他文件中分配? 详细版本--我正在学习有关VM
的
内容。
在
我
的
书(CS:APP)
中
,我了解到所有虚拟页面都可以分成三组:未分配
的
、分配
的
、但不缓存
的
、分配
的
和仙人掌
的
。我有一些关于“什么
是
分配
的
页面和未分配
的</em
浏览 2
提问于2020-12-09
得票数 1
回答已采纳
1
回答
虚拟内存、
虚拟地址
、
我已经阅读了各种在线文档/视频,以了解“
虚拟地址
,
虚拟地址
空间(VAS)”等,但仍然有一些疑惑下面提到
的
还不清楚。2)要执行,需要将程序加载到RAM
中
,CPU为其生成
虚拟地址
。这些活动(生成VA并加载到RAM
中
)
是
同时发生
还是
顺序发生?如果有的话,<em
浏览 59
提问于2018-01-31
得票数 0
1
回答
linux
内核
-如何获得
物理地址
(内存管理)?
、
、
、
在
linux
中
,页上目录偏移地址可以使用pud_offset() API.计算是否有计算
物理地址
的
函数或宏? edit : x86-64 architecture.
浏览 2
提问于2016-12-11
得票数 4
回答已采纳
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
热门
标签
更多标签
云服务器
ICP备案
云直播
对象存储
实时音视频
活动推荐
运营活动
广告
关闭
领券