用户空间mmap回调API

时间:2018-07-16 10:46:00

标签: memory-management kernel virtualization mmap userspace

我想知道是否有内置的现成解决方案可用于从用户空间访问内存映射。

我的意思是,当一个人使用内存映射文件时,操作系统会在读写时执行io。可以认为io是一个函数,可以用其他东西代替,例如在用户空间中。

  1. 代码创建一个提供回调的内存映射。操作系统将mem标记为不可读和不可写
  2. 该代码将映射的内存提供给某些代码,包括第三方代码
  3. 当代码访问内存时,将调用回调
  4. 为回调提供了单独的映射,它填充了内存并返回一个结构,该结构告诉OS哪些页面应映射为可读和可写,以便不触发访问时的其他回调调用。

通过这种方式,可以进行实时解压缩,而无需修改第三方代码。

我想可以使用保险丝,创建一个包装器,在一个单独的线程中创建保险丝fs并映射文件,但是我想可能有一个更简单的解决方案,而且这种解决方案效率不高,因为数据通过内核传递。

0 个答案:

没有答案