2811:
2823:
2797:
614:
Kernel modules can optionally have a cryptographic signature ELF section which is verified on load depending on the
Verified Boot policy settings. The kernel can enforce that modules are cryptographically signed by a set of trusted certificates; the list of trusted certificates is held outside of the
525:
kernel modules compiled against kernel version 6.0 will work without recompilation on any other FreeBSD 6.x version, e.g. 6.4. However, they are not compatible with other major versions and must be recompiled for use with FreeBSD 7.x, as API and ABI compatibility is maintained only within a branch.
605:
In older versions of macOS, or if kext signing is disabled, a loadable kernel module in a kernel extension bundle can be loaded by non-root users if the OSBundleAllowUserLoad property is set to True in the bundle's property list. However, if any of the files in the bundle, including the executable
177:
Without loadable kernel modules, an operating system would have to include all possible anticipated functionality compiled directly into the base kernel. Much of that functionality would reside in memory without being used, wasting memory , and would require that users rebuild and reboot the base
278:
Loading a proprietary or non-GPL-compatible module will set a 'taint' flag in the running kernel—meaning that any problems or bugs experienced will be less likely to be investigated by the maintainers. LKMs effectively become part of the running kernel, so can corrupt kernel data structures and
485:
for kernel modules. This means that there are differences in internal structure and function between different kernel versions, which can cause compatibility problems. In an attempt to combat those problems, symbol versioning data is placed within the
570:
system may load specific modules needed for a machine at boot and then disable module loading. This makes the security very similar to a monolithic kernel. If an attacker can change the initramfs, they can change the kernel binary.
250:
command lists the loaded kernel modules. In emergency cases, when the system fails to boot due to e.g. broken modules, specific modules can be enabled or disabled by modifying the kernel boot parameters list (for example, if using
965:
448:
A downloadable kernel module (DKM) type project can be created to generate a ".out" file which can then be loaded to kernel space using "ld" command. This downloadable kernel module can be unloaded using "unld" command.
615:
OS in the ILOM on some SPARC based platforms. Userspace initiated kernel module loading is only possible from the
Trusted Path when the system is running with the Immutable Global Zone feature enabled.
673:
994:
957:
909:
205:
that contain the modules, it is likely that any new kernel code insertion will cause the kernel to become fragmented, thereby introducing a minor performance penalty by using more
494:
modules. This versioning information can be compared with that of the running kernel before loading a module; if the versions are incompatible, the module will not be loaded.
2373:
534:
While loadable kernel modules are a convenient method of modifying the running kernel, this can be abused by attackers on a compromised system to prevent detection of their
1113:
587:
with a developer certificate that holds a particular "entitlement." Such a developer certificate is only provided by Apple on request and not automatically given to
727:
1662:
774:
591:
members. This feature, called "kext signing", is enabled by default and it instructs the kernel to stop booting if unsigned kernel extensions are present. In
197:
by its setup routines; thus, the base kernel code is never fragmented. Once the system is in a state in which modules may be inserted, for example once the
2462:
1060:
665:
3073:
2457:
606:
code file, are not owned by root and group wheel, or are writable by the group or "other", the attempt to load the kernel loadable module will fail.
987:
336:
The string comparison code used by the kernel at the time tried to determine whether the module was GPLed stopped when it reached a null character (
913:
1587:
1389:
1360:
3130:
2815:
3246:
3118:
436:
command lists currently loaded kernel modules. NLMs may reside in any valid search path assigned on the NetWare server, and they have
3447:
3261:
2861:
2194:
1962:
3412:
1164:
1108:
3392:
1692:
1083:
1053:
550:
in any way, as elevated privilege is required to load a LKM; they merely make it easier for the attacker to hide the break-in.
432:(NLM). NLMs are inserted into the NetWare kernel by means of the LOAD command, and removed by means of the UNLOAD command; the
3009:
2304:
1276:
1174:
491:
1632:
3407:
3402:
2893:
2738:
1554:
1103:
1088:
465:; those not considered necessary to boot the system to the point that init can start are often (but not always) found in
2619:
1667:
1149:
1134:
1093:
518:
482:
206:
2021:
1315:
1262:
718:
599:
400:
Some loadable kernel modules in macOS can be loaded automatically. Loadable kernel modules can also be loaded by the
2720:
2534:
1652:
1580:
1330:
1169:
1046:
770:
498:
272:
713:
3283:
2725:
2367:
1703:
1365:
1184:
1144:
1139:
1098:
1023:
188:
51:
843:
3055:
2288:
2273:
2189:
1977:
1782:
1408:
1295:
1159:
893:
822:
2953:
2908:
2631:
2430:
2066:
1954:
1909:
1859:
1843:
1820:
1154:
869:
624:
429:
1642:
3236:
3088:
2930:
2776:
2753:
2748:
2583:
2549:
2539:
2411:
2356:
1772:
1542:
1481:
1370:
1350:
1299:
795:
372:, or for proprietary or otherwise binary-only modules. FreeBSD kernel modules usually have the extension
695:
3442:
2981:
2854:
2827:
2730:
1573:
1325:
1291:
1193:
1129:
936:
78:. When the functionality provided by an LKM is no longer required, it can be unloaded in order to free
3362:
3270:
3014:
2760:
2362:
1924:
1622:
1522:
1496:
388:. Modules can also be loaded from the loader before the kernel starts, either automatically (through
268:
194:
3045:
2556:
2035:
1894:
1828:
1491:
1443:
1320:
547:
535:
3241:
2913:
2898:
2710:
2544:
2130:
2030:
1967:
1889:
1884:
1672:
1428:
1335:
3221:
3216:
2888:
2681:
2329:
2299:
2294:
2145:
1800:
1762:
1537:
1486:
1418:
1375:
1216:
510:
340:), so it was fooled into thinking that the module was declaring its license to be just "GPL".
202:
90:
63:
3437:
3231:
3065:
3033:
2847:
2435:
1997:
1718:
1708:
1617:
1517:
1069:
357:
79:
59:
3083:
3004:
2671:
2339:
2120:
1461:
1423:
1394:
1017:
897:
699:
592:
588:
567:
279:
produce bugs that may not be able to be investigated if the module is indeed proprietary.
264:
643:
186:
One minor criticism of preferring a modular kernel over a static kernel is the so-called
546:
make use of LKMs in this way. Note that, on most operating systems, modules do not help
3347:
3211:
3206:
2701:
2606:
2517:
2394:
2389:
2384:
2379:
2162:
1987:
1982:
1627:
1547:
1471:
1433:
1305:
409:
292:
3431:
3295:
3113:
3021:
2943:
2903:
2636:
2452:
2258:
2248:
2007:
1879:
1757:
1413:
1252:
1206:
580:
539:
369:
365:
288:
67:
47:
469:. When running a DEBUG kernel build the system actively attempts to unload modules.
3342:
3186:
3038:
2966:
2801:
2522:
2440:
2334:
2278:
1637:
1596:
1340:
750:"The Linux Kernel Module Programming Guide, section 2.2 "Compiling Kernel Modules""
584:
255:, by pressing 'e' in the GRUB start menu, then editing the kernel parameter line).
3315:
3251:
3108:
2527:
2420:
2002:
1899:
1466:
1448:
1231:
1221:
1211:
749:
75:
43:
420:
directory; modules supplied by third parties are in various other directories.
3397:
3290:
3226:
3098:
2994:
2614:
2589:
2576:
2481:
2469:
2399:
2309:
1795:
1698:
1657:
991:
669:
198:
138:
71:
17:
2476:
2445:
2314:
2150:
1939:
1810:
1767:
1403:
1310:
1236:
1201:
723:
86:
31:
27:
Dynamically loadable module that extends a running operating system kernel
3352:
3325:
3320:
3310:
3305:
3166:
3103:
3093:
2594:
2415:
2404:
2324:
2268:
2263:
2209:
2157:
2046:
1972:
1532:
1031:
252:
224:
3387:
3330:
3300:
3161:
3156:
3050:
2880:
2871:
2676:
2661:
2571:
2561:
2501:
2425:
2319:
2243:
2184:
2098:
2061:
1992:
1934:
1929:
1833:
1790:
1527:
1456:
1226:
818:
543:
522:
502:
349:
150:
102:
2839:
457:
Solaris has a configurable kernel module load path, which defaults to
3337:
3181:
3171:
3151:
3146:
3123:
2961:
2666:
2651:
2641:
2496:
2491:
2253:
2204:
2177:
2140:
2110:
2077:
2056:
1805:
1752:
1647:
559:
1038:
890:
814:
3375:
3370:
3026:
2971:
2796:
2486:
2349:
2283:
2238:
2199:
2167:
2135:
2093:
2088:
2051:
1919:
1914:
1874:
1869:
1476:
1027:
865:
506:
287:
In 2004, Linuxant, a consulting company that releases proprietary
267:
of the kernel. The Linux maintainers tolerate the distribution of
246:
222:
Loadable kernel modules in Linux are loaded (and unloaded) by the
130:
114:
3383:
3078:
2999:
2989:
2938:
2566:
2344:
2172:
2103:
1747:
644:"Deprecated Kernel Extensions and System Extension Alternatives"
240:("kernel object") since version 2.6 (previous versions used the
2843:
1569:
1565:
1042:
416:. Modules supplied with the operating system are stored in the
93:
support loadable kernel modules under different names, such as
3379:
3278:
2646:
2624:
1512:
514:
478:
122:
521:
relatively stable, thus avoiding this problem. For example,
271:
modules, but allow symbols to be marked as only available to
117:(although support for third-party modules is being dropped),
696:"Managing and Developing DynamicallyLoadable Kernel Modules"
542:, allowing them to maintain control over the system. Many
376:. Once the machine has booted, they may be loaded with the
193:. The base kernel is always unpacked into real contiguous
328:
directory; for others, only LICENSE file applies"
461:. Most kernel modules live in subdirectories under
3361:
3269:
3260:
3199:
3139:
3064:
2980:
2952:
2929:
2922:
2879:
2769:
2709:
2700:
2605:
2510:
2226:
2119:
2029:
2020:
1953:
1858:
1851:
1842:
1819:
1781:
1740:
1733:
1681:
1610:
1603:
1505:
1442:
1388:
1349:
1284:
1275:
1245:
1192:
1183:
1122:
1076:
666:"Kernel Extension Programming Topics: Introduction"
459:/platform/platform-name/kernel /kernel /usr/kernel
178:kernel every time they require new functionality.
800:The Linux kernel user’s and administrator’s guide
583:and later releases, a kernel extension has to be
291:as loadable kernel modules, attempted to abuse a
62:. LKMs are typically used to add support for new
408:command. Loadable kernel modules are located in
844:"Novell support documentation: Tainted kernel"
213:Implementations in different operating systems
2855:
1581:
1054:
988:"Info.plist Properties for Kernel Extensions"
263:In the opinion of Linux maintainers, LKM are
8:
428:A NetWare kernel module is referred to as a
299:, as visible in the following code excerpt:
3266:
2926:
2862:
2848:
2840:
2706:
2602:
2026:
1855:
1848:
1737:
1607:
1588:
1574:
1566:
1281:
1189:
1061:
1047:
1039:
769:Linus Torvalds; et al. (2011-06-21).
558:Linux allows disabling module loading via
714:"What Determines When a Driver Is Loaded"
2816:Free and open-source software portal
2374:Earliest eligible virtual deadline first
997:from the original on September 26, 2012
635:
872:from the original on November 2, 2012
7:
968:from the original on August 17, 2016
891:Exploiting Loadable Kernel Modules
404:command. They can be listed by the
866:"Being honest with MODULE_LICENSE"
864:Jonathan Corbet (April 27, 2004).
730:from the original on March 6, 2013
598:and later releases, it is part of
209:entries, causing more TLB misses.
127:dynamically loadable kernel module
25:
564:/proc/sys/kernel/modules_disabled
497:Other operating systems, such as
356:for modules distributed with the
2822:
2821:
2809:
2795:
1663:Supported computer architectures
1165:Object-oriented operating system
771:"Documentation/oops-tracing.txt"
676:from the original on May 4, 2013
477:Linux does not provide a stable
1693:The Linux Programming Interface
825:from the original on 2011-11-16
777:from the original on 2011-10-02
1175:Supercomputer operating system
813:Jonathan Corbet (2006-03-24).
228:command. They are located in
1:
2894:FreeBSD Documentation License
964:. Apple. September 16, 2015.
1150:Just enough operating system
1135:Distributed operating system
440:as the file name extension.
1263:User space and kernel space
719:Microsoft Developer Network
600:System Integrity Protection
364:for modules installed from
236:and have had the extension
3464:
2535:High-performance computing
2357:Process and I/O schedulers
1170:Real-time operating system
815:"Tainting from user space"
418:/System/Library/Extensions
273:GNU General Public License
143:downloadable kernel module
2789:
2368:Completely Fair Scheduler
1633:Tanenbaum–Torvalds debate
1366:Multilevel feedback queue
1361:Fixed-priority preemptive
1145:Hobbyist operating system
1140:Embedded operating system
153:. They are also known as
3448:Operating system kernels
3056:Highly Available STorage
2289:Kernel same-page merging
1409:General protection fault
1160:Network operating system
1114:User features comparison
937:"Clean module disabling"
935:Kees Cook (2012-11-28).
301:
2632:OS-level virtualization
1155:Mobile operating system
625:NetWare Loadable Module
430:NetWare Loadable Module
380:command, unloaded with
155:kernel loadable modules
119:kernel extension module
3237:Marshall Kirk McKusick
2777:List of Linux adopters
1719:Linux User Group (LUG)
1258:Loadable kernel module
95:kernel loadable module
46:that contains code to
36:loadable kernel module
1326:Process control block
1292:Computer multitasking
1130:Disk operating system
962:Mac Developer Library
726:. November 21, 2012.
82:and other resources.
2363:Brain Fuck Scheduler
1623:Linux Mark Institute
1497:Virtual tape library
1089:Forensic engineering
490:section of loadable
473:Binary compatibility
283:Linuxant controversy
3413:PlayStation Vita OS
2557:Real-time computing
1829:Linux Standard Base
1506:Supporting concepts
1492:Virtual file system
958:"Kernel Extensions"
910:"Sysctl/kernel.txt"
672:September 1, 2010.
548:privilege elevation
412:with the extension
348:Kernel modules for
3393:Nintendo Switch OS
3242:Diomidis Spinellis
2914:Kernel Normal Form
2899:FreeBSD Foundation
2545:Compute Node Linux
2131:C standard library
1429:Segmentation fault
1277:Process management
896:2012-02-04 at the
384:, and listed with
352:are stored within
135:kernel-mode driver
3425:
3424:
3421:
3420:
3217:Poul-Henning Kamp
3195:
3194:
2889:FreeBSD Core Team
2837:
2836:
2785:
2784:
2696:
2695:
2692:
2691:
2330:Network scheduler
2222:
2221:
2218:
2217:
2016:
2015:
1763:Linux kernel oops
1729:
1728:
1709:Linux conferences
1563:
1562:
1419:Memory protection
1390:Memory management
1384:
1383:
1376:Shortest job next
1271:
1270:
1070:Operating systems
1030:System Manager's
916:on April 15, 2013
796:"Tainted kernels"
390:/boot/loader.conf
316:for files in the
161:), and simply as
91:Microsoft Windows
16:(Redirected from
3455:
3408:PlayStation 4 OS
3403:PlayStation 3 OS
3267:
2927:
2864:
2857:
2850:
2841:
2825:
2824:
2814:
2813:
2812:
2802:Linux portal
2800:
2799:
2707:
2603:
2412:Security Modules
2027:
1856:
1849:
1738:
1618:Linux Foundation
1608:
1590:
1583:
1576:
1567:
1518:Computer network
1282:
1190:
1063:
1056:
1049:
1040:
1034:
1021:
1020:
1013:
1007:
1006:
1004:
1002:
984:
978:
977:
975:
973:
954:
948:
947:
945:
944:
932:
926:
925:
923:
921:
912:. Archived from
906:
900:
888:
882:
881:
879:
877:
861:
855:
854:
852:
851:
840:
834:
833:
831:
830:
810:
804:
803:
792:
786:
785:
783:
782:
766:
760:
759:
757:
756:
746:
740:
739:
737:
735:
710:
704:
703:
692:
686:
685:
683:
681:
662:
656:
655:
653:
651:
640:
595:
565:
513:keep the kernel
489:
468:
464:
460:
439:
435:
419:
415:
407:
403:
391:
387:
383:
379:
375:
370:FreeBSD packages
363:
358:operating system
355:
339:
332:
329:
326:
323:
320:
317:
314:
311:
308:
305:
298:
249:
244:extension). The
243:
239:
235:
234:/usr/lib/modules
231:
227:
107:kernel extension
74:, or for adding
60:operating system
21:
3463:
3462:
3458:
3457:
3456:
3454:
3453:
3452:
3428:
3427:
3426:
3417:
3357:
3256:
3191:
3135:
3060:
2976:
2948:
2918:
2909:Version History
2875:
2868:
2838:
2833:
2810:
2808:
2794:
2781:
2765:
2712:
2688:
2672:User-mode Linux
2601:
2506:
2214:
2122:
2115:
2034:
2012:
1949:
1861:
1838:
1815:
1777:
1725:
1677:
1668:Version history
1599:
1594:
1564:
1559:
1501:
1462:Defragmentation
1447:
1438:
1424:Protection ring
1393:
1380:
1352:
1345:
1267:
1241:
1179:
1118:
1072:
1067:
1037:
1016:
1015:
1014:
1010:
1000:
998:
986:
985:
981:
971:
969:
956:
955:
951:
942:
940:
934:
933:
929:
919:
917:
908:
907:
903:
898:Wayback Machine
889:
885:
875:
873:
863:
862:
858:
849:
847:
842:
841:
837:
828:
826:
812:
811:
807:
794:
793:
789:
780:
778:
768:
767:
763:
754:
752:
748:
747:
743:
733:
731:
712:
711:
707:
702:. June 7, 2001.
700:Hewlett-Packard
694:
693:
689:
679:
677:
664:
663:
659:
649:
647:
642:
641:
637:
633:
621:
612:
593:
589:Apple Developer
577:
563:
556:
532:
487:
475:
466:
462:
458:
455:
446:
437:
433:
426:
417:
413:
405:
401:
398:
389:
385:
381:
377:
373:
361:
353:
346:
337:
334:
333:
330:
327:
324:
321:
318:
315:
312:
309:
306:
303:
296:
293:null terminator
285:
275:(GPL) modules.
261:
245:
241:
237:
233:
229:
223:
220:
215:
184:
175:
54:, or so-called
28:
23:
22:
15:
12:
11:
5:
3461:
3459:
3451:
3450:
3445:
3440:
3430:
3429:
3423:
3422:
3419:
3418:
3416:
3415:
3410:
3405:
3400:
3395:
3390:
3373:
3367:
3365:
3359:
3358:
3356:
3355:
3350:
3348:Gentoo/FreeBSD
3345:
3340:
3335:
3334:
3333:
3328:
3318:
3313:
3308:
3303:
3298:
3293:
3288:
3287:
3286:
3275:
3273:
3264:
3258:
3257:
3255:
3254:
3249:
3244:
3239:
3234:
3229:
3224:
3219:
3214:
3212:Jordan Hubbard
3209:
3207:Matthew Dillon
3203:
3201:
3197:
3196:
3193:
3192:
3190:
3189:
3184:
3179:
3174:
3169:
3164:
3159:
3154:
3149:
3143:
3141:
3137:
3136:
3134:
3133:
3128:
3127:
3126:
3121:
3111:
3106:
3101:
3096:
3091:
3086:
3081:
3076:
3074:802.11 drivers
3070:
3068:
3062:
3061:
3059:
3058:
3053:
3048:
3043:
3042:
3041:
3031:
3030:
3029:
3019:
3018:
3017:
3012:
3007:
3002:
2997:
2986:
2984:
2978:
2977:
2975:
2974:
2969:
2964:
2958:
2956:
2954:Virtualisation
2950:
2949:
2947:
2946:
2941:
2935:
2933:
2924:
2920:
2919:
2917:
2916:
2911:
2906:
2901:
2896:
2891:
2885:
2883:
2877:
2876:
2869:
2867:
2866:
2859:
2852:
2844:
2835:
2834:
2832:
2831:
2819:
2805:
2790:
2787:
2786:
2783:
2782:
2780:
2779:
2773:
2771:
2767:
2766:
2764:
2763:
2758:
2757:
2756:
2751:
2743:
2742:
2741:
2733:
2728:
2723:
2717:
2715:
2704:
2698:
2697:
2694:
2693:
2690:
2689:
2687:
2686:
2685:
2684:
2679:
2674:
2669:
2664:
2656:
2655:
2654:
2649:
2644:
2639:
2629:
2628:
2627:
2622:
2611:
2609:
2607:Virtualization
2600:
2599:
2598:
2597:
2592:
2581:
2580:
2579:
2574:
2569:
2564:
2554:
2553:
2552:
2547:
2542:
2532:
2531:
2530:
2525:
2514:
2512:
2508:
2507:
2505:
2504:
2499:
2494:
2489:
2484:
2479:
2473:
2472:
2467:
2466:
2465:
2460:
2453:Device drivers
2449:
2448:
2443:
2438:
2433:
2428:
2423:
2418:
2408:
2407:
2402:
2397:
2395:SCHED_DEADLINE
2392:
2390:O(1) scheduler
2387:
2385:O(n) scheduler
2382:
2380:Noop scheduler
2377:
2371:
2365:
2360:
2353:
2352:
2347:
2342:
2337:
2332:
2327:
2322:
2317:
2312:
2307:
2302:
2297:
2292:
2286:
2281:
2276:
2271:
2266:
2261:
2256:
2251:
2246:
2241:
2236:
2234:Kernel modules
2230:
2228:
2224:
2223:
2220:
2219:
2216:
2215:
2213:
2212:
2207:
2202:
2197:
2192:
2187:
2182:
2181:
2180:
2175:
2170:
2165:
2160:
2155:
2154:
2153:
2143:
2138:
2127:
2125:
2117:
2116:
2114:
2113:
2108:
2107:
2106:
2096:
2091:
2086:
2083:
2080:
2075:
2072:
2069:
2064:
2059:
2054:
2049:
2044:
2040:
2038:
2024:
2018:
2017:
2014:
2013:
2011:
2010:
2005:
2000:
1995:
1990:
1988:Memory barrier
1985:
1980:
1975:
1970:
1965:
1959:
1957:
1951:
1950:
1948:
1947:
1946:
1945:
1942:
1937:
1932:
1927:
1922:
1917:
1907:
1906:
1905:
1902:
1897:
1892:
1887:
1882:
1877:
1866:
1864:
1853:
1846:
1840:
1839:
1837:
1836:
1831:
1825:
1823:
1817:
1816:
1814:
1813:
1808:
1803:
1798:
1793:
1787:
1785:
1779:
1778:
1776:
1775:
1770:
1765:
1760:
1755:
1750:
1744:
1742:
1735:
1731:
1730:
1727:
1726:
1724:
1723:
1722:
1721:
1713:
1712:
1711:
1706:
1701:
1696:
1685:
1683:
1679:
1678:
1676:
1675:
1670:
1665:
1660:
1655:
1650:
1645:
1640:
1635:
1630:
1625:
1620:
1614:
1612:
1605:
1601:
1600:
1595:
1593:
1592:
1585:
1578:
1570:
1561:
1560:
1558:
1557:
1552:
1551:
1550:
1548:User interface
1545:
1535:
1530:
1525:
1520:
1515:
1509:
1507:
1503:
1502:
1500:
1499:
1494:
1489:
1484:
1479:
1474:
1472:File attribute
1469:
1464:
1459:
1453:
1451:
1440:
1439:
1437:
1436:
1434:Virtual memory
1431:
1426:
1421:
1416:
1411:
1406:
1400:
1398:
1386:
1385:
1382:
1381:
1379:
1378:
1373:
1368:
1363:
1357:
1355:
1347:
1346:
1344:
1343:
1338:
1333:
1328:
1323:
1318:
1313:
1308:
1306:Context switch
1303:
1288:
1286:
1279:
1273:
1272:
1269:
1268:
1266:
1265:
1260:
1255:
1249:
1247:
1243:
1242:
1240:
1239:
1234:
1229:
1224:
1219:
1214:
1209:
1204:
1198:
1196:
1187:
1181:
1180:
1178:
1177:
1172:
1167:
1162:
1157:
1152:
1147:
1142:
1137:
1132:
1126:
1124:
1120:
1119:
1117:
1116:
1111:
1106:
1101:
1096:
1091:
1086:
1080:
1078:
1074:
1073:
1068:
1066:
1065:
1058:
1051:
1043:
1036:
1035:
1008:
979:
949:
927:
901:
883:
856:
835:
805:
787:
773:. kernel.org.
761:
741:
705:
687:
657:
634:
632:
629:
628:
627:
620:
617:
611:
608:
576:
573:
555:
552:
531:
528:
474:
471:
454:
451:
445:
442:
425:
422:
397:
394:
392:) or by hand.
362:/boot/modules/
345:
342:
304:MODULE_LICENSE
302:
297:MODULE_LICENSE
289:device drivers
284:
281:
260:
259:License issues
257:
219:
216:
214:
211:
183:
180:
174:
171:
163:kernel modules
68:device drivers
26:
24:
14:
13:
10:
9:
6:
4:
3:
2:
3460:
3449:
3446:
3444:
3441:
3439:
3436:
3435:
3433:
3414:
3411:
3409:
3406:
3404:
3401:
3399:
3398:OpenServer 10
3396:
3394:
3391:
3389:
3385:
3381:
3377:
3374:
3372:
3369:
3368:
3366:
3364:
3360:
3354:
3351:
3349:
3346:
3344:
3341:
3339:
3336:
3332:
3329:
3327:
3324:
3323:
3322:
3319:
3317:
3314:
3312:
3309:
3307:
3304:
3302:
3299:
3297:
3296:DragonFly BSD
3294:
3292:
3289:
3285:
3282:
3281:
3280:
3277:
3276:
3274:
3272:
3268:
3265:
3263:
3259:
3253:
3250:
3248:
3247:Robert Watson
3245:
3243:
3240:
3238:
3235:
3233:
3230:
3228:
3225:
3223:
3220:
3218:
3215:
3213:
3210:
3208:
3205:
3204:
3202:
3198:
3188:
3185:
3183:
3180:
3178:
3175:
3173:
3170:
3168:
3165:
3163:
3160:
3158:
3155:
3153:
3150:
3148:
3145:
3144:
3142:
3138:
3132:
3129:
3125:
3122:
3120:
3117:
3116:
3115:
3112:
3110:
3107:
3105:
3102:
3100:
3097:
3095:
3092:
3090:
3087:
3085:
3082:
3080:
3077:
3075:
3072:
3071:
3069:
3067:
3063:
3057:
3054:
3052:
3049:
3047:
3044:
3040:
3037:
3036:
3035:
3032:
3028:
3025:
3024:
3023:
3020:
3016:
3013:
3011:
3008:
3006:
3003:
3001:
2998:
2996:
2993:
2992:
2991:
2988:
2987:
2985:
2983:
2979:
2973:
2970:
2968:
2965:
2963:
2960:
2959:
2957:
2955:
2951:
2945:
2944:ULE scheduler
2942:
2940:
2937:
2936:
2934:
2932:
2928:
2925:
2921:
2915:
2912:
2910:
2907:
2905:
2904:FreeBSD Ports
2902:
2900:
2897:
2895:
2892:
2890:
2887:
2886:
2884:
2882:
2878:
2873:
2865:
2860:
2858:
2853:
2851:
2846:
2845:
2842:
2830:
2829:
2820:
2818:
2817:
2806:
2804:
2803:
2798:
2792:
2791:
2788:
2778:
2775:
2774:
2772:
2768:
2762:
2759:
2755:
2752:
2750:
2747:
2746:
2744:
2740:
2737:
2736:
2735:Thin client:
2734:
2732:
2729:
2727:
2724:
2722:
2719:
2718:
2716:
2714:
2708:
2705:
2703:
2699:
2683:
2680:
2678:
2675:
2673:
2670:
2668:
2665:
2663:
2660:
2659:
2657:
2653:
2650:
2648:
2645:
2643:
2640:
2638:
2637:Linux-VServer
2635:
2634:
2633:
2630:
2626:
2623:
2621:
2618:
2617:
2616:
2613:
2612:
2610:
2608:
2604:
2596:
2593:
2591:
2588:
2587:
2585:
2582:
2578:
2575:
2573:
2570:
2568:
2565:
2563:
2560:
2559:
2558:
2555:
2551:
2548:
2546:
2543:
2541:
2538:
2537:
2536:
2533:
2529:
2526:
2524:
2521:
2520:
2519:
2516:
2515:
2513:
2509:
2503:
2500:
2498:
2495:
2493:
2490:
2488:
2485:
2483:
2480:
2478:
2475:
2474:
2471:
2468:
2464:
2461:
2459:
2456:
2455:
2454:
2451:
2450:
2447:
2444:
2442:
2439:
2437:
2434:
2432:
2429:
2427:
2424:
2422:
2419:
2417:
2413:
2410:
2409:
2406:
2403:
2401:
2398:
2396:
2393:
2391:
2388:
2386:
2383:
2381:
2378:
2375:
2372:
2369:
2366:
2364:
2361:
2358:
2355:
2354:
2351:
2348:
2346:
2343:
2341:
2338:
2336:
2333:
2331:
2328:
2326:
2323:
2321:
2318:
2316:
2313:
2311:
2308:
2306:
2303:
2301:
2298:
2296:
2293:
2290:
2287:
2285:
2282:
2280:
2277:
2275:
2272:
2270:
2267:
2265:
2262:
2260:
2259:Device mapper
2257:
2255:
2252:
2250:
2247:
2245:
2242:
2240:
2237:
2235:
2232:
2231:
2229:
2225:
2211:
2208:
2206:
2203:
2201:
2198:
2196:
2193:
2191:
2188:
2186:
2183:
2179:
2176:
2174:
2171:
2169:
2166:
2164:
2161:
2159:
2156:
2152:
2149:
2148:
2147:
2144:
2142:
2139:
2137:
2134:
2133:
2132:
2129:
2128:
2126:
2124:
2118:
2112:
2109:
2105:
2102:
2101:
2100:
2097:
2095:
2092:
2090:
2087:
2084:
2081:
2079:
2076:
2073:
2070:
2068:
2065:
2063:
2060:
2058:
2055:
2053:
2050:
2048:
2045:
2042:
2041:
2039:
2037:
2032:
2028:
2025:
2023:
2019:
2009:
2006:
2004:
2001:
1999:
1996:
1994:
1991:
1989:
1986:
1984:
1981:
1979:
1976:
1974:
1971:
1969:
1966:
1964:
1961:
1960:
1958:
1956:
1952:
1943:
1941:
1938:
1936:
1933:
1931:
1928:
1926:
1923:
1921:
1918:
1916:
1913:
1912:
1911:
1908:
1903:
1901:
1898:
1896:
1893:
1891:
1888:
1886:
1883:
1881:
1878:
1876:
1873:
1872:
1871:
1868:
1867:
1865:
1863:
1857:
1854:
1850:
1847:
1845:
1841:
1835:
1832:
1830:
1827:
1826:
1824:
1822:
1818:
1812:
1809:
1807:
1804:
1802:
1799:
1797:
1794:
1792:
1789:
1788:
1786:
1784:
1780:
1774:
1771:
1769:
1766:
1764:
1761:
1759:
1756:
1754:
1751:
1749:
1746:
1745:
1743:
1739:
1736:
1732:
1720:
1717:
1716:
1714:
1710:
1707:
1705:
1702:
1700:
1697:
1695:
1694:
1690:
1689:
1687:
1686:
1684:
1680:
1674:
1671:
1669:
1666:
1664:
1661:
1659:
1656:
1654:
1651:
1649:
1646:
1644:
1641:
1639:
1636:
1634:
1631:
1629:
1626:
1624:
1621:
1619:
1616:
1615:
1613:
1609:
1606:
1602:
1598:
1591:
1586:
1584:
1579:
1577:
1572:
1571:
1568:
1556:
1553:
1549:
1546:
1544:
1541:
1540:
1539:
1536:
1534:
1531:
1529:
1526:
1524:
1521:
1519:
1516:
1514:
1511:
1510:
1508:
1504:
1498:
1495:
1493:
1490:
1488:
1485:
1483:
1480:
1478:
1475:
1473:
1470:
1468:
1465:
1463:
1460:
1458:
1455:
1454:
1452:
1450:
1445:
1441:
1435:
1432:
1430:
1427:
1425:
1422:
1420:
1417:
1415:
1414:Memory paging
1412:
1410:
1407:
1405:
1402:
1401:
1399:
1396:
1391:
1387:
1377:
1374:
1372:
1369:
1367:
1364:
1362:
1359:
1358:
1356:
1354:
1348:
1342:
1339:
1337:
1334:
1332:
1329:
1327:
1324:
1322:
1319:
1317:
1314:
1312:
1309:
1307:
1304:
1301:
1297:
1293:
1290:
1289:
1287:
1283:
1280:
1278:
1274:
1264:
1261:
1259:
1256:
1254:
1253:Device driver
1251:
1250:
1248:
1244:
1238:
1235:
1233:
1230:
1228:
1225:
1223:
1220:
1218:
1215:
1213:
1210:
1208:
1205:
1203:
1200:
1199:
1197:
1195:
1194:Architectures
1191:
1188:
1186:
1182:
1176:
1173:
1171:
1168:
1166:
1163:
1161:
1158:
1156:
1153:
1151:
1148:
1146:
1143:
1141:
1138:
1136:
1133:
1131:
1128:
1127:
1125:
1121:
1115:
1112:
1110:
1107:
1105:
1102:
1100:
1097:
1095:
1092:
1090:
1087:
1085:
1082:
1081:
1079:
1075:
1071:
1064:
1059:
1057:
1052:
1050:
1045:
1044:
1041:
1033:
1029:
1025:
1022: –
1019:
1012:
1009:
1001:September 27,
996:
993:
989:
983:
980:
972:September 29,
967:
963:
959:
953:
950:
939:. outflux.net
938:
931:
928:
915:
911:
905:
902:
899:
895:
892:
887:
884:
871:
867:
860:
857:
845:
839:
836:
824:
820:
816:
809:
806:
801:
797:
791:
788:
776:
772:
765:
762:
751:
745:
742:
729:
725:
721:
720:
715:
709:
706:
701:
697:
691:
688:
675:
671:
667:
661:
658:
645:
639:
636:
630:
626:
623:
622:
618:
616:
609:
607:
603:
601:
597:
590:
586:
582:
581:OS X Yosemite
574:
572:
569:
561:
553:
551:
549:
545:
541:
537:
529:
527:
524:
520:
516:
512:
508:
504:
500:
495:
493:
484:
480:
472:
470:
452:
450:
443:
441:
431:
423:
421:
411:
395:
393:
371:
367:
366:FreeBSD ports
360:, or usually
359:
354:/boot/kernel/
351:
343:
341:
300:
294:
290:
282:
280:
276:
274:
270:
266:
265:derived works
258:
256:
254:
248:
226:
217:
212:
210:
208:
204:
200:
196:
192:
190:
189:fragmentation
182:Disadvantages
181:
179:
172:
170:
168:
164:
160:
156:
152:
148:
144:
140:
136:
132:
128:
124:
120:
116:
112:
108:
104:
100:
96:
92:
88:
85:Most current
83:
81:
77:
73:
69:
65:
61:
57:
53:
49:
45:
41:
37:
33:
19:
18:Kernel module
3443:Linux kernel
3343:GNU/kFreeBSD
3176:
3039:Soft updates
2826:
2807:
2793:
2523:Linux kernel
2441:Tomoyo Linux
2233:
2036:File systems
1691:
1643:SCO disputes
1604:Organization
1597:Linux kernel
1449:file systems
1341:Time-sharing
1257:
1011:
999:. Retrieved
982:
970:. Retrieved
961:
952:
941:. Retrieved
930:
918:. Retrieved
914:the original
904:
886:
874:. Retrieved
859:
848:. Retrieved
846:. 2007-07-26
838:
827:. Retrieved
808:
799:
790:
779:. Retrieved
764:
753:. Retrieved
744:
732:. Retrieved
717:
708:
690:
678:. Retrieved
660:
648:. Retrieved
638:
613:
604:
578:
557:
533:
496:
476:
456:
447:
427:
399:
347:
335:
286:
277:
262:
230:/lib/modules
221:
187:
185:
176:
166:
162:
158:
154:
146:
142:
134:
126:
118:
110:
106:
98:
94:
89:systems and
84:
76:system calls
55:
50:the running
39:
35:
29:
3363:proprietary
3316:MidnightBSD
3271:open-source
3262:Derivatives
3252:Dru Lavigne
3232:Sam Leffler
3222:Mike Karels
2528:Linux-libre
2421:Exec Shield
2300:Framebuffer
2003:Video4Linux
1860:System Call
1688:Developers
1628:Linus's law
1467:Device file
1457:Boot loader
1371:Round-robin
1296:Cooperative
1232:Rump kernel
1222:Multikernel
1212:Microkernel
1109:Usage share
1018:kextload(8)
876:October 30,
868:. LWN.net.
646:. Apple Inc
585:code-signed
467:/usr/kernel
269:proprietary
199:filesystems
72:filesystems
56:base kernel
44:object file
3432:Categories
3291:DesktopBSD
3227:Ben Laurie
3066:Networking
2931:Scheduling
2923:Subsystems
2615:Hypervisor
2577:PREEMPT_RT
2482:KernelCare
2470:Raw device
2400:SCHED_FIFO
2310:KMS driver
2227:Components
2082:securityfs
1968:Crypto API
1910:Linux-only
1796:System.map
1699:kernel.org
1658:menuconfig
1653:GNU GPL v2
1397:protection
1353:algorithms
1351:Scheduling
1300:Preemptive
1246:Components
1217:Monolithic
1084:Comparison
992:Apple Inc.
943:2020-10-05
920:January 4,
850:2011-10-03
829:2011-10-03
781:2011-10-03
755:2020-10-05
670:Apple Inc.
631:References
596:El Capitan
201:have been
173:Advantages
139:Windows NT
3084:Bluetooth
3022:disklabel
2754:LYME-LYCE
2477:initramfs
2446:Linux PAM
2315:Netfilter
2185:libcgroup
2151:libhybris
2123:libraries
2071:hugetlbfs
2022:Userspace
1955:In-kernel
1940:readahead
1862:Interface
1811:initramfs
1768:SystemTap
1741:Debugging
1734:Technical
1673:Criticism
1487:Partition
1404:Bus error
1331:Real-time
1311:Interrupt
1237:Unikernel
1202:Exokernel
724:Microsoft
568:initramfs
536:processes
382:kldunload
310:"GPL
295:in their
87:Unix-like
70:) and/or
32:computing
3353:XigmaNAS
3326:OPNsense
3321:m0n0wall
3311:GhostBSD
3306:FreeSBIE
3167:portsnap
3104:Netgraph
3094:IPFilter
2828:Category
2770:Adopters
2745:Server:
2726:Embedded
2702:Adoption
2595:PSXLinux
2518:Mainline
2511:Variants
2463:graphics
2416:AppArmor
2405:SCHED_RR
2325:nftables
2269:dm-crypt
2264:dm-cache
2210:liburing
2200:libevdev
2158:dietlibc
2047:configfs
1973:io uring
1533:Live USB
1395:resource
1285:Concepts
1123:Variants
1104:Timeline
995:Archived
966:Archived
894:Archived
870:Archived
823:Archived
775:Archived
728:Archived
674:Archived
650:13 March
619:See also
544:rootkits
530:Security
488:.modinfo
406:kextstat
402:kextload
225:modprobe
64:hardware
58:, of an
42:) is an
3438:FreeBSD
3388:watchOS
3331:pfSense
3301:FreeNAS
3162:OpenBSM
3157:OpenPAM
2982:Storage
2881:FreeBSD
2874:Project
2872:FreeBSD
2761:Devices
2721:Desktop
2682:coLinux
2677:MkLinux
2662:L4Linux
2590:ÎĽClinux
2572:Xenomai
2562:RTLinux
2502:Ksplice
2431:SELinux
2426:seccomp
2376:(EEVDF)
2320:Netlink
2249:Console
2244:cgroups
2195:libalsa
2121:Wrapper
2099:systemd
2062:debugfs
2031:Daemons
1993:New API
1935:inotify
1930:dnotify
1834:x32 ABI
1791:vmlinux
1783:Startup
1682:Support
1528:Live CD
1482:Journal
1446:access,
1444:Storage
1321:Process
1227:vkernel
1094:History
1077:General
819:LWN.net
610:Solaris
562:option
523:FreeBSD
511:Windows
503:FreeBSD
499:Solaris
463:/kernel
453:Solaris
444:VxWorks
434:modules
424:NetWare
410:bundles
386:kldstat
378:kldload
350:FreeBSD
344:FreeBSD
325:\"
319:\"
203:mounted
191:penalty
151:VxWorks
103:FreeBSD
3386:, and
3338:TrueOS
3284:Darwin
3200:People
3187:systat
3182:moused
3172:kqueue
3152:DTrace
3147:busdma
3124:pfsync
2962:chroot
2731:Gaming
2713:of use
2667:ELinOS
2658:Other
2652:OpenVZ
2642:Lguest
2586:-less
2497:kpatch
2492:kGraft
2458:802.11
2254:bcache
2205:libusb
2190:libdrm
2178:Newlib
2163:EGLIBC
2146:Bionic
2141:uClibc
2111:Kmscon
2085:sockfs
2078:procfs
2074:pipefs
2057:devpts
1983:kernfs
1925:splice
1880:select
1852:Kernel
1806:initrd
1801:dracut
1753:ftrace
1715:Users
1648:Linaro
1611:Kernel
1336:Thread
1207:Hybrid
1185:Kernel
1032:Manual
1024:Darwin
734:May 5,
680:May 5,
566:. An
560:sysctl
509:, and
195:memory
80:memory
52:kernel
48:extend
3376:macOS
3371:Junos
3140:Other
3027:fdisk
3015:vinum
2995:raid5
2972:bhyve
2711:Range
2550:SLURM
2487:kexec
2436:Smack
2370:(CFS)
2350:zswap
2291:(KSM)
2284:evdev
2239:BlueZ
2168:klibc
2136:glibc
2094:tmpfs
2089:sysfs
2052:devfs
2043:bpffs
1920:epoll
1915:futex
1895:close
1875:ioctl
1870:POSIX
1758:kdump
1538:Shell
1477:Inode
1028:macOS
575:macOS
554:Linux
540:files
507:macOS
414:.kext
396:macOS
247:lsmod
218:Linux
149:) in
131:HP-UX
115:macOS
113:) in
101:) in
3384:tvOS
3131:SCTP
3119:CARP
3109:NDIS
3099:ipfw
3079:ALTQ
3010:LVM2
3005:geli
3000:GBDE
2990:GEOM
2967:jail
2939:ALTQ
2870:The
2749:LAMP
2739:LTSP
2567:RTAI
2345:zram
2340:SLUB
2335:perf
2279:EDAC
2173:musl
2104:udev
2067:FUSE
1963:ALSA
1900:sync
1890:read
1885:open
1844:APIs
1821:ABIs
1748:CRIU
1704:LKML
1099:List
1026:and
1003:2012
974:2016
922:2013
878:2012
736:2013
682:2013
652:2021
594:OS X
517:and
438:.NLM
253:GRUB
167:KMOD
157:(or
141:and
111:kext
66:(as
34:, a
3380:iOS
3279:XNU
3177:KLD
3089:BPF
3051:ZFS
3046:VFS
3034:UFS
2647:LXC
2625:Xen
2620:KVM
2584:MMU
2540:INK
2305:LVM
2295:LIO
2274:DRM
2008:IIO
1998:RCU
1978:DRM
1773:BPF
1638:Tux
1555:PXE
1543:CLI
1523:HAL
1513:API
1316:IPC
579:In
538:or
519:ABI
515:API
492:ELF
483:ABI
481:or
479:API
374:.ko
368:or
322:GPL
238:.ko
232:or
207:TLB
169:).
159:KLM
147:DKM
137:in
129:in
123:AIX
121:in
99:kld
40:LKM
30:In
3434::
3382:,
3378:,
3114:pf
2414::
1298:,
990:.
960:.
821:.
817:.
798:.
722:.
716:.
698:.
668:.
602:.
505:,
501:,
338:\0
331:);
313:\0
242:.o
133:,
125:,
105:,
2863:e
2856:t
2849:v
2359::
2033:,
1944:…
1904:…
1589:e
1582:t
1575:v
1392:,
1302:)
1294:(
1062:e
1055:t
1048:v
1005:.
976:.
946:.
924:.
880:.
853:.
832:.
802:.
784:.
758:.
738:.
684:.
654:.
307:(
165:(
145:(
109:(
97:(
38:(
20:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.