免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2430 | 回复: 5
打印 上一主题 下一主题

[内核入门] 内核访问用户空间的疑惑 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-09-25 09:50 |只看该作者 |倒序浏览
本帖最后由 我爱芒果叶 于 2013-09-25 09:50 编辑

在读《深入Linux内核架构》时,理解不了下面这段内容,请大家指点。

中文版本:
尽管内核尽可能保持内核空间和用户空间的独立,有些情况下,内核代码必须访问用户应用程序的虚拟内存。
当然,这只在内核执行由用户应用程序发起的同步操作时才有意义,而不适用于任意进程进行的读或写访问
否则不仅不能解决问题,还会导致当前执行的代码产生危险的后果。

英文版本:
Even though the kernel does its best to keep kernel space and userspace separate, there are situations
in which kernel code has to access the virtual memory of user applications. Of course, this only makes
sense when the kernel is performing a synchronous action initiated by a user application — write and
read access by arbitrary processes not only serves no purpose
, but may also produce risky results in the
code currently executing.

论坛徽章:
6
金牛座
日期:2013-10-08 10:19:10技术图书徽章
日期:2013-10-14 16:24:09CU十二周年纪念徽章
日期:2013-10-24 15:41:34狮子座
日期:2013-11-24 19:26:19未羊
日期:2014-01-23 15:50:002015年亚洲杯之阿联酋
日期:2015-05-09 14:36:15
2 [报告]
发表于 2013-09-25 10:05 |只看该作者
回复 1# 我爱芒果叶
尽管内核尽可能保持内核空间和用户空间的独立,有些情况下,内核代码必须访问用户应用程序的虚拟内存。
当然,这只在内核执行由用户应用程序发起的同步操作时才有意义,而不适用于任意进程进行的读或写访问,
否则不仅不能解决问题,还会导致当前执行的代码产生危险的后果。


比如用户空间mmap一个文件,进行改动后调用msync等操作,那么这个时候就是内核将页面回写到磁盘的
   

论坛徽章:
0
3 [报告]
发表于 2013-09-25 11:07 |只看该作者
回复 2# 瀚海书香
谢谢版主。
这就是应用程序发起的同步操作,这个我理解。
何谓“任意进程进行的读或写”?有没有例子?
书中这部分还谈到copy_from_user函数,用于获取系统调用的参数所指向的数据,属于应用程序发起的同步操作吗?

   

论坛徽章:
6
金牛座
日期:2013-10-08 10:19:10技术图书徽章
日期:2013-10-14 16:24:09CU十二周年纪念徽章
日期:2013-10-24 15:41:34狮子座
日期:2013-11-24 19:26:19未羊
日期:2014-01-23 15:50:002015年亚洲杯之阿联酋
日期:2015-05-09 14:36:15
4 [报告]
发表于 2013-09-25 13:14 |只看该作者
回复 3# 我爱芒果叶
何谓“任意进程进行的读或写”?有没有例子?
书中这部分还谈到copy_from_user函数,用于获取系统调用的参数所指向的数据,属于应用程序发起的同步操作吗?


后面的意识是说很多时候不能直接访问用户态的地址,而应该先将数据从用户态复制到内核态,如果不这样做会有风险。

以系统调用为例,通过copy_from_user函数将用户态的参数传递到内核态操作;如果应用程序传入的地址不合法,而内核又直接访问这个用户态地址的话,可能就panic了啊

   

论坛徽章:
0
5 [报告]
发表于 2013-09-25 14:03 来自手机 |只看该作者
考虑下内核线程访问用户态地址,就是说的这种risk和no purpose

论坛徽章:
0
6 [报告]
发表于 2013-09-25 14:22 |只看该作者
瀚海书香 发表于 2013-09-25 13:14
回复 3# 我爱芒果叶

谢谢。算是明白了,感觉书中的那个表达好晦涩。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP