/ˈsɪs.təm kɔːl/
noun — “the polite way your program asks the OS for a favor.”
System Call is an interface provided by the operating system that allows user-level processes to request services from the kernel. These services can include file operations, process management, memory allocation, network communication, and hardware access. By using System Calls, applications can safely interact with low-level resources without compromising system stability or security.
When a program executes a System Call, it transitions from user mode to kernel mode, giving it privileged access to system resources. This controlled mechanism ensures that processes cannot directly manipulate hardware or critical memory areas, preventing crashes or security breaches. Examples include open(), read(), write(), fork(), and exec() in Unix-like systems.
System Calls are fundamental to Process Management and Kernel operations. They allow processes to perform tasks such as creating new processes, synchronizing via Semaphores, allocating memory, or sending data over Sockets. Monitoring and logging System Calls can also provide insights for debugging, performance tuning, and security auditing.
Modern applications often interact with System Calls indirectly through libraries and frameworks, which provide high-level abstractions. For example, file handling in Python, Java, or C++ eventually translates into underlying System Calls that request the kernel to perform the actual operations.
Conceptually, a System Call is like knocking politely on the OS’s door and saying, “Can you handle this for me?” instead of trying to break in and do it yourself.
System Call is like ordering room service for your process — you get exactly what you need without leaving your room.
See Kernel, Process Management, Semaphore, Socket, Resource Limit.