that old GNU/Linux argument

Alexandre Oliva aoliva at redhat.com
Thu Jul 24 01:36:58 UTC 2008


On Jul 23, 2008, Nifty Fedora Mitch <niftyfedora at niftyegg.com> wrote:

> systematic interface between the kernel services and the applications.
> This interface consists of an API and and ABI.

Not really.  It's just an ABI, really.  It's GNU libc's job to offer
an API for applications and translate that into the system calls
defined in the kernel ABI.  There's no such thing as a kernel header
file you can include from userland and start issuing calls into the
kernel.  Kernel developers will tell you that including kernel headers
from userland is not kosher.

Of course GNU libc has its own ABI as well, and that's what
applications for GNU/Linux are compatible with, after being built
using the GNU libc API.  As for the kernel ABI, nothing but GNU libc
really cares about it, since pretty much nobody else issues syscalls
directly.

-- 
Alexandre Oliva         http://www.lsd.ic.unicamp.br/~oliva/
Free Software Evangelist  oliva@{lsd.ic.unicamp.br, gnu.org}
FSFLA Board Member       ¡Sé Libre! => http://www.fsfla.org/
Red Hat Compiler Engineer   aoliva@{redhat.com, gcc.gnu.org}




More information about the users mailing list