LinuxSir.cn,穿越时空的Linuxsir!

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

请问,内核如何访问其他进程的地址空间?

[复制链接]
发表于 2007-5-24 16:37:35 | 显示全部楼层 |阅读模式
比如进程A陷入了内核,需要访问进程B的地址空间,内核有机制做到这一点么?

我得到一个地址,直接访问这个地址会导致缺页,而因为在内核状态,直接就跳出了
发表于 2007-5-25 13:16:37 | 显示全部楼层
你的进程A既然已经Trap到Kernel space,一般情况下是不可能直接访问到User space的,正如你的进程A需要访问Kernel space的东西就必须调用系统调用一样,你可以看看upcall的机制,从kernel space向上调用user space的东西。
回复 支持 反对

使用道具 举报

发表于 2007-6-1 12:17:20 | 显示全部楼层
“比如进程A陷入了内核,需要访问进程B的地址空间”
如果有机制做到这一点。那系统还安全么?
回复 支持 反对

使用道具 举报

发表于 2007-6-5 11:36:24 | 显示全部楼层
进程A陷入 了内核,那内核就在进程A的上下文中,怎么可以访问进程B的地址空间了?
注意上下文
回复 支持 反对

使用道具 举报

发表于 2007-6-7 13:31:30 | 显示全部楼层
系统安全  可以添加权限检查之类的机制。
上下文     上下文可以换。
问题可能在于你要访问的虚拟地址不在物理内存中,所以发生缺页中断。
在中断处理过程中有n多的检查,这些得一步步慢慢走过去罗。
回复 支持 反对

使用道具 举报

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

本版积分规则

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