+ -
当前位置:首页 → 问答吧 → 好心人帮帮我!怎么在一个进程的系统调用中访问另外一个进程的地址空间?

好心人帮帮我!怎么在一个进程的系统调用中访问另外一个进程的地址空间?

时间:2006-05-21

来源:互联网

比如当前系统处于进程A的系统调用中,要访问另一进程B的地址空间的一个vam虚存段。
直接访问是不行的了,因为当前cr3寄存器是A进程的pgd,对应的页表都是A进程的。
那么该怎么访问呢?可以使用的是B进程的 task_struct指针。
copy_from_user也是访问A进程的空间吧?
可不可以先switch_mm()到B的mm_struct或者临时装入B的pgd到cr3再访问?

还有内核代码访问内核空间是通过init_mm的pgd转换逻辑地址吗?
内核能不能越过mmu直接访问物理地址?
比如一条嵌入汇编mov某个数到某个地址p,
那么这个p应该是逻辑地址还是物理地址?
望好心人指点,不甚感激!

作者: zhucheng   发布时间: 2006-05-21

access_process_vm

作者: daemeon   发布时间: 2006-05-27

Thank you so so so so so so so so so so so so so much!!!!

作者: zhucheng   发布时间: 2006-05-28