LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 944|回复: 2

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

[复制链接]
发表于 2006-5-20 21:59:02 | 显示全部楼层 |阅读模式
比如当前系统处于进程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应该是逻辑地址还是物理地址?
望好心人指点,不甚感激!
发表于 2006-5-27 11:58:34 | 显示全部楼层
access_process_vm
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-28 11:08:33 | 显示全部楼层
Thank you so so so so so so so so so so so so so much!!!!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表