The Linux Programming Interface: A Linux and UNIX System Programming Handbook is a book written by Michael Kerrisk, which documents the APIs of the Linux kernel and the GNU C Library (glibc).
It chronicles the history of Unix and how it led to the creation of Linux.
The book provides samples of code written in C, and learning exercises at the end of chapters.
The author is a former writer for the Linux Weekly News[1] and the current maintainer for the Linux man pages project.
[2] The Linux Programming Interface has been translated into several languages.