libc-less Programming: Mastering Linux Syscalls with strace
2025-06-14
The author recently embarked on building software without libc to gain a deeper understanding of Linux syscalls and internals. This involved creating a minimal shell, a Snake game, a pure ARM64 assembly HTTP server, and a threads implementation. Debugging heavily relied on strace, and the article details numerous useful strace options and flags. These range from tracing child processes and printing verbose struct information to selectively tracing syscalls and even injecting syscall errors for debugging purposes. This provides valuable insights into advanced Linux system programming and debugging techniques.
Development
Syscalls