• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

    Linux用户态切换内核态方式详解

    发布者: 浪子 | 发布时间: 2025-6-17 08:04| 查看数: 59| 评论数: 0|帖子模式


    用户态切内核态

    是用户程序在运行中的状态切换;
    用户程序在运行中遇到
    1. 申请外部资源
    复制代码
    , 比如程序执行中需要访问:
    1. 磁盘
    复制代码
    1. 内存分配
    复制代码
    1. 网卡
    复制代码
    1. 声卡
    复制代码
    , 甚至
    1. 主板LED指示灯
    复制代码
    时, 就会发生用户态到内核态的切换.
    比如读写文件: open/read/write 就会从用户态切换到内核态;
    比如申请内存: C语言的: malloc/ java语言 new 一个对象 都需要申请内存空间;
    包括select/poll/epoll 都是系统调用;
    切换方式

    用户态到内核态的切换, 一般有三种方式:
    1. 系统调用
    复制代码
    1. 异常
    复制代码
    1. 中断
    复制代码
    ;
    1. 系统调用
    复制代码
    又有
    1. 进程
    复制代码
    1. 文件
    复制代码
    1. 设备
    复制代码
    1. 信息
    复制代码
    1. 通信
    复制代码
    等的调用;
    查看内核提供的可用系统调用可以用:
    1. man syscalls
    复制代码
    可以把
    1. syscalls
    复制代码
    导出来看下:
    1. man syscalls|col -b >syscalls.txt
    复制代码
    系统调用大体分类如下:

    进程调用: 终端命令
    1. exit
    复制代码
    1. fork
    复制代码
    ;
    文件调用:
    1. chmod
    复制代码
    1. chown
    复制代码
    ;
    设备调用:
    1. read
    复制代码
    1. write
    复制代码
    ;
    信息读取: 比如cpu信息
    1. getcpu
    复制代码
    ;
    通信:
    1. pipe
    复制代码
    1. mmap
    复制代码
    (文件内存映射)
    以上就是Linux用户态切换内核态方式详解的详细内容,更多关于Linux用户态切换内核态的资料请关注脚本之家其它相关文章!

    来源:https://www.jb51.net/LINUXjishu/909905.html
    免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    ×

    最新评论

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

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