Knowledge

Loadable kernel module

Source đź“ť

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:)

Index

Kernel module
computing
object file
extend
kernel
operating system
hardware
device drivers
filesystems
system calls
memory
Unix-like
Microsoft Windows
FreeBSD
macOS
AIX
HP-UX
Windows NT
VxWorks
fragmentation
memory
filesystems
mounted
TLB
modprobe
lsmod
GRUB
derived works
proprietary
GNU General Public License

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.

↑