This document discusses system calls in Linux. It defines system calls as service points for user programs to request services from the kernel. There are about 300 system calls in Linux, listed in /usr/include/asm/unistd.h. A system call executes in kernel space unlike a library function, and involves packaging arguments, transferring control to the kernel via a trap, and returning control back with a return value. The strace command can be used to trace system calls made by a program. Hands-on examples are provided to demonstrate system calls versus library functions.