Linux kernel interfaces: Difference between revisions

Content deleted Content added
changes the lead to be in line with WP:EPSTYLE and WP:FORUM
In-kernel interfaces are, as the name suggests, *not* offered to user-space code. Just refer to user-space code, not specifically to user-space applications, as the kernel APIs are also offered to user-space libraries. Add a colon before a list of interfaces. Fix capitalization.
Line 7:
[[File:Linux kernel interfaces.svg|thumb|upright=1.5|Linux API, Linux ABI, and in-kernel APIs and ABIs]]
 
The [[Linux kernel]] provides multiple interfaces to user-space applicationsand kernel-mode code that are used for varying purposes and that have varying properties by design. There are two types of [[application programming interface]] (API) in the Linux kernel :
 
# the "kernel–user space" API; and
Line 13:
 
== {{Anchor|Linux API}}Linux API ==
[[File:Linux API.svg|thumb|upright=1.5|The '''Linux API''' is composed out of the Systemsystem Callcall Interfaceinterface of the Linux kernel, the [[GNU C Library]] (by [[GNU]]), [[cgroups|libcgroup]],<ref name="libcgroup">{{cite web|url=https://www.freedesktop.org/wiki/Software/systemd/ControlGroupInterface/|title=ControlGroupInterface|publisher=[[freedesktop.org]]}}</ref> [[Direct Rendering Manager|libdrm]], [[Advanced Linux Sound Architecture|libalsa]] and [[evdev|libevdev]]<ref name="libevdev">{{cite web |url=http://www.freedesktop.org/wiki/Software/libevdev/ |title=libevdev |publisher=[[freedesktop.org]]}}</ref> (by [[freedesktop.org]]).]]
[[File:Linux kernel API.svg|thumb|upright=1.5|Linux API vs. [[POSIX]] API]]
 
The Linux API is the kernel&ndash;user space API, which allows programscode in user space to access system resources and services of the Linux kernel.<ref>{{cite web
| url = http://www.linux.it/~rubini/docs/ksys/ksys.html
| title = Kernel System Calls
| date = 2006-11-02 | access-date = 2014-11-11
| author = Alessandro Rubini | website = linux.it
}}</ref> It is composed out of the Systemsystem Callcall Interfaceinterface of the Linux kernel and the subroutines in the [[GNU C Library]] (glibc). The focus of the development of the Linux API has been to provide the ''usable features'' of the specifications defined in [[POSIX]] in a way which is reasonably compatible, robust and performant, and to provide additional useful features not defined in POSIX, just as the kernel&ndash;user space APIs of other systems implementing the POSIX API also provide additional features not defined in POSIX.
 
The Linux API, by choice, has been kept stable over the decades through a policy of not introducing breaking changes; this stability guarantees the portability of [[source code]].<ref>{{cite web