A system call is a request to the OS kernel to do something your program cannot do alone. Reading a file, opening a socket or asking the OS for more memory all end in system calls.
A normal function call stays inside your program's own code and privileges. A system call crosses the privilege boundary. The CPU switches from user mode into kernel mode, runs trusted kernel code, then switches back with a result.
That crossing is why system calls cost more than normal function calls. The mode switch takes time, and the kernel saves your registers on entry and restores them on return. Libraries often batch or buffer work to make fewer system calls.
Rewriting in plainer words…
This answer doesn't lend itself to a diagram - it reads best . No credits were charged.
Is a system call the same thing as a context switch?No. A system call changes mode inside the same process. A context switch changes which thread runs, and a blocking call can lead to one.
Does every library call like printf or malloc end in a system call?No. printf fills a buffer and calls write only on flush, and malloc reuses free heap memory, asking the OS only when it needs more.
What you can say
A system call is how a program asks the OS kernel to do something it can't do alone, like reading a file, opening a socket or getting more memory.
A normal function call just jumps to other code in the same program, with the same privileges, so it's cheap.
A system call crosses the privilege boundary. The CPU switches from user mode to kernel mode, runs trusted kernel code, and switches back with the result.
That crossing costs more, because the mode switch takes time and the kernel saves your registers on entry and restores them on return.
So you want fewer of them, which is why libraries batch or buffer work, for example collecting writes and handing them over in one call.
Weak answers to avoid
Calls it a function the OS providesA libc wrapper like read() is a normal call. The system call is the switch into kernel mode inside it. Name that crossing or the answer misses the point.
Skips why it costs moreInterviewers listen for the cost. Say the mode switch takes time and the kernel saves and restores registers, so libraries buffer to make fewer calls.
Treats a system call as a context switchThe kernel runs the call for the same process. Another thread runs only if the call blocks or the scheduler picks someone else, so keep the two terms apart.
Interview lens
Likely follow-ups, what you can say, and the weak answers to avoid.