The Linux Programming Interface

The Linux Programming Interface
Author Michael Kerrisk
Language English
Series Learning
Subject covers current UNIX® standards (POSIX.1-2001 /SUSv3 and POSIX.1-2008 /SUSv4 )
Published 2010 (No Starch Press)
Pages 1512
ISBN 978-1-59327-220-3

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 of the GNU C Library (glibc).

It covers a wide array of topics dealing with the Linux operating system and operating systems in general, as well as providing a brief history of Unix and how it led to the creation of Linux. It provides many samples of code written in the C programming language, and provides learning exercises at the end of many chapters. Kerrisk 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" is widely regarded[3] as the definitive work on Linux system programming and has been translated into several languages.[4] Jake Edge, writer for LWN.net, in his review of the book, said "I found it to be extremely useful and expect to return to it frequently. Anyone who has an interest in programming for Linux will likely feel the same way."[5] Federico Lucifredi, the product manager for the SUSE Linux Enterprise and openSUSE distributions, also praised the book saying that "The Linux Programming Encyclopedia would have been a perfectly adequate title for it in my opinion" and called the book "…a work of encyclopedic breadth and depth, spanning in great detail concepts usually spread in a multitude of medium-sized books…"[6] Lennart Poettering, the software engineer best known for PulseAudio and systemd, advises people to "get yourself a copy of The Linux Programming Interface, ignore everything it says about POSIX compatibility and hack away your amazing Linux software".[7]

The Linux kernel API to userspace discussed in the book consists of both, the System Call Interface and the GNU C Library. 
In-kernel APIs are not discussed in the book, neither are ABIs. 
Simplified illustration of the Linux kernel's structure. 

At FOSDEM 2016 Michael Kerrisk, the author of The Linux Programming Interface, explained some of the issues with the Linux kernel's user-space API he and others perceive. It is littered with design errors: APIs which are non-extensible, unmaintainable, overly complex, limited-purpose, violations of standards, and inconsistent. Most of those mistakes can't be fixed because doing so would break the ABI that the kernel presents to user-space binaries.[8]

See also

References

  1. "A goodbye note from Michael Kerrisk". lwn.net. Retrieved 2013-10-24.
  2. "Linux man-pages home". kernel.org. Retrieved 2014-01-25.
  3. "Amazon's Readers Review". Amazon.com. Retrieved 2014-05-01.
  4. "Translations of 'The Linux Programming Interface'". man7.org. Retrieved 2014-05-01.
  5. "Review: The Linux Programming Interface". lwn.net. Retrieved 2013-10-24.
  6. "The Linux Programming Interface". slashdot.org. Retrieved 2013-10-24.
  7. "FOSDEM 2011 interview". 2011-02-06. Retrieved 2014-02-28.
  8. Michael Kerrisk (2016-01-31). "How to design a Linux kernel API".
This article is issued from Wikipedia - version of the 9/21/2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.