Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1827917
  • 博文数量: 317
  • 博客积分: 1557
  • 博客等级: 上尉
  • 技术积分: 1208
  • 用 户 组: 普通用户
  • 注册时间: 2008-02-26 23:38
个人简介

如果想出发,就不要等到明天!

文章分类

全部博文(317)

文章存档

2016年(1)

2015年(41)

2014年(152)

2013年(114)

2012年(4)

2011年(1)

2009年(4)

分类: LINUX

2014-08-27 10:48:01

原理上,内核态是可以直接访问用户态的虚拟地址空间的,所以如果需要在内核态获取用户态地址空间的数据的话,理论上应该是可以直接访问的,但为什么还需要使用copy_from_user接口呢?
因为:直接访问的话,无法保证被访问的用户态虚拟地址是否有对应的页表项,即无法保证该虚拟地址已经分配了相应的物理内存,如果此时没有对应的页表项,那么此时将产生page fault,导致流程混乱,原则上如果没有页表项(即没有物理内存时),是不应该对齐进行操作的。
所以直接操作有比较大的风险,而copy_from_user本质上也只是做了相关判断和校验,保证不会出现相关异常而已。
阅读(1836) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~