System Call

Operating systems typically have a core code structure that handles the most basic types of tasks such as recognizing and handling hardware components, handling input and output, and so on. This core is called a "kernel".

Since only the kernel can do these tasks, or provide these "services", other programs have to ask it when they need these services ran for them. These requests are known as "system calls", also sometimes referred to as "kernel calls".

In practice specific programs rarely initiate system calls directly. Rather a library or an API that sits between the kernel and the programs do this for them when necessary as part of a function being used. On Linux this library is the GNU C Library.

When you do need to initiate a system call the GNU C Library provides a syscall function for the purpose, making it somewhat easier to initiate the necessary system call than it would be if you had to do it directly to the kernel.