Skip Navigation

System calls: how programs talk to the Linux kernel

System calls: how programs talk to the Linux kernel

System calls are how programs ask the kernel to do things. Learn how they work, how to trace them, and why this gives you troubleshooting superpowers.

Hello everyone,

I've just published the second post in my Linux Inside Out series.

In the first post we demystified the Linux kernel a bit: where it lives, how to boot it in a VM, and we even wrote a tiny init program.

In this second post we go one layer deeper and look at how programs actually talk to the kernel. We'll do a few small experiments to see:

  • how our init program (that we wrote in the first post) communicates with the kernel via system calls
  • how something like echo "hello" ends up printing text on your screen
  • how to trace system calls to understand what a program is doing

I’m mainly targeting developers and self-hosters who use Linux daily and are curious about the internals of a Linux-based operating system.

This is part 2 of a longer series, going layer by layer through a Linux system while trying to keep things practical and approachable.

Link (part 2): https://serversfor.dev/linux-inside-out/system-calls-how-programs-talk-to-the-linux-kernel/

Link (part 1): https://serversfor.dev/linux-inside-out/the-linux-kernel-is-just-a-program/

As always, any feedback is appreciated.

Comments

3