系统调用(System Call)是应用程序与操作系统之间的一种接口,它允许用户空间的程序请求内核提供的服务。这些服务通常涉及硬件或其他受保护资源的访问,如文件、进程管理、网络通信等。系统调用是操作系统为应用程序提供的唯一合法的、受控的途径来使用这些资源。

系统调用的类型可以分为以下几类:

  1. 进程控制
  • fork():创建一个新的进程。

  • exec():执行一个新程序。

  • exit():终止当前进程。

  • wait():等待一个子进程结束。

  • kill():发送信号到另一个进程。

  1. 文件操作
  • creat():创建一个新的文件。

  • open():打开一个文件。

  • close():关闭一个文件描述符。

  • read():从文件中读取数据。

  • write():向文件写入数据。

  • unlink():删除一个文件。

  1. 设备管理
  • ioctl():用于设备控制操作。

  • read()write():用于设备的读写操作。

  1. 信息维护
  • time():获取当前时间。

  • getpid():获取当前进程的ID。

  • getuid():获取当前用户的用户ID。

  1. 通信
  • pipe():创建一个管道。

  • send()receive():用于进程间通信。

  1. 内存管理
  • malloc()free():分配和释放内存。

  • mmap():映射文件或设备到内存。

  1. 信号处理
  • signal():设置信号处理函数。

  • sigaction():检查或修改信号处理动作。

  1. 权限和属性管理
  • chmod():改变文件权限。

  • chown():改变文件所有者。

  • setuid():设置用户ID。

  1. 网络通信
  • socket():创建一个套接字。

  • bind():将套接字绑定到一个地址和端口。

  • listen():在套接字上监听连接。

  • accept():接受一个套接字连接。

  • connect():连接到远程套接字。

  • send()recv():通过套接字发送和接收数据。

系统调用是操作系统提供的基本服务集合,它们通常由C库(例如glibc)封装成易于使用的函数,供应用程序开发者使用。当应用程序调用这些函数时,C库会将其转换为适当的系统调用指令,交由操作系统内核执行。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐