Different types of system calls

System calls are the essential bridge between user programs and the operating system kernel. They allow programs to access system resources and functionalities that are restricted for security reasons or require privileged access. These calls trigger specific actions within the kernel, and the program execution is paused until the kernel completes the requested service.

Here’s a breakdown of the different types of system calls:

Process Control:

These system calls deal with creating and managing processes. Examples include:

fork(): Creates a new process that is a copy of the calling process.

exec(): Replaces the current process with a new program.

wait(): Suspends the execution of the calling process until a child process terminates.

exit(): Terminates the calling process.

File Management:

These system calls handle file manipulation tasks. Examples include:

open(): Opens a file for reading, writing, or both.

read(): Reads data from an open file.

write(): Writes data to an open file.

close(): Closes an open file.

create(): Creates a new file.

delete(): Deletes a file.

Device Management:

These system calls interact with various hardware devices connected to the system. Examples include:

read(): Reads data from a device (like reading from a keyboard).

write(): Writes data to a device (like writing to a display).

ioctl(): Performs device-specific control operations.

Information Maintenance:

These system calls manage and transfer information between the program and the operating system. Examples include:

getpid(): Gets the process ID of the calling process.

getcwd(): Gets the current working directory of the calling process.

time(): Gets the current system time.

Communication:

These system calls enable communication between processes or even across networks. Examples include:

socket(): Creates a new socket for network communication.

connect(): Connects a socket to a remote server.

send(): Sends data over a socket.

recv(): Receives data over a socket.

This is a general overview, and the specific system calls available can vary depending on the operating system. However, these categories provide a foundation for understanding how programs interact with the underlying system through system calls.


Gaurav Yadav

Gaurav is cloud infrastructure engineer and a full stack web developer and blogger. Sportsperson by heart and loves football. Scale is something he loves to work for and always keen to learn new tech. Experienced with CI/CD, distributed cloud infrastructure, build systems and lot of SRE Stuff.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.