gpt4 book ai didi

linux - 使用 "mem"环境变量限制内核可以管理的物理内存量

转载 作者:太空狗 更新时间:2023-10-29 11:39:10 26 4
gpt4 key购买 nike

我继承了一些 linux 内核驱动程序的支持(我的经验非常有限)。我的问题如下。它是一个嵌入式环境,硬件有 512MB 的物理内存。但是,传递给内核的引导参数通过使用变量 linuxMem=mem=256M 将内存限制为 256MB。在我对这个环境变量的研究中,我的理解是这将内核可以管理的内存量限制为 256MB。然而,在我的目标上运行的某些应用程序代码中,我看到打开/dev/mem 和随后返回的文件描述符的 mmap,mmap 调用的偏移参数位于物理内存的上部 256MB 中。事情似乎运作良好。所以我的问题是“如果内核应该不知道上面的 256MB,为什么它可以工作?”

最佳答案

严格来说,mem=256M是内核参数,不是环境变量。这个参数只是告诉内核使用那么多内存,而不会让系统完全看不到机器中安装的物理芯片。它可以用来模拟一个物理内存比实际可用内存少的系统,但它并不完全等同于打开你的盒子并取出其中一个内存芯片。

查看the docs for this parameter ,您可以明确地看到在某些情况下可以使用限制范围之外的地址,这就是为什么他们建议在某些情况下也使用 memmap= 。因此,您不能为您的应用程序分配超过限制的内存,但您可以查看在某个物理地址找到的内容,似乎某些设备驱动程序利用了这种可能性。

关于linux - 使用 "mem"环境变量限制内核可以管理的物理内存量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10725054/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com