• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
blank_king
博客园    首页    新随笔    联系   管理    订阅  订阅

linux 系统调用

1.系统调用 必须检查参数是否有效,系统调用在内核空间调用,安全性

2.文件io检查文件描述符,进程检查pid

3.保护用户提供的指针是否有效

 

在接收一个用户指针之前

1.指针指向的内存区域属于用户空间,进程决不能哄骗内核去读内核进程里的数据

2.指针指向的内存区域在进程的地址空间里,进程决不能哄骗内核去读其他进程的数据

3.如果是读,内存标志位为读,如果是写,内存标志位为写,内存决不能绕过内核访问限制

 

内核不轻易接受用户传递过来的指针

 

内核空间和用户空间之间的数据交互

1.向用户空间写数据,copy_to_user(),其中需要三个参数,源地址,目标地址,要负责是数据长度

2.从用户空间读数据,copy_from_user(),

这两个函数都会引起堵塞,当包含用户数据的页不是存到物理内存而是外部硬盘时,内核就会休眠,直到缺页处理程序将数据从硬盘移回内存。

    

 

posted @ 2016-10-19 09:54  blank_king  阅读(138)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3