系统调用

文章目录

系统调用


系统调用:是指操作系统提供给用户程序调用的一组“特殊”接口,用户程序可以通过这组“特殊”接口来获得操作系统内核提供的服务。
在Linux系统中,系统调用函数定义在 glibc 中。系统调用需要注意以下几点。

  • 系统调用函数通常在成功时返回0值,不成功时返回非零值。如果要检查失败原因,则要判断全局变量errno的值,errno中包含错误代码;
  • 许多系统调用的返回数据通常通过引用参数传递,这时,需要在函数参数中传递缓冲区地址,而返回的数据就保存在该缓冲区中;
  • 系统调用是一个非常耗时的过程,效率并不高;

Linux系统定义了内核模式和用户模式。

  • 内核模式可以执行一些特权指令和进入用户模式,而用户模式则不能;
  • 内核模式与用户模式分别使用自己的堆栈,在发生模式切换时要同时进行堆栈的切换;

Linux将程序的运行空间也分为内核空间和用户空间:

  • 它们分别运行在不同的级别上,在逻辑上是相互隔离的;
  • 进行系统调用时,程序运行空间需要从用户空间进入内核空间,处理完毕后再返回到用户空间;

系统调用对于内核来说就相当于函数,关键问题是从用户模式到内核模式的转换、堆栈的切换,以及参数的传递。


Linux的系统调用按照功能逻辑大致分为:

  • 进程控制;
  • 进程间通信;
  • 文件系统控制;
  • 系统控制;
  • 存储管理;
  • 网络管理;
  • Socket控制;
  • 用户管理等几类。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值