gpt4 book ai didi

c - 没有物理内存分配的虚拟内存分配

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

我正在做一个 Linux 内核项目,我需要找到一种方法来分配虚拟内存而不分配物理内存。例如,如果我使用这个:

char* buffer = my_virtual_mem_malloc(sizeof(char) * 512);

my_virtual_mem_malloc 是我的内核模块实现的新 SYSCALL。写入此缓冲区的所有数据都通过使用套接字(而不是物理内存)存储在文件或其他服务器上。所以要完成这项工作,我需要请求虚拟内存并访问 vm_area_struct 结构以重新定义 vm_ops 结构。

你对此有什么想法吗?

谢谢

最佳答案

这在架构上是不可能的。您可以创建具有将数据复制到某处的写回例程的 vm 区域,但在某种程度上,您必须分配要写入的物理页面。

如果你同意,你可以简单地写一个 FUSE driver ,将其安装在某处,并从中映射一个文件。如果你不是,那么你将只需要 write(),因为 x86 不支持在不分配物理页面的情况下重定向写入根本,在至少。

关于c - 没有物理内存分配的虚拟内存分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6540253/

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