Explore the intricacies of how C and C++ programs interact with the operating system in this comprehensive conference talk from ACCU. Delve into the Linux User/Kernel Application Binary Interface (ABI) and uncover the realities behind program-OS communication. Learn about system call implementations, including int 0x80, sysenter, vdso, and the vsyscall page, as well as how return codes translate to errno. Examine the inner workings of signal handlers, including the syscall restart mechanism, and discover how pthreads map onto OS primitives. Gain insights into ptrace, the foundation for tools like strace and gdb, and explore surprising outcomes when these mechanisms intersect. Investigate uninterruptible sleep states and valuable information available in the /proc filesystem. Enhance your expertise as a programmer by understanding the underlying ABI, enabling more effective debugging, profiling, optimization, and intercept library development.
Overview
Syllabus
Linux User/Kernel ABI: the realities of how C and C++ programs really talk to the OS - Greg Law
Taught by
ACCU Conference