Complete exercises at:

In a concise presentation:

  1. Explain the concept of system calls, system call wrappers, and APIs.
  2. Explain the difference between the user interface to the OS (shell, CLI) and the programmer interface to the OS (system calls, APIs).
  3. Use strace to discover the system calls invoked by the sample program.
  4. Show the same task performed via the shell (bash), and identify which system calls bash ultimately invokes (e.g., via strace bash -c ...).
  5. Discuss the categories of system calls observed in both cases.
  6. Discuss lessons learned, errors made, and challenges encountered.