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 文件中查看 。

相关推荐
暖馒2 小时前
Modbus应用层协议的深度剖析
网络·网络协议·c#·wpf·智能硬件
小白同学_C3 小时前
Lab3-page tables && MIT6.1810操作系统工程【持续更新】
linux·c/c++·操作系统os
十年磨一剑~3 小时前
Linux程序接收到sigpipe信号崩溃处理
linux
geshifei3 小时前
Sched ext回调3——select_cpu(linux 6.15.7)
linux·ebpf
yunfuuwqi3 小时前
OpenClaw✅真·喂饭级教程:2026年OpenClaw(原Moltbot)一键部署+接入飞书最佳实践
运维·服务器·网络·人工智能·飞书·京东云
迎仔4 小时前
C-算力中心网络隔离实施方法:怎么搞?
运维·网络
代码游侠4 小时前
C语言核心概念复习——网络协议与TCP/IP
linux·运维·服务器·网络·算法
你真是饿了4 小时前
6.库制作与原理
linux·服务器
枷锁—sha4 小时前
【SRC】SQL注入WAF 绕过应对策略(二)
网络·数据库·python·sql·安全·网络安全
Zach_yuan5 小时前
深入浅出 JSONCpp
linux·服务器·网络·c++