2508:
265:
667:
675:
547:
89:
2520:
161:
502:
121:
36:
2494:
734:
646:
repeatedly denied guaranteeing stable in-kernel APIs for device drivers. Guaranteeing such would have faltered the development of the Linux kernel in the past and would still in the future and, due to the nature of free and open-source software, are not necessary. Ergo, by choice, the Linux kernel has no
789:
during Linux kernel 1.3 development as a character driver interface to provide multiple kernel and user-space bidirectional communications links. Then, Alexey
Kuznetsov extended it during Linux kernel 2.1 development to provide a flexible and extensible messaging interface to the new advanced routing
200:
is written for the POSIX API. Since so much more development flows into the Linux kernel as compared to the other POSIX-compliant combinations of kernel and C standard library, the Linux kernel and its API have been augmented with additional features. Programming for the full Linux API, rather than
228:
explained some of the perceived issues with the Linux kernel's user-space API, describing that it contains multiple design errors by being non-extensible, unmaintainable, overly complex, of limited purpose, in violation of standards, and inconsistent. Most of those mistakes cannot be fixed because
645:
The Linux kernel is a monolithic kernel, hence device drivers are kernel components. To ease the burden of companies maintaining their (proprietary) device drivers outside of the main kernel tree, stable APIs for the device drivers have been repeatedly requested. The Linux kernel developers have
641:
Many kernel-internal APIs exist, allowing kernel subsystems to interface with one another. These are being kept fairly stable, but there is no guarantee for stability. A kernel-internal API can be changed when such a need is indicated by new research or insights; all necessary modifications and
185:
in a way which is reasonably compatible, robust and performant, and to provide additional useful features not defined in POSIX, just as the kernel–user space APIs of other systems implementing the POSIX API also provide additional features not defined in POSIX.
280:
for Linux includes wrappers around the system calls of the Linux kernel; the combination of the Linux kernel system call interface and a C standard library is what builds the Linux API. Some popular implementations of the C standard library are
172:
The Linux API includes the kernel–user space API, which allows code in user space to access system resources and services of the Linux kernel. It is composed of the system call interface of the Linux kernel and the subroutines in the
983:
and Linux is the focal point of all Free
Software development. Due to that I can only recommend developers to try to hack with only Linux in mind and experience the freedom and the opportunities this offers you. So, get yourself a copy of
686:
For many use cases, the Linux API is considered too low-level, so APIs of higher abstraction must be used. Higher-level APIs must be implemeted on top of lower-level APIs. Examples:
518:
2070:
617:
It should be able to compile the software with different compilers against the definitions specified in the ABI and achieve full binary compatibility. Compilers that are
579:. Defining a useful ABI and keeping it stable is less the responsibility of the Linux kernel developers or of the developers of the GNU C Library, and more the task for
2611:
587:(ISVs) who wish to sell and provide support for their proprietary software as binaries only for such a single Linux ABI, as opposed to supporting multiple Linux ABIs.
100:
provides multiple interfaces to user-space and kernel-mode code that are used for varying purposes and that have varying properties by design. There are two types of
189:
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
1359:
790:
infrastructure. Since then, Netlink sockets have become one of the main interfaces that kernel subsystems provide to user-space applications in Linux. Modern
2558:
2159:
450:
2154:
794:
1157:
252:
Various issues with the organization of the Linux kernel system calls are being publicly discussed. Issues have been pointed out by Andy
Lutomirski,
3073:
1284:
2887:
2858:
791:
678:
But the implementation of the OpenGL-specification is executed on the CPU in the context of the running operating system. One design goal of
2512:
46:
670:
OpenGL is indeed an abstraction API to make use of diverse GPUs of multiple vendors without the need to program for each one specifically.
57:
1201:
515:
This section mostly ignores the kernel-userspace ABI (that is very real and important thing) and jumps into userspace-to-userspace APIs.
718:
526:
1891:
1659:
484:
355:
145:
101:
75:
522:
193:. At the same time, Linux kernel developers have historically been conservative and meticulous about introducing new system calls.
2662:
2606:
1195:
201:
just the POSIX API, may provide advantages in cases where those additional features are useful. Well-known current examples are
2581:
2551:
1389:
1228:
985:
748:
2774:
2672:
2001:
786:
1329:
1115:
3052:
2601:
2586:
2435:
1253:
618:
197:
2647:
2632:
2591:
2316:
1364:
568:
551:
2813:
2760:
1718:
584:
473:
libnl (The libnl suite is a collection of libraries providing APIs to netlink protocol based Linux kernel interfaces.)
779: – socket family used for IPC between kernel and user space processes, designed as the successor of
264:
2828:
2667:
2544:
2417:
2231:
1349:
1277:
2863:
2682:
2642:
2637:
2596:
2422:
2064:
1400:
1101:
961:"Interview: Lennart Poettering - Lennart Poettering will give a talk about "Systemd: beyond init" at FOSDEM 2011"
919:
453:
without which no rendering acceleration would be available at all, only the 2D drivers would be available in the
2906:
2793:
2657:
1985:
1970:
1886:
1674:
1479:
930:
If a change results in user programs breaking, it's a bug in the kernel. We never EVER blame the user programs.
812:
712:
699:
467:
446:
345:
246:
141:
2652:
2328:
2127:
1763:
758:
622:
1339:
3040:
2979:
2868:
2848:
2797:
2755:
2473:
2450:
2445:
2280:
2246:
2236:
2108:
2053:
1930:
1469:
1009:
2823:
2789:
2691:
2627:
2524:
2427:
1270:
916:"Re: [Regression w/ patch] Media commit causes user space to misbahave (was: Re: Linux 3.8-rc1)"
666:
410:
50:
that states a
Knowledge (XXG) editor's personal feelings or presents an original argument about a topic.
853:
3020:
2994:
2457:
2059:
1621:
1319:
378:
960:
698:
specifications in proprietary Linux graphics drivers and the free and open-source implementation in
2989:
2941:
2818:
2253:
1732:
1591:
1525:
562:
1139:
428:
2926:
2833:
2407:
2241:
1827:
1727:
1664:
1586:
1581:
1369:
827: – a compatibility layer between Linux and programs written for Microsoft Windows
580:
277:
214:
174:
1187:
674:
3035:
2984:
2916:
2873:
2714:
2378:
2026:
1996:
1991:
1842:
1497:
1459:
830:
599:
319:
315:
210:
457:. DRM was developed for Linux, and since has been ported to other operating systems as well.
3015:
2567:
2132:
1694:
1415:
1405:
1314:
1191:
1029:
975:
766: – is a function to facilitate programs to request services from the kernel
805: – article on various API available on Microsoft Windows operating systems
416:
2959:
2921:
2892:
2368:
2036:
1817:
1257:
1005:
875:
857:
824:
770:
753:
576:
511:
needs attention from an expert in Free and open-source software, Software or
Computing
449:
has been paramount for the development and implementations of well-defined and performant
253:
249:(DRM), define their own system calls, all of which are part of the system call interface.
225:
217:
openly advocate to prefer the Linux API over the POSIX API, where this offers advantages.
153:
1211:
682:
was to make the "graphics driver", i.e. the implementation of the graphics API, do less.
546:
88:
3045:
2969:
2931:
2803:
2398:
2303:
2214:
2091:
2086:
2081:
2076:
1859:
1684:
1679:
1324:
334:
systems, additional capabilities of the Linux kernel exist that are not part of POSIX:
1125:
3067:
2911:
2750:
2704:
2333:
2149:
1955:
1945:
1704:
1576:
1454:
269:
129:
1171:
2838:
2498:
2219:
2137:
2031:
1975:
1334:
1293:
739:
695:
679:
572:
454:
242:
97:
1205:
890:
658:
Since there are no stable in-kernel APIs, there cannot be stable in-kernel ABIs.
2964:
2946:
2729:
2719:
2709:
2224:
2117:
1699:
1596:
871:
802:
763:
190:
1250:
1238:
160:
2311:
2286:
2273:
2178:
2166:
2096:
2006:
1492:
1395:
1354:
992:
compatibility and hack away your amazing Linux software. It's quite relieving!
729:
611:
2901:
2808:
2734:
2699:
2173:
2142:
2011:
1847:
1636:
1507:
1464:
808:
715:: abstraction API for input/sound/etc. available for many operating systems.
438:
405:
331:
3030:
2291:
2112:
2101:
2021:
1965:
1960:
1906:
1854:
1743:
1669:
1247:
by
Jonathan Corbet, Greg Kroah-Hartman and Alessandro Rubini, 3rd edition
1143:
390:
310:
229:
doing so would break the ABI that the kernel presents to the user space.
17:
1234:
177:. The focus of the development of the Linux API has been to provide the
3025:
2954:
2724:
2373:
2358:
2268:
2258:
2198:
2122:
2016:
1940:
1881:
1795:
1758:
1689:
1631:
1626:
1530:
1487:
1083:
1065:
946:
776:
607:
603:
558:
396:
384:
348:, especially the driver-private ioctls for the command submission, are
338:
206:
137:
1097:
1043:
915:
128:
is composed out of the system call interface of the Linux kernel, the
120:
2363:
2348:
2338:
2193:
2188:
1950:
1901:
1874:
1837:
1807:
1774:
1753:
1502:
1449:
1344:
1120:
706:
691:
595:
300:
290:
221:
2536:
1220:
833:– compatibility layer between Linux and programs written for Android
1079:
1061:
942:
2974:
2493:
2183:
2046:
1980:
1935:
1896:
1864:
1832:
1790:
1785:
1748:
1616:
1611:
1571:
1566:
989:
781:
733:
673:
665:
630:
545:
477:
421:
372:
366:
295:
285:
263:
245:
in a kernel. In the Linux kernel, various subsystems, such as the
182:
165:
159:
149:
119:
87:
1098:"[PATCH, RFC] random: introduce getrandom(2) system call"
2263:
2041:
1869:
1800:
1444:
1244:
1047:
626:
432:
was merged into the Linux kernel mainline in kernel version 3.17
361:
set system calls, which are not part of the POSIX specifications
305:
202:
2540:
1266:
1262:
3010:
2343:
2321:
591:
495:
133:
29:
590:
An ABI has to be defined for every instruction set, such as
272:
is a wrapper around the Linux kernel system call interface.
47:
personal reflection, personal essay, or argumentative essay
27:
An overview and comparison of the Linux kernel API and ABI.
567:
The term Linux ABI refers to a kernel–user space ABI. The
1216:
241:
of a kernel is the set of all implemented and available
341:
subsystem, the system calls it introduces and libcgroup
53:
3003:
2940:
2886:
2847:
2782:
2773:
2743:
2690:
2681:
2620:
2574:
2466:
2406:
2397:
2302:
2207:
1923:
1816:
1726:
1717:
1650:
1555:
1548:
1539:
1516:
1478:
1437:
1430:
1378:
1307:
1300:
1174:. Andrey Ponomarenko's ABI laboratory. 2016-03-15.
92:Linux API, Linux ABI, and in-kernel APIs and ABIs
400:have been exclusive to the Linux kernel so far.
1140:"NetBSD 7.0 Will Finally Have DRM/KMS Drivers"
2552:
1278:
1172:"Analysis of ABI changes in the Linux kernel"
943:"Choosing between portability and innovation"
442:initiates a file "read-ahead" into page cache
8:
451:free and open-source graphics device drivers
1062:"Flags as a system call API design pattern"
848:
846:
2779:
2687:
2559:
2545:
2537:
2403:
2299:
1723:
1552:
1545:
1434:
1304:
1285:
1271:
1263:
575:. Any such ABI is therefore bound to the
519:WikiProject Free and open-source software
233:System call interface of the Linux kernel
76:Learn how and when to remove this message
2513:Free and open-source software portal
2071:Earliest eligible virtual deadline first
1237:with main API functions and structures,
1606:
842:
811: – header file for the
642:testing have to be done by the author.
1044:"Making a universal list of syscalls?"
797:use it to communicate with user-space.
529:may be able to help recruit an expert.
409:was introduced in version 3.17 of the
108:the "kernel–user space" API; and
7:
571:refers to the compiled binaries, in
1651:
1158:"The Linux Kernel Driver Interface"
819:of the functions in the Windows API
1251:Linux Kernel Linked List Explained
1010:"How to design a Linux kernel API"
988:, ignore everything it says about
973:In fact, the way I see things the
719:Simple and Fast Multimedia Library
25:
485:Advanced Linux Sound Architecture
356:Advanced Linux Sound Architecture
352:part of the POSIX specifications.
181:of the specifications defined in
102:application programming interface
2663:Object-oriented operating system
2519:
2518:
2506:
2492:
1360:Supported computer architectures
1212:API/ABI changes review for Linux
979:has been taking the role of the
889:Alessandro Rubini (2006-11-02).
815:which contains declarations for
732:
500:
34:
1390:The Linux Programming Interface
1229:The Linux Programming Interface
1217:The Linux Programming Interface
1208:(in deprecated htmldocs format)
986:The Linux Programming Interface
749:The Linux Programming Interface
3074:Interfaces of the Linux kernel
2673:Supercomputer operating system
1202:The API of Linux kernel 2.6.20
1:
914:Linus Torvalds (2012-12-23).
619:free and open-source software
198:free and open-source software
2648:Just enough operating system
2633:Distributed operating system
1235:Interactive Linux kernel map
585:independent software vendors
569:application binary interface
550:The Linux API and the Linux
2761:User space and kernel space
1080:"On vsyscalls and the vDSO"
513:. The specific problem is:
104:(API) in the Linux kernel:
3090:
2668:Real-time operating system
2232:High-performance computing
2054:Process and I/O schedulers
1192:Memory Management APIs 5.0
1030:"System Call Organization"
556:
111:the "kernel internal" API.
2864:Multilevel feedback queue
2859:Fixed-priority preemptive
2643:Hobbyist operating system
2638:Embedded operating system
2486:
2065:Completely Fair Scheduler
1330:Tanenbaum–Torvalds debate
920:Linux kernel mailing list
614:, if both are supported.
2907:General protection fault
2658:Network operating system
2612:User features comparison
1986:Kernel same-page merging
1556:
1188:The Linux Kernel API 5.0
713:Simple DirectMedia Layer
610:(64-Bit), etc. with the
468:Direct Rendering Manager
370:(fast userspace mutex),
346:Direct Rendering Manager
344:The system calls of the
247:Direct Rendering Manager
2653:Mobile operating system
2329:OS-level virtualization
854:"ControlGroupInterface"
785:; Netlink was added by
759:Semaphore (programming)
623:GNU Compiler Collection
2756:Loadable kernel module
2474:List of Linux adopters
1416:Linux User Group (LUG)
813:C programming language
705:Implementation of the
690:Implementation of the
683:
671:
554:
273:
260:The C standard library
169:
157:
93:
56:by rewriting it in an
2824:Process control block
2790:Computer multitasking
2628:Disk operating system
891:"Kernel System Calls"
677:
669:
549:
527:WikiProject Computing
411:Linux kernel mainline
267:
239:system call interface
163:
123:
91:
2995:Virtual tape library
2587:Forensic engineering
2060:Brain Fuck Scheduler
1320:Linux Mark Institute
1245:Linux Device Drivers
1231:was released in 2010
523:WikiProject Software
420:was proposed by the
3004:Supporting concepts
2990:Virtual file system
2254:Real-time computing
1526:Linux Standard Base
581:Linux distributions
563:Linux Standard Base
2927:Segmentation fault
2775:Process management
2242:Compute Node Linux
1828:C standard library
1256:2009-09-25 at the
963:. fosdem.org. 2011
684:
672:
555:
326:Additions to POSIX
278:C standard library
274:
215:Lennart Poettering
175:C standard library
170:
158:
94:
58:encyclopedic style
45:is written like a
3061:
3060:
2917:Memory protection
2888:Memory management
2882:
2881:
2874:Shortest job next
2769:
2768:
2568:Operating systems
2534:
2533:
2482:
2481:
2393:
2392:
2389:
2388:
2027:Network scheduler
1919:
1918:
1915:
1914:
1713:
1712:
1460:Linux kernel oops
1426:
1425:
1406:Linux conferences
544:
543:
461:Further libraries
364:The system calls
213:. People such as
86:
85:
78:
16:(Redirected from
3081:
3016:Computer network
2780:
2688:
2561:
2554:
2547:
2538:
2522:
2521:
2511:
2510:
2509:
2499:Linux portal
2497:
2496:
2404:
2300:
2109:Security Modules
1724:
1553:
1546:
1435:
1315:Linux Foundation
1305:
1287:
1280:
1273:
1264:
1176:
1175:
1168:
1162:
1161:
1154:
1148:
1147:
1136:
1130:
1129:
1124:. Archived from
1112:
1106:
1105:
1094:
1088:
1087:
1076:
1070:
1069:
1058:
1052:
1051:
1040:
1034:
1033:
1026:
1020:
1019:
1017:
1016:
1002:
996:
995:
969:
968:
957:
951:
950:
939:
933:
932:
927:
926:
911:
905:
904:
902:
901:
886:
880:
879:
868:
862:
861:
850:
784:
773:
742:
737:
736:
662:Abstraction APIs
539:
536:
530:
504:
503:
496:
441:
431:
419:
408:
403:The system call
399:
393:
387:
381:
375:
369:
81:
74:
70:
67:
61:
38:
37:
30:
21:
3089:
3088:
3084:
3083:
3082:
3080:
3079:
3078:
3064:
3063:
3062:
3057:
2999:
2960:Defragmentation
2945:
2936:
2922:Protection ring
2891:
2878:
2850:
2843:
2765:
2739:
2677:
2616:
2570:
2565:
2535:
2530:
2507:
2505:
2491:
2478:
2462:
2409:
2385:
2369:User-mode Linux
2298:
2203:
1911:
1819:
1812:
1731:
1709:
1646:
1558:
1535:
1512:
1474:
1422:
1374:
1365:Version history
1296:
1291:
1258:Wayback Machine
1184:
1179:
1170:
1169:
1165:
1156:
1155:
1151:
1138:
1137:
1133:
1114:
1113:
1109:
1096:
1095:
1091:
1078:
1077:
1073:
1060:
1059:
1055:
1042:
1041:
1037:
1028:
1027:
1023:
1014:
1012:
1006:Michael Kerrisk
1004:
1003:
999:
966:
964:
959:
958:
954:
941:
940:
936:
924:
922:
913:
912:
908:
899:
897:
888:
887:
883:
876:freedesktop.org
870:
869:
865:
858:freedesktop.org
852:
851:
844:
840:
780:
769:
754:Michael Kerrisk
738:
731:
728:
664:
656:
650:in-kernel API.
639:
577:instruction set
565:
557:Main articles:
540:
534:
531:
517:
505:
501:
494:
463:
437:
427:
415:
404:
395:
389:
383:
377:
371:
365:
328:
262:
254:Michael Kerrisk
235:
226:Michael Kerrisk
196:Much available
179:usable features
154:freedesktop.org
118:
82:
71:
65:
62:
54:help improve it
51:
39:
35:
28:
23:
22:
15:
12:
11:
5:
3087:
3085:
3077:
3076:
3066:
3065:
3059:
3058:
3056:
3055:
3050:
3049:
3048:
3046:User interface
3043:
3033:
3028:
3023:
3018:
3013:
3007:
3005:
3001:
3000:
2998:
2997:
2992:
2987:
2982:
2977:
2972:
2970:File attribute
2967:
2962:
2957:
2951:
2949:
2938:
2937:
2935:
2934:
2932:Virtual memory
2929:
2924:
2919:
2914:
2909:
2904:
2898:
2896:
2884:
2883:
2880:
2879:
2877:
2876:
2871:
2866:
2861:
2855:
2853:
2845:
2844:
2842:
2841:
2836:
2831:
2826:
2821:
2816:
2811:
2806:
2804:Context switch
2801:
2786:
2784:
2777:
2771:
2770:
2767:
2766:
2764:
2763:
2758:
2753:
2747:
2745:
2741:
2740:
2738:
2737:
2732:
2727:
2722:
2717:
2712:
2707:
2702:
2696:
2694:
2685:
2679:
2678:
2676:
2675:
2670:
2665:
2660:
2655:
2650:
2645:
2640:
2635:
2630:
2624:
2622:
2618:
2617:
2615:
2614:
2609:
2604:
2599:
2594:
2589:
2584:
2578:
2576:
2572:
2571:
2566:
2564:
2563:
2556:
2549:
2541:
2532:
2531:
2529:
2528:
2516:
2502:
2487:
2484:
2483:
2480:
2479:
2477:
2476:
2470:
2468:
2464:
2463:
2461:
2460:
2455:
2454:
2453:
2448:
2440:
2439:
2438:
2430:
2425:
2420:
2414:
2412:
2401:
2395:
2394:
2391:
2390:
2387:
2386:
2384:
2383:
2382:
2381:
2376:
2371:
2366:
2361:
2353:
2352:
2351:
2346:
2341:
2336:
2326:
2325:
2324:
2319:
2308:
2306:
2304:Virtualization
2297:
2296:
2295:
2294:
2289:
2278:
2277:
2276:
2271:
2266:
2261:
2251:
2250:
2249:
2244:
2239:
2229:
2228:
2227:
2222:
2211:
2209:
2205:
2204:
2202:
2201:
2196:
2191:
2186:
2181:
2176:
2170:
2169:
2164:
2163:
2162:
2157:
2150:Device drivers
2146:
2145:
2140:
2135:
2130:
2125:
2120:
2115:
2105:
2104:
2099:
2094:
2092:SCHED_DEADLINE
2089:
2087:O(1) scheduler
2084:
2082:O(n) scheduler
2079:
2077:Noop scheduler
2074:
2068:
2062:
2057:
2050:
2049:
2044:
2039:
2034:
2029:
2024:
2019:
2014:
2009:
2004:
1999:
1994:
1989:
1983:
1978:
1973:
1968:
1963:
1958:
1953:
1948:
1943:
1938:
1933:
1931:Kernel modules
1927:
1925:
1921:
1920:
1917:
1916:
1913:
1912:
1910:
1909:
1904:
1899:
1894:
1889:
1884:
1879:
1878:
1877:
1872:
1867:
1862:
1857:
1852:
1851:
1850:
1840:
1835:
1824:
1822:
1814:
1813:
1811:
1810:
1805:
1804:
1803:
1793:
1788:
1783:
1780:
1777:
1772:
1769:
1766:
1761:
1756:
1751:
1746:
1741:
1737:
1735:
1721:
1715:
1714:
1711:
1710:
1708:
1707:
1702:
1697:
1692:
1687:
1685:Memory barrier
1682:
1677:
1672:
1667:
1662:
1656:
1654:
1648:
1647:
1645:
1644:
1643:
1642:
1639:
1634:
1629:
1624:
1619:
1614:
1604:
1603:
1602:
1599:
1594:
1589:
1584:
1579:
1574:
1563:
1561:
1550:
1543:
1537:
1536:
1534:
1533:
1528:
1522:
1520:
1514:
1513:
1511:
1510:
1505:
1500:
1495:
1490:
1484:
1482:
1476:
1475:
1473:
1472:
1467:
1462:
1457:
1452:
1447:
1441:
1439:
1432:
1428:
1427:
1424:
1423:
1421:
1420:
1419:
1418:
1410:
1409:
1408:
1403:
1398:
1393:
1382:
1380:
1376:
1375:
1373:
1372:
1367:
1362:
1357:
1352:
1347:
1342:
1337:
1332:
1327:
1322:
1317:
1311:
1309:
1302:
1298:
1297:
1292:
1290:
1289:
1282:
1275:
1267:
1261:
1260:
1248:
1242:
1232:
1214:
1209:
1199:
1183:
1182:External links
1180:
1178:
1177:
1163:
1149:
1131:
1128:on 2014-04-22.
1107:
1089:
1071:
1053:
1035:
1021:
1008:(2016-01-31).
997:
952:
934:
906:
881:
863:
841:
839:
836:
835:
834:
828:
822:
821:
820:
800:
799:
798:
774:
761:
756:
744:
743:
727:
724:
723:
722:
716:
710:
709:specification.
703:
663:
660:
655:
654:In-kernel ABIs
652:
638:
637:In-kernel APIs
635:
542:
541:
508:
506:
499:
493:
490:
489:
488:
481:
476:libevdev (for
474:
471:
462:
459:
444:
443:
435:
434:
433:
413:
401:
362:
353:
342:
327:
324:
323:
322:
313:
308:
303:
298:
293:
288:
261:
258:
234:
231:
164:Linux API vs.
117:
114:
113:
112:
109:
84:
83:
42:
40:
33:
26:
24:
14:
13:
10:
9:
6:
4:
3:
2:
3086:
3075:
3072:
3071:
3069:
3054:
3051:
3047:
3044:
3042:
3039:
3038:
3037:
3034:
3032:
3029:
3027:
3024:
3022:
3019:
3017:
3014:
3012:
3009:
3008:
3006:
3002:
2996:
2993:
2991:
2988:
2986:
2983:
2981:
2978:
2976:
2973:
2971:
2968:
2966:
2963:
2961:
2958:
2956:
2953:
2952:
2950:
2948:
2943:
2939:
2933:
2930:
2928:
2925:
2923:
2920:
2918:
2915:
2913:
2912:Memory paging
2910:
2908:
2905:
2903:
2900:
2899:
2897:
2894:
2889:
2885:
2875:
2872:
2870:
2867:
2865:
2862:
2860:
2857:
2856:
2854:
2852:
2846:
2840:
2837:
2835:
2832:
2830:
2827:
2825:
2822:
2820:
2817:
2815:
2812:
2810:
2807:
2805:
2802:
2799:
2795:
2791:
2788:
2787:
2785:
2781:
2778:
2776:
2772:
2762:
2759:
2757:
2754:
2752:
2751:Device driver
2749:
2748:
2746:
2742:
2736:
2733:
2731:
2728:
2726:
2723:
2721:
2718:
2716:
2713:
2711:
2708:
2706:
2703:
2701:
2698:
2697:
2695:
2693:
2692:Architectures
2689:
2686:
2684:
2680:
2674:
2671:
2669:
2666:
2664:
2661:
2659:
2656:
2654:
2651:
2649:
2646:
2644:
2641:
2639:
2636:
2634:
2631:
2629:
2626:
2625:
2623:
2619:
2613:
2610:
2608:
2605:
2603:
2600:
2598:
2595:
2593:
2590:
2588:
2585:
2583:
2580:
2579:
2577:
2573:
2569:
2562:
2557:
2555:
2550:
2548:
2543:
2542:
2539:
2527:
2526:
2517:
2515:
2514:
2503:
2501:
2500:
2495:
2489:
2488:
2485:
2475:
2472:
2471:
2469:
2465:
2459:
2456:
2452:
2449:
2447:
2444:
2443:
2441:
2437:
2434:
2433:
2432:Thin client:
2431:
2429:
2426:
2424:
2421:
2419:
2416:
2415:
2413:
2411:
2405:
2402:
2400:
2396:
2380:
2377:
2375:
2372:
2370:
2367:
2365:
2362:
2360:
2357:
2356:
2354:
2350:
2347:
2345:
2342:
2340:
2337:
2335:
2334:Linux-VServer
2332:
2331:
2330:
2327:
2323:
2320:
2318:
2315:
2314:
2313:
2310:
2309:
2307:
2305:
2301:
2293:
2290:
2288:
2285:
2284:
2282:
2279:
2275:
2272:
2270:
2267:
2265:
2262:
2260:
2257:
2256:
2255:
2252:
2248:
2245:
2243:
2240:
2238:
2235:
2234:
2233:
2230:
2226:
2223:
2221:
2218:
2217:
2216:
2213:
2212:
2210:
2206:
2200:
2197:
2195:
2192:
2190:
2187:
2185:
2182:
2180:
2177:
2175:
2172:
2171:
2168:
2165:
2161:
2158:
2156:
2153:
2152:
2151:
2148:
2147:
2144:
2141:
2139:
2136:
2134:
2131:
2129:
2126:
2124:
2121:
2119:
2116:
2114:
2110:
2107:
2106:
2103:
2100:
2098:
2095:
2093:
2090:
2088:
2085:
2083:
2080:
2078:
2075:
2072:
2069:
2066:
2063:
2061:
2058:
2055:
2052:
2051:
2048:
2045:
2043:
2040:
2038:
2035:
2033:
2030:
2028:
2025:
2023:
2020:
2018:
2015:
2013:
2010:
2008:
2005:
2003:
2000:
1998:
1995:
1993:
1990:
1987:
1984:
1982:
1979:
1977:
1974:
1972:
1969:
1967:
1964:
1962:
1959:
1957:
1956:Device mapper
1954:
1952:
1949:
1947:
1944:
1942:
1939:
1937:
1934:
1932:
1929:
1928:
1926:
1922:
1908:
1905:
1903:
1900:
1898:
1895:
1893:
1890:
1888:
1885:
1883:
1880:
1876:
1873:
1871:
1868:
1866:
1863:
1861:
1858:
1856:
1853:
1849:
1846:
1845:
1844:
1841:
1839:
1836:
1834:
1831:
1830:
1829:
1826:
1825:
1823:
1821:
1815:
1809:
1806:
1802:
1799:
1798:
1797:
1794:
1792:
1789:
1787:
1784:
1781:
1778:
1776:
1773:
1770:
1767:
1765:
1762:
1760:
1757:
1755:
1752:
1750:
1747:
1745:
1742:
1739:
1738:
1736:
1734:
1729:
1725:
1722:
1720:
1716:
1706:
1703:
1701:
1698:
1696:
1693:
1691:
1688:
1686:
1683:
1681:
1678:
1676:
1673:
1671:
1668:
1666:
1663:
1661:
1658:
1657:
1655:
1653:
1649:
1640:
1638:
1635:
1633:
1630:
1628:
1625:
1623:
1620:
1618:
1615:
1613:
1610:
1609:
1608:
1605:
1600:
1598:
1595:
1593:
1590:
1588:
1585:
1583:
1580:
1578:
1575:
1573:
1570:
1569:
1568:
1565:
1564:
1562:
1560:
1554:
1551:
1547:
1544:
1542:
1538:
1532:
1529:
1527:
1524:
1523:
1521:
1519:
1515:
1509:
1506:
1504:
1501:
1499:
1496:
1494:
1491:
1489:
1486:
1485:
1483:
1481:
1477:
1471:
1468:
1466:
1463:
1461:
1458:
1456:
1453:
1451:
1448:
1446:
1443:
1442:
1440:
1436:
1433:
1429:
1417:
1414:
1413:
1411:
1407:
1404:
1402:
1399:
1397:
1394:
1392:
1391:
1387:
1386:
1384:
1383:
1381:
1377:
1371:
1368:
1366:
1363:
1361:
1358:
1356:
1353:
1351:
1348:
1346:
1343:
1341:
1338:
1336:
1333:
1331:
1328:
1326:
1323:
1321:
1318:
1316:
1313:
1312:
1310:
1306:
1303:
1299:
1295:
1288:
1283:
1281:
1276:
1274:
1269:
1268:
1265:
1259:
1255:
1252:
1249:
1246:
1243:
1240:
1236:
1233:
1230:
1226:
1224:
1218:
1215:
1213:
1210:
1207:
1203:
1200:
1197:
1193:
1189:
1186:
1185:
1181:
1173:
1167:
1164:
1159:
1153:
1150:
1146:. 2014-03-19.
1145:
1141:
1135:
1132:
1127:
1123:
1122:
1117:
1111:
1108:
1104:. 2014-07-17.
1103:
1099:
1093:
1090:
1086:. 2011-06-08.
1085:
1081:
1075:
1072:
1068:. 2014-02-12.
1067:
1063:
1057:
1054:
1050:. 2014-02-27.
1049:
1045:
1039:
1036:
1031:
1025:
1022:
1011:
1007:
1001:
998:
994:
993:
991:
987:
982:
978:
977:
962:
956:
953:
949:. 2011-03-02.
948:
944:
938:
935:
931:
921:
917:
910:
907:
896:
892:
885:
882:
877:
873:
867:
864:
859:
855:
849:
847:
843:
837:
832:
829:
826:
823:
818:
814:
810:
807:
806:
804:
801:
796:
793:
788:
783:
778:
775:
772:
768:
767:
765:
762:
760:
757:
755:
751:
750:
746:
745:
741:
735:
730:
725:
721:: like above.
720:
717:
714:
711:
708:
704:
701:
697:
693:
689:
688:
687:
681:
676:
668:
661:
659:
653:
651:
649:
643:
636:
634:
632:
628:
624:
620:
615:
613:
609:
605:
601:
597:
593:
588:
586:
582:
578:
574:
570:
564:
560:
553:
548:
538:
535:February 2018
528:
524:
520:
516:
512:
509:This article
507:
498:
497:
491:
486:
482:
479:
475:
472:
469:
465:
464:
460:
458:
456:
452:
448:
440:
436:
430:
426:
425:
423:
418:
414:
412:
407:
402:
398:
392:
386:
380:
374:
368:
363:
360:
357:
354:
351:
347:
343:
340:
337:
336:
335:
333:
325:
321:
317:
314:
312:
309:
307:
304:
302:
299:
297:
294:
292:
289:
287:
284:
283:
282:
279:
271:
270:GNU C Library
266:
259:
257:
255:
250:
248:
244:
240:
232:
230:
227:
223:
218:
216:
212:
208:
204:
199:
194:
192:
187:
184:
180:
176:
167:
162:
155:
151:
147:
143:
139:
135:
131:
130:GNU C Library
127:
122:
115:
110:
107:
106:
105:
103:
99:
90:
80:
77:
69:
59:
55:
49:
48:
43:This article
41:
32:
31:
19:
2947:file systems
2839:Time-sharing
2523:
2504:
2490:
2220:Linux kernel
2138:Tomoyo Linux
1733:File systems
1540:
1517:
1388:
1340:SCO disputes
1301:Organization
1294:Linux kernel
1222:
1166:
1152:
1134:
1126:the original
1119:
1110:
1092:
1074:
1056:
1038:
1024:
1013:. Retrieved
1000:
980:
974:
972:
971:
965:. Retrieved
955:
937:
929:
923:. Retrieved
909:
898:. Retrieved
894:
884:
866:
816:
747:
740:Linux portal
685:
657:
647:
644:
640:
616:
589:
573:machine code
566:
532:
514:
510:
466:libdrm (for
455:X.Org Server
445:
429:memfd_create
358:
349:
330:As in other
329:
275:
256:and others.
251:
243:system calls
238:
236:
219:
195:
188:
178:
171:
125:
98:Linux kernel
95:
72:
63:
44:
2965:Device file
2955:Boot loader
2869:Round-robin
2794:Cooperative
2730:Rump kernel
2720:Multikernel
2710:Microkernel
2607:Usage share
2225:Linux-libre
2118:Exec Shield
1997:Framebuffer
1700:Video4Linux
1557:System Call
1385:Developers
1325:Linus's law
1225:API changes
803:Windows API
764:system call
483:libasound (
424:developers
191:source code
2895:protection
2851:algorithms
2849:Scheduling
2798:Preemptive
2744:Components
2715:Monolithic
2582:Comparison
2312:Hypervisor
2274:PREEMPT_RT
2179:KernelCare
2167:Raw device
2097:SCHED_FIFO
2007:KMS driver
1924:Components
1779:securityfs
1665:Crypto API
1607:Linux-only
1493:System.map
1396:kernel.org
1355:menuconfig
1350:GNU GPL v2
1221:Linux and
1015:2016-02-04
967:2014-06-16
925:2014-08-26
900:2014-11-11
872:"libevdev"
838:References
612:endianness
606:(32-Bit),
2985:Partition
2902:Bus error
2829:Real-time
2809:Interrupt
2735:Unikernel
2700:Exokernel
2451:LYME-LYCE
2174:initramfs
2143:Linux PAM
2012:Netfilter
1882:libcgroup
1848:libhybris
1820:libraries
1768:hugetlbfs
1719:Userspace
1652:In-kernel
1637:readahead
1559:Interface
1508:initramfs
1465:SystemTap
1438:Debugging
1431:Technical
1370:Criticism
1116:"memfd.c"
981:POSIX API
976:Linux API
831:libhybris
809:windows.h
771:eventfd()
621:are e.g.
525: or
492:Linux ABI
439:readahead
406:getrandom
332:Unix-like
320:libhybris
316:libbionic
138:libcgroup
126:Linux API
116:Linux API
66:July 2014
18:Linux API
3068:Category
3031:Live USB
2893:resource
2783:Concepts
2621:Variants
2602:Timeline
2525:Category
2467:Adopters
2442:Server:
2423:Embedded
2399:Adoption
2292:PSXLinux
2215:Mainline
2208:Variants
2160:graphics
2113:AppArmor
2102:SCHED_RR
2022:nftables
1966:dm-crypt
1961:dm-cache
1907:liburing
1897:libevdev
1855:dietlibc
1744:configfs
1670:io uring
1254:Archived
1144:Phoronix
895:linux.it
787:Alan Cox
726:See also
391:fanotify
311:dietlibc
150:libevdev
3026:Live CD
2980:Journal
2944:access,
2942:Storage
2819:Process
2725:vkernel
2592:History
2575:General
2458:Devices
2418:Desktop
2379:coLinux
2374:MkLinux
2359:L4Linux
2287:ÎĽClinux
2269:Xenomai
2259:RTLinux
2199:Ksplice
2128:SELinux
2123:seccomp
2073:(EEVDF)
2017:Netlink
1946:Console
1941:cgroups
1892:libalsa
1818:Wrapper
1796:systemd
1759:debugfs
1728:Daemons
1690:New API
1632:inotify
1627:dnotify
1531:x32 ABI
1488:vmlinux
1480:Startup
1379:Support
1241:version
1198:format)
1084:LWN.net
1066:LWN.net
947:LWN.net
795:drivers
777:netlink
608:ARMv8-A
604:ARMv7-A
559:x32 ABI
397:inotify
385:dnotify
339:cgroups
207:systemd
146:libalsa
52:Please
2834:Thread
2705:Hybrid
2683:Kernel
2428:Gaming
2410:of use
2364:ELinOS
2355:Other
2349:OpenVZ
2339:Lguest
2283:-less
2194:kpatch
2189:kGraft
2155:802.11
1951:bcache
1902:libusb
1887:libdrm
1875:Newlib
1860:EGLIBC
1843:Bionic
1838:uClibc
1808:Kmscon
1782:sockfs
1775:procfs
1771:pipefs
1754:devpts
1680:kernfs
1622:splice
1577:select
1549:Kernel
1503:initrd
1498:dracut
1450:ftrace
1412:Users
1345:Linaro
1308:Kernel
1227:since
1219:book,
1196:sphinx
1121:GitHub
707:OpenAL
696:Vulkan
692:OpenGL
680:Vulkan
648:stable
596:x86-64
394:, and
379:splice
301:Newlib
291:uClibc
224:2016,
222:FOSDEM
211:Weston
142:libdrm
3036:Shell
2975:Inode
2408:Range
2247:SLURM
2184:kexec
2133:Smack
2067:(CFS)
2047:zswap
1988:(KSM)
1981:evdev
1936:BlueZ
1865:klibc
1833:glibc
1791:tmpfs
1786:sysfs
1749:devfs
1740:bpffs
1617:epoll
1612:futex
1592:close
1572:ioctl
1567:POSIX
1455:kdump
1223:glibc
1194:(new
990:POSIX
782:ioctl
631:Clang
478:evdev
422:kdbus
417:memfd
373:epoll
367:futex
359:could
296:klibc
286:glibc
183:POSIX
166:POSIX
2597:List
2446:LAMP
2436:LTSP
2264:RTAI
2042:zram
2037:SLUB
2032:perf
1976:EDAC
1870:musl
1801:udev
1764:FUSE
1660:ALSA
1597:sync
1587:read
1582:open
1541:APIs
1518:ABIs
1445:CRIU
1401:LKML
1206:4.12
1204:and
1102:LKML
1048:LKML
825:Wine
792:WNIC
700:Mesa
694:and
627:LLVM
600:MIPS
583:and
561:and
318:and
306:musl
268:The
237:The
209:and
203:udev
152:(by
148:and
132:(by
124:The
96:The
3053:PXE
3041:CLI
3021:HAL
3011:API
2814:IPC
2344:LXC
2322:Xen
2317:KVM
2281:MMU
2237:INK
2002:LVM
1992:LIO
1971:DRM
1705:IIO
1695:RCU
1675:DRM
1470:BPF
1335:Tux
1239:PDF
817:all
752:by
592:x86
552:ABI
447:DRM
350:not
220:At
168:API
136:),
134:GNU
3070::
2796:,
2111::
1190:,
1142:.
1118:.
1100:.
1082:.
1064:.
1046:.
970:.
945:.
928:.
918:.
893:.
874:.
856:.
845:^
633:.
625:,
602:,
598:,
594:,
521:,
388:,
382:,
376:,
276:A
205:,
156:).
144:,
140:,
2890:,
2800:)
2792:(
2560:e
2553:t
2546:v
2056::
1730:,
1641:…
1601:…
1286:e
1279:t
1272:v
1160:.
1032:.
1018:.
903:.
878:.
860:.
702:.
629:/
537:)
533:(
487:)
480:)
470:)
79:)
73:(
68:)
64:(
60:.
20:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.