Supervisor Call Instruction (SVC)

A Supervisor Call (SVC) is a system-level operation in operating systems used for requesting privileged operations or services from the kernel.

The primary purpose of an SVC is to allow user-level processes to request certain services or operations that are only permissible at the kernel level, such as file I/O, process creation or termination, and accessing secure or protected system resources.

Use Case

It’s commonly used for operations like I/O requests, process management, and accessing protected system resources.

How it works

When a user application needs to perform an operation that requires kernel privileges, it executes an SVC instruction.

This instruction triggers a switch from user mode to kernel mode (through a Trap (OS)), transferring control to a predefined handler in the operating system kernel.

The kernel then performs the requested operation on behalf of the user application. After completing the operation, control is returned to the user application, resuming its execution in user mode.

https://developer.arm.com/documentation/dui0473/m/arm-and-thumb-instructions/svc

System Call vs. Supervisor Call?

A supervisor call is a specific type of system call.