The difference among Application Programs, System Programs and System Calls:
Application program: a program used to interpret the semantic content of messages entered by the end user of the system.
System Program: a program, that provides system services to application programs and also controls some aspect of the operation of a computer is termed as system program. System services here means the services from system components (h/w or s/w).
Example: say user wants to copy a movies from one drive to another. So, a copy and paste command is given to system. Accessing the hardware (i.e. HDD) for content, copying it and making a copy of it, services can be requested by system services.
System Call: provides an interface to the operating system services. Using system calls, system services can be invoked.
Direct access to the system calls is generally disabled due to security issues, but can access them through an application programming interface (API). The functions that are included in the API invoke the actual system calls. Some of the benefits of using API to system calls can be to gain:
- Portability: If system supports an API, any program using that API can compile and run on that.
- Ease of Use: use of the API is significantly easier then use of the actual system call.
So, System calls provide an interface between the process an the operating system.