Linux kernel 使用内核模块读取整个物理内存

Linux kernel 使用内核模块读取整个物理内存,linux-kernel,kernel,kernel-module,Linux Kernel,Kernel,Kernel Module,我必须编写一个内核模块,它迭代物理内存的所有页面,并计算每个页面内容的哈希值。 我知道内核模块的基本知识。有人能给我概述一下该如何进行。 到目前为止,我已经遍历了所有的物理页面,但我不知道如何读取给定页面物理地址(或给定页面结构)的页面内容。您可以通过void*kmap(struct page*page)进行读取;顺便问一下,为什么要这样做?这些散列将用于寻找各种虚拟机之间基于内容共享的可能性。如果不同主机上的两个VM的大部分内容相同(通过比较散列找到),则它们都将移动到同一主机,从而节省资源。

我必须编写一个内核模块,它迭代物理内存的所有页面,并计算每个页面内容的哈希值。
我知道内核模块的基本知识。有人能给我概述一下该如何进行。


到目前为止,我已经遍历了所有的物理页面,但我不知道如何读取给定页面物理地址(或给定页面结构)的页面内容。

您可以通过void*kmap(struct page*page)进行读取;顺便问一下,为什么要这样做?这些散列将用于寻找各种虚拟机之间基于内容共享的可能性。如果不同主机上的两个VM的大部分内容相同(通过比较散列找到),则它们都将移动到同一主机,从而节省资源。很干净explanation@AlexHoppusvoid*kmap(结构页*page)工作正常。谢谢。