如果我有一个可搜索的字符设备 - /dev/mem_8
,允许用户空间程序通过简单的I / O操作随机访问存储器阵列,我可以将它映射到我的进程的虚拟寻址存储器以便于使用x86_64说明访问它:MOV
,REP MOVS
和SSE:MOVNTDQ
,MOVNTDQA
...?
操作系统:Linux x86_64内核> = 2.6
答案 0 :(得分:1)
从Linux(用户模式)应用程序中成功调用mmap(2)系统调用后,address space已更改并且每个(非特权)计算机指令(来自执行{{ {1}})可以访问它,因为process可以使用virtual memory。
您可以使用proc(5)文件系统查询地址空间,例如与mmap
....
如果cat /proc/$PID/maps
/dev/mem_8
能够mmap
,那么它应该没问题。如果可能的话,或许最好使它成为block device。或者可能提供FUSE文件系统(在char设备上方提供类似块的抽象)....
另请阅读Advanced Linux Programming ...
也许raw(8)是相关的......(不确定)。