''The Linux Programming Interface: A Linux and UNIX System Programming Handbook'' is a book written by
Michael Kerrisk
Michael Kerrisk is a technical author, programmer and, since 2004, software maintainer, maintainer of the Linux man page, man-pages project, succeeding Andries Brouwer. He was born in 1961 in New Zealand and lives in Munich, Germany.
Kerrisk has ...
, which documents the
APIs
Apis or APIS may refer to:
* Apis (deity), an ancient Egyptian god
* Apis (Greek mythology), several different figures in Greek mythology
* Apis (city), an ancient seaport town on the northern coast of Africa
**Kom el-Hisn, a different Egyptian ci ...
of the
Linux kernel
The Linux kernel is a free and open-source, monolithic, modular, multitasking, Unix-like operating system kernel. It was originally authored in 1991 by Linus Torvalds for his i386-based PC, and it was soon adopted as the kernel for the GNU ...
and of the
GNU C Library
The GNU C Library, commonly known as glibc, is the GNU Project's implementation of the C standard library. Despite its name, it now also directly supports C++ (and, indirectly, other programming languages). It was started in the 1980s by ...
(glibc).
Book
It covers a wide array of topics dealing with the Linux
operating system
An operating system (OS) is system software that manages computer hardware, software resources, and provides common daemon (computing), services for computer programs.
Time-sharing operating systems scheduler (computing), schedule tasks for ef ...
and operating systems in general, as well as providing a brief history of
Unix
Unix (; trademarked as UNIX) is a family of multitasking, multiuser computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, a ...
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
LWN.net is a computing webzine with an emphasis on free software and software for Linux and other Unix-like operating systems. It consists of a weekly issue, separate stories which are published most days, and threaded discussion attached to ever ...
and the current maintainer for the
Linux
Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which i ...
man pages project.
''The Linux Programming Interface'' is widely regarded as the definitive work on Linux system programming and has been translated into several languages. 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." Federico Lucifredi, the product manager for the
SUSE Linux Enterprise
SUSE Linux Enterprise (often abbreviated to SLE) is a Linux-based operating system developed by SUSE. It is available in two editions, suffixed with Server (SLES) for servers and mainframes, and Desktop (SLED) for workstations and desktop compu ...
and
openSUSE
openSUSE () is a free and open source RPM-based Linux distribution developed by the openSUSE project.
The initial release of the community project was a beta version of SUSE Linux 10.0.
Additionally the project creates a variety of tools, s ...
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…"
Lennart Poettering
Lennart Poettering (born 15 October 1980) is a German software engineer working for Microsoft and the original author of PulseAudio, Avahi and systemd.
Life and career
Poettering was born in Guatemala City but grew up in Rio de Janeiro, B ...
, the software engineer best known for
PulseAudio
PulseAudio is a network-capable sound server program distributed via the freedesktop.org project. It runs mainly on Linux, various BSD distributions such as FreeBSD and OpenBSD, macOS, as well as Illumos distributions and the Solaris oper ...
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".
At
FOSDEM
Free and Open source Software Developers' European Meeting (FOSDEM) is a non-commercial, volunteer-organized European event centered on free and open-source software development. It is aimed at developers and anyone interested in the free and ...
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.
See also
*
Linux kernel interfaces
The Linux kernel provides several interfaces to user-space applications that are used for different purposes and that have different properties by design. There are two types of application programming interface (API) in the Linux kernel that ...
* ''
Programming Linux Games''
References
External links
The Linux Programming Interface at the publisher's (No Starch Press) WebsiteThe Linux Programming Interface Description at Kerrisk's WebsiteAPI changesThe Linux Programming Interface Traditional Chinese Translation
{{DEFAULTSORT:Linux Programming Interface: A Linux and UNIX System Programming Handbook, The
Computer programming books
Books about Linux
2010 non-fiction books
No Starch Press books
Interfaces of the Linux kernel