Linux操作系统向上提供了哪些系统调用?

Linux操作系统向上提供了众多系统调用,涵盖进程管理、文件系统、设备管理、网络通信等多个方面,以下是一些常见类别及对应的系统调用:

进程管理

  • fork:创建一个新进程,新进程是调用进程(父进程)的副本 ,子进程与父进程在执行流上各自独立,有各自的进程空间,但最初除了进程ID等少量信息外,大部分内容相同。常用于需要并行执行某些任务的场景,比如服务器端为每个客户端请求创建子进程来处理 。
  • execve:在当前进程的上下文中加载并执行一个新程序,用新程序替换当前进程的代码段、数据段等,通常与fork配合使用,先fork出子进程,然后子进程通过execve执行新程序 。
  • wait/waitpid:父进程调用该系统调用等待子进程终止,获取子进程的终止状态等信息 。wait会阻塞父进程直到任意一个子进程结束;waitpid可指定等待特定的子进程,并且可以设置非阻塞等选项 。

文件系统

  • open:打开或创建一个文件,返回一个文件描述符(非负整数)用于后续对文件的操作,可指定打开模式(读、写、读写等 )和文件权限等参数 。
  • read:从指定的文件描述符所对应的文件中读取数据到指定的缓冲区中,返回实际读取的字节数 。
  • write:将指定缓冲区中的数据写入到文件描述符对应的文件中,返回实际写入的字节数 。
  • close:关闭指定的文件描述符,释放与该文件描述符相关的系统资源 。
  • lseek:用于调整文件读写指针的位置,可设置相对于文件开头、当前位置或文件末尾的偏移量,方便在文件的不同位置进行读写操作 。

设备管理

  • ioctl:对设备进行各种控制操作,比如获取设备信息、设置设备参数等 。不同的设备有不同的控制命令,通过ioctl传递特定的命令和参数来实现对设备的定制化操作 。

网络通信

  • socket:创建一个网络套接字,指定协议族(如AF_INET表示IPv4 )、套接字类型(如SOCK_STREAM表示流套接字,基于TCP协议 ;SOCK_DGRAM表示数据报套接字,基于UDP协议 )等参数 。
  • bind:将套接字与特定的地址(如IP地址和端口号)绑定,使套接字能够在指定的地址上监听或进行通信 。
  • listen:将套接字设置为监听状态,用于监听客户端的连接请求,只适用于服务器端的流套接字 。
  • accept:在监听套接字上接受客户端的连接请求,返回一个新的套接字用于与该客户端进行通信 。
  • connect:客户端使用该系统调用连接到服务器端指定的地址和端口,建立网络连接 。

此外,还有信号相关(如kill用于向进程发送信号 )、内存管理(如mmap用于映射文件或内存区域 )等方面的系统调用。一个已安装系统支持的所有系统调用可在 /usr/include/bits/syscall.h 文件中查看 。

相关推荐
皆过客,揽星河43 分钟前
Linux上安装MySQL8详细教程
android·linux·hadoop·mysql·linux安装mysql·数据库安装·详细教程
m0_720245011 小时前
网络编程(6)
网络
青草地溪水旁1 小时前
Unix/Linux 系统中的 `writev` 系统调用
linux·unix·writev
Justin_191 小时前
Linux-Shell编程之sed和awk
linux·运维·服务器
Akshsjsjenjd1 小时前
深入理解 Shell 循环与函数:语法、示例及综合应用
linux·运维·自动化·shell
塔中妖2 小时前
【华为OD】Linux发行版的数量
linux·算法·华为od
塔中妖2 小时前
【华为OD】5G网络建设
网络·5g·华为od
半桔2 小时前
【Linux手册】消息队列从原理到模式:底层逻辑、接口实战与责任链模式的设计艺术
java·linux·运维·服务器
华纳云IDC服务商2 小时前
Linux服务器的系统安全强化超详细教程
linux·服务器·系统安全
衍余未了3 小时前
k8s镜像推送到阿里云,使用ctr推送镜像到阿里云
linux·运维·服务器