我知道可以使用内存映射文件,即磁盘上透明映射到内存的真实文件。据我了解(我还没有使用这些)映射会立即发生,文件在第一次内存访问时被部分读取,而操作系统开始在后台“缓存”整个文件。
现在:是否有可能在某种程度上滥用这个概念并将内存映射到另一块内存?假设操作系统提供这种间接性,可以创建一种compressed_malloc()
返回从内存到内存的映射。返回给调用者的内存是简单的内存映射范围,它被透明地压缩在内存中并最终保存在内存中。因此,对于大型缓冲区,可能只有其中一部分在运行时(访问时)被解压缩,而其余块保持压缩。
这个概念目前在技术上是否可行,或者 - 如果已经实现(在软件中) - 有什么值得关注的?
更新 1:我或多或少在寻找技术上可以实现的东西,而无需修改操作系统内核本身或需要虚拟化平台。
更新 2:我希望能够在我自己的用户空间代码中实现压缩和相关逻辑。我只会使用操作系统的工具来创建内存映射。