【问题标题】:How to share linux kernel memory with userspace (read only)如何与用户空间共享 linux 内核内存(只读)
【发布时间】:2013-11-27 12:32:24
【问题描述】:

我需要与用户空间共享大约 100KiB 的内核内存。用户空间守护程序将以只读方式每秒访问此内存数 (5-10) 次。 procfs 是不是最好的实现方式?

【问题讨论】:

  • procfs 当然不是实现它的最佳方式。由于许多原因,它甚至都不是一个好的。 一种在内核空间和用户空间之间共享内存的方法(不一定是只读的),但是我个人并不知道。但是,我的猜测是在内核模块中获取几页(根据需要)并共享它们,将这些页面(及其权限)添加到您感兴趣的进程的虚拟地址中。我是不确定这是否是真正的方法或有什么复杂性,但这可能会让你开始!

标签: linux linux-kernel shared-memory procfs


【解决方案1】:

kmalloc 和 vmalloc 是要走的路。

但在继续之前检查这些:What is the difference between vmalloc and kmalloc?

mmap kernel buffer to user space

Allocating memory for user space from kernel thread

如前所述,procfs 是一种糟糕的数据共享方式。它用于设置本身

【讨论】:

    猜你喜欢
    • 2012-03-02
    • 2017-05-23
    • 2011-12-16
    • 2018-06-08
    • 2012-12-26
    • 2016-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多