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