腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
1
回答
最初的unix
内核
是如何嵌入
内存
的?
、
今天,几乎所有
内核
都使用MMU提供的虚拟
内存
。它们使用全局页表(其地址位于CPU寄存器中)和页监控器/页映射程序来实现这一点。例如,vmlinuz中的"vm“意味着
linux
内核
支持虚拟
内存
。这一切都是可能的,因为MMU将连续的
内存
地址映射到x86体系结构所理解的
内存
段。 最初的UNIX
内核
确实有一个vmunix版本,我相信它一定使用了类似的技术。然而,最初的UNIX
内核
是在MMU可用之前编写的。如果我没有弄错的话
浏览 0
提问于2016-12-25
得票数 5
回答已采纳
1
回答
linux
内核
如何在动态
内存
中保存struct_task?
、
当我阅读理解
linux
内核
时,我得到了这句话。
内核
在最高的虚拟地址中保留了几乎128 to的高
内存
来处理动态物理地址。我的问题是:虽然高
内存
可以
寻址
所有物理地址,但它最多只能同时
寻址
128 my的地址。
内核
数据结构是如此之多,以至于可能超过128 is 。如果
内核
想重新映射一些高
内存
,那么保存在高
内存
中的某些数据
浏览 5
提问于2017-05-27
得票数 1
1
回答
我是否可以使用具有物理
寻址
的
内存
指针从RAM中加载数据?
、
、
、
、
我是否可以使用指向
内存
的指针从RAM加载数据(而不是从我的驱动程序(
Linux
-
内核
)到虚拟地址),而无需在虚拟
寻址
中分配页面(PDE/PTEs)?
浏览 3
提问于2013-12-03
得票数 1
回答已采纳
1
回答
我能映射到
内存
中的可查找字符设备`/dev/mem_8‘并使用x86_64指令访问它吗?
、
、
、
、
如果我有一个可查找的字符设备- /dev/mem_8,允许用户空间程序通过简单的I/O操作随机访问
内存
数组,我是否可以将其映射到进程的虚拟
寻址
内存
,以便使用x86_64指令:MOV、REP MOVS和SSE操作系统:
Linux
x86_64
内核
>= 2.6
浏览 3
提问于2013-10-08
得票数 1
回答已采纳
1
回答
无法访问地址处的
内存
- RISCV gdb/
Linux
无KSLR
、
、
、
我正在为RISC-V架构开发一个定制的
Linux
内核
。现在我正在使用GDB/QEMU进行调试,因为这些工具已经可用。当我在调试时,我注意到我不能访问虚拟化地址的
内存
。也就是说,一旦
内核
中的
内存
从物理
寻址
转换为虚拟
寻址
,我就不能再在gdb中访问这些
内存
位置。例如,
内核
在QEMU的info mem命令中如下所示。在我的
内核
中,单步执行到开始使用虚拟
内存
的这一点是可以的,但是超过这一步会导致QE
浏览 23
提问于2020-06-16
得票数 0
1
回答
在x86系统中,
Linux
内核
如何从8MB到1gb的虚拟
内存
地址?
、
、
、
我正在研究如何在
Linux
内核
中启用分页,但我不明白
内核
如何能够
寻址
从8MB到1GB的虚拟
内存
。我的意思是,在启动阶段,
内核
有一个非常小的页面表编码到映像中。因此,
内核
总共只能处理8MB的虚拟
内存
。然后,
内核
必须安装页面表的第二级,以驱动其所有1GB的虚拟
内存
。为了解决这个问题,它必须依赖于一些允许检索缓冲区的
内存
分配器,以便将第二级页面表的条目放在哪里:这是引导分配器。 因此,我的问题是:
浏览 0
提问于2018-03-29
得票数 0
1
回答
如何扩展(4MB)和常规分页(4KB)共存?
、
、
在x86体系结构中,“扩展分页”允许页帧(物理
内存
)为4MB而不是4KB。“理解
Linux
内核
,第3章”第2章“
内存
寻址
”一书“
Linux
中的寻呼”一节“
内核
页表”解释说,对于RAM小于896 MB的最终
内核
页表:在何种情况下,
内核
使用4MB页?还是4 KB页? 哪些页面帧大小将用于kmalloc操作?为了
浏览 0
提问于2012-06-13
得票数 6
1
回答
32位
Linux
虚拟
内存
与PCIe基本地址寄存器的结构
、
、
、
我正在开发一个
Linux
系统(32位,4GB RAM),并发现了一些关于
Linux
中
内存
寻址
的矛盾信息。只有虚拟
内存
才能区分
内核
和用户空间。虚拟
内存
位于一个大4GB的32位系统中。用户空间为3GB,
内核
空间为1GB。在这个主页上说明物理
内存
在
内核
和用户空间上也有区别,对吗?
浏览 0
提问于2014-07-08
得票数 1
回答已采纳
1
回答
/proc/<pid>/statm中“页面”的单位是什么?
、
、
根据proc(5)的
linux
手册页:如果我将结果与ubuntu系统监视器
浏览 0
提问于2018-04-19
得票数 6
回答已采纳
1
回答
Linux
3/1拆分与物理映射
、
、
我试图理解
Linux
3/1拆分(或2/2,1/3,任意)以及如何映射到物理
内存
。让我们假设x86。让
内核
始终保持不变的一件事可能是,在上下文开关上,current保持不变,不需要更改cr3。高
内存
是用户空间程序可以处理的
内存
段.它不能触摸低
内存
。低
内存
是
Linux
内核
可以直接
寻址
的
内存
段。如果
内核
必须访问高
内存
,它必
浏览 0
提问于2019-02-12
得票数 3
回答已采纳
2
回答
我们需要为memmap保留
内存
块映射吗?
、
、
、
、
我使用memmap=8G$4G
linux
内核
引导参数保留
内存
块。 ioremap执行特定于平台的操作序列,以便通过readb/readw/readl/writeb/ writew/writel函数和其他mmio帮助程序访问总线
内存
CPU。因此,如果我不能使用ioremap返回的地址作为直接
寻址
内存
的虚拟地址,那么更广泛的问题是什么时候应该对
内存</em
浏览 7
提问于2012-10-16
得票数 0
4
回答
为什么
内核
映射到与进程相同的地址空间?
、
、
、
所有关于进程地址空间和虚拟
内存
布局的文本都提到进程地址空间为
内核
保留了空间。例如,在32位系统上,进程地址空间为4GB,其中1GB保留给
Linux
中的
内核
(在其他操作系统上可能有所不同)。我只是想知道为什么说
内核
在进程地址空间中,而进程不能直接
寻址
内核
。为什么我们不说
内核
有一个独立的地址空间而不是一个进程,为什么我们不能为
内核
本身提供一个不同的页面表,它与进程的页表是分开的?我能得到关于
Linux
(Debian或U
浏览 5
提问于2012-10-22
得票数 17
回答已采纳
5
回答
linux
内核
如何管理小于1GB的物理
内存
?
、
、
、
、
我正在学习
linux
内核
的内部结构,在阅读“理解
Linux
内核
”时,一些与
内存
相关的问题给我留下了深刻的印象。其中之一是,如果在我的系统上安装了512 MB的物理
内存
,
Linux
内核
将如何处理
内存
映射。正如我所读的,
内核
将0(或16) MB-896 MB物理RAM映射到0xC0000000线性地址,并可以直接
寻址
它。因此,在上面描述的情况下,我只有512 MB:
内核
如何从51
浏览 11
提问于2010-12-24
得票数 52
回答已采纳
1
回答
32位和64位
内核
上的zone_NORMAL和ZONE_HIGHMEM
、
我试图使
linux
内存
管理在调优和性能方面更加清晰。 通过阅读这本非常有趣的红皮书“指南”,我发现了一些我不完全理解的东西。在32位架构(如IA-32 )上,
Linux
内核
只能直接
寻址
物理
内存
的第一个千兆字节(当考虑保留范围时为896 MB )。所谓的ZONE_NORMAL上面的
内存
必须映射到1GB以下的
内存
中.这种映射对应用程序是完全透明的,但是在ZONE_HIGHMEM中分配
内存
页会导致较小的性能下降。为什么896 MB以上的<e
浏览 2
提问于2011-05-26
得票数 3
2
回答
std::bad_alloc最大限制
、
内存
为7.7 GB。当我运行某个进程(用C++编写)并达到
内存
使用率的50%时,这样的进程会抛出一个"std::bad_alloc“。
浏览 3
提问于2013-01-10
得票数 2
1
回答
linux
内核
如何知道syscall中作为参数传递的地址无效?
、
、
、
目前,我正在阅读System calls 章节--理解
linux
内核
,并且我无法理解
linux
内核
如何知道通过syscall()传递的地址参数是无效的。书中提到,地址检查会被推迟,直到它被使用,而当
linux
使用这个地址时,它会产生页面错误。它进一步指出,在
内核
模式下,三种情况下都可能发生故障。
内核
试图
寻址
属于进程地址空间的页面,但不存在相应的页面框架,或者
内核
试图写入只读页。 某些
内核
函数包含一个编程错误,在执行该
浏览 3
提问于2018-05-13
得票数 1
回答已采纳
1
回答
Linux
分页模型是一种抽象吗?
、
、
、
、
我目前正在阅读理解
Linux
内核
第三版的,我正在阅读关于
内存
寻址
的第2章。首先,这本书涵盖了32位分页、PAE 32位和PSE (我们在这里讨论的是x86 )。我不认为x86 MMU分页与这个新的
Linux
模型有什么关系。如果MMU负责转换(分页)地址,为什么
内核
也需要这个分页模型?看起来
内核
应该把它留给MMU。如果有人能详细说明为什么
内核
会有这种情况,那就太好了! 我知道MMU必须根据
内核
管理的表来转换地址。因此,MMU负责地址转换
浏览 9
提问于2022-02-05
得票数 2
回答已采纳
1
回答
为什么说
内核
在进程地址空间中?
、
、
所有关于进程地址空间和虚拟
内存
布局的文本都提到,进程地址空间为
内核
保留了空间。例如,在32位系统上,进程地址空间为4 GB,其中1 GB预留给
Linux
中的
内核
(在其他操作系统上可能有所不同)。我只是想知道,当一个进程不能直接
寻址
内核
时,为什么说
内核
在进程地址空间中。为什么我们不说
内核
有一个独立的地址空间而不是进程,为什么我们不能有一个不同的页表给
内核
本身,它与进程的页表是分开的呢?
浏览 3
提问于2011-09-02
得票数 20
回答已采纳
1
回答
所有在Debian OS分区上不可用的系统ram
、
、
、
这台计算机有12 OS的
内存
,在Windows 7操作系统上登录时可以看到。然而,Debian分区只识别不到4GB的
内存
。为什么要这样,我怎么解决这个问题呢?但是在VirtualBox中,您有一个为VM分配RAM的设置,在这个
Linux
分区上,选项的最大值为3584 at。
浏览 0
提问于2015-08-14
得票数 2
回答已采纳
2
回答
为什么
内核
需要虚拟
寻址
?
、
在
Linux
中,每个进程都有自己的虚拟地址空间(例如,在32位系统中为4 GB,其中3 GB预留给进程,1 GB预留给
内核
)。这种虚拟
寻址
机制有助于隔离每个进程的地址空间。但是,既然我们只有一个
内核
,那么为什么我们需要
内核
的虚拟
寻址
呢?
浏览 0
提问于2013-01-27
得票数 22
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
Linux 内核将弃用并删除 SLOB 内存分配器
Linux内核解读
内存占用减少3.7%,开发者发布补丁集减少编译Linux内核时的最大内存
[务必收藏] Linux用户空间和内核空间所有15种内存分配方法总结
Linux内核出现漏洞
热门
标签
更多标签
云服务器
ICP备案
实时音视频
对象存储
即时通信 IM
活动推荐
运营活动
广告
关闭
领券