博客首页 注册 建议与交流 排行榜 加入友情链接
推荐 投诉 搜索: 帮助

hope_process

感觉好累。。。
  heixia108.cublog.cn

关于作者
    既然目标是地平线

   留给世界的只能是背影
   
|| << >> ||
我的分类


核心如何使用用户空间的参数
核心如何使用用户空间的参数:

    在使用系统调用时,有些参数是指针,这些指针所指向的是用户空间DS寄存器
 
的段选择子所描述段中的地址,而在2.2之前的版本中,核心态的DS段寄存器的中的
 
段选择子和用户态的段选择子描述的段地址不同(前者为0xC0000000, 后者为
 
0x00000000),这样在使用这些参数时就不能读取到正确的位置。所以需要通过特
 
殊的核心函数(如:memcpy_fromfs, mencpy_tofs)来从用户空间数据段读取
 
参数,在这些函数中,是使用FS寄存器来作为读取参数的段寄存器的,FS寄存器在
 
系统调用进入核心态时被设成了USER_DS(DS被设成了KERNEL_DS)。在2.2之
 
后的版本用户态和核心态使用的DS中段选择子描述的段地址是一样的(都是
 
0x00000000),所以不需要再经过上面那样烦琐的过程而直接使用参数了。

发表于: 2007-07-16,修改于: 2007-07-18 21:56,已浏览322次,有评论0条 推荐 投诉


网友评论
 发表评论