SlideShare une entreprise Scribd logo
1  sur  4
Télécharger pour lire hors ligne
Open Course by Ferdian Sonatha , Padepokan Kanuragan Blankon Malang
http://malang.di.blankon.in/opencourse/
Loadable kernel module
n computing, a loadable kernel module (or LKM) is an object file that contains code to extend
the running kernel, or so-called base kernel, of an operating system. LKMs are typically used to
add support for new hardware and/or filesystems, or for adding system calls. When the
functionality provided by a LKM is no longer required, it can be unloaded in order to
free memory and other resources.
Most current Unix-like systems and Microsoft Windows support loadable kernel modules,
although they might use a different name for them, such as kernel loadable module(kld)
in FreeBSD, kernel extension (kext) in OS X
[1]
and kernel-mode driver in Windows NT.
[2]
They
are also known as Kernel Loadable Modules (or KLM), and simply as Kernel
Modules (KMOD).
Advantages
Without loadable kernel modules, an operating system would have to include all possible
anticipated functionality already 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 kernel every time they require new functionality. Most operating
systems supporting loadable kernel modules will include modules to support most desired
functionality.
Disadvantages
One minor criticism of preferring a modular kernel over a static kernel is the so-
called Fragmentation Penalty. The base kernel is always unpacked
into real contiguous memoryby its setup routines; so, the base kernel code is never fragmented.
Once the system is in a state where modules may be inserted—for example, once
the filesystems have been mounted that contain the modules—it is probable that any new kernel
code insertion will cause the kernel to become fragmented, thereby introducing a minor
performance penalty.[citation needed]
Implementations in different operating systems
Linux
Loadable kernel modules in Linux are loaded (and unloaded) by the modprobe command. They
are located in /lib/modules and have had the extension .ko ("kernel object") since version
2.6 (previous versions used the .o extension).
[3]
The lsmod 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 GRUB, by pressing 'e' in the GRUB start menu, then editing the kernel parameter line).
Open Course by Ferdian Sonatha , Padepokan Kanuragan Blankon Malang
http://malang.di.blankon.in/opencourse/
License issues
In the opinion of Linux maintainers, LKM are derived works of the kernel. The Linux maintainers
tolerate the distribution of proprietary modules,[citation needed]
but allow symbols to be marked as only
available to GNU General Public License (GPL) modules.
Loading a proprietary or non-GPL-compatible LKM will set a 'taint' flag
[4]
in the running kernel—
meaning that any problems or bugs experienced will be less likely to be investigated by the
maintainers.
[5][6]
LKMs effectively become part of the running kernel, so can corrupt kernel data
structures and produce bugs that may not be able to be investigated if the module is indeed
proprietary.
Linuxant controversy
In 2004, Linuxant—a consulting company that releases proprietary device drivers as loadable
kernel modules—attempted to bypass GPLONLY symbol restrictions by abusing aNULL
terminator in their MODULE_LICENSE:
MODULE_LICENSE("GPL0for files in the "GPL" directory; for others,
only LICENSE file applies");
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 (0), so it would be fooled into thinking that
the module was declaring its license to be just "GPL".[7]
FreeBSD
Kernel modules for FreeBSD are stored within /boot/kernel/ for modules distributed with
the OS, or usually /boot/modules/ for modules installed from FreeBSD ports orFreeBSD
packages, or for proprietary or otherwise binary-only modules. FreeBSD kernel modules usually
have the extension .ko. Once the machine has booted, they may be loaded with
the kldload command, unloaded with kldunload, and listed with kldstat. Modules can also
be loaded from the loader before the kernel starts, either automatically
(through /boot/loader.conf) or by hand.
OS X
Some loadable kernel modules in OS X can be loaded automatically. Loadable kernel modules
can also be loaded by the kextload command. They can be listed by thekextstat command.
Loadable kernel modules are located in application bundles with the extension .kext. Modules
supplied with the operating system are stored in the/System/Library/Extensions directory;
modules supplied by third parties are in various other directories.
Binary compatibility
Linux does not provide a stable API or ABI 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 .modinfo section of loadable ELF 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.
Open Course by Ferdian Sonatha , Padepokan Kanuragan Blankon Malang
http://malang.di.blankon.in/opencourse/
Other operating systems, such as Solaris, FreeBSD, OS X, and Windows keep the
kernel API and ABI relatively stable, thus avoiding this problem. For example, FreeBSDkernel
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.
Security
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 theirprocesses or files,
allowing them to maintain control over the system. Many rootkits make use of LKMs in this way.
Note that on most operating systems modules do not helpprivilege elevation 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.[8]
Linux
Linux allows disabling module loading via /proc/sys/kernel/modules_disabled.
[9]
An initramfs
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.
OS X
On OS X, 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.[10]
However, if
any of the files in the bundle, including the executable 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.
[11]
See also
 NetWare Loadable Module
Reference]
1. "Kernel Extension Programming Topics: Introduction". Apple Inc. September 1, 2010.
Retrieved May 5, 2013.
2. "What Determines When a Driver Is Loaded". Microsoft Developer Network. Microsoft.
November 21, 2012. Retrieved May 5, 2013.
3. "The Linux Kernel Module Programming Guide, section 2.2 "Compiling Kernel Modules"".
Retrieved 2011-10-14.
4. Linus Torvalds, et al (2011-06-21). "Documentation/oops-tracing.txt". kernel.org. Retrieved
2011-10-03.
5. Jonathan Corbet (2006-03-24). "Tainting from user space". LWN.net. Retrieved 2011-10-03.
Open Course by Ferdian Sonatha , Padepokan Kanuragan Blankon Malang
http://malang.di.blankon.in/opencourse/
6. "Novell support documentation: Tainted kernel". 2007-07-26. Retrieved 2011-10-03.
7. Jonathan Corbet (April 27, 2004). "Being honest with MODULE_LICENSE". LWN.net.
Retrieved October 30, 2012.
8. Exploiting Loadable Kernel Modules
9. "Sysctl/kernel.txt". Retrieved January 4, 2013.
10. "Info.plist Properties for Kernel Extensions". Apple Inc. Retrieved September 27, 2012.
11. kextload(8) – Darwin and Mac OS X System Manager's Manual
External links
 IBM DeveloperWorks in-depth article on LKM
 Online kext database for OSX / Hackintosh
 Ori Pomerantz, Linux Kernel Module Programming Guide
 Copyright Considerations With LKMs
[dead link]
 "Kernel Extension Programming Topics" document for OS X
 What Is A Loadable Kernel Module (LKM)?

Contenu connexe

Tendances

Tendances (19)

Walking around linux kernel
Walking around linux kernelWalking around linux kernel
Walking around linux kernel
 
kernels
 kernels kernels
kernels
 
In a monolithic kerne1
In a monolithic kerne1In a monolithic kerne1
In a monolithic kerne1
 
Windows 7 Architecture
Windows 7 ArchitectureWindows 7 Architecture
Windows 7 Architecture
 
Exokernel
ExokernelExokernel
Exokernel
 
In a monolithic kernel
In a monolithic kernelIn a monolithic kernel
In a monolithic kernel
 
Windows kernel
Windows kernelWindows kernel
Windows kernel
 
Windows Kernel-
Windows Kernel-Windows Kernel-
Windows Kernel-
 
Linux kernel
Linux kernelLinux kernel
Linux kernel
 
Microkernel architecture
Microkernel architecture Microkernel architecture
Microkernel architecture
 
Studies
StudiesStudies
Studies
 
ITT Project Information Technology Basic
ITT Project Information Technology BasicITT Project Information Technology Basic
ITT Project Information Technology Basic
 
Monolithic kernel
Monolithic kernelMonolithic kernel
Monolithic kernel
 
Operating system kernal
Operating system kernalOperating system kernal
Operating system kernal
 
OSCh20
OSCh20OSCh20
OSCh20
 
Intro to linux systems administration
Intro to linux systems administrationIntro to linux systems administration
Intro to linux systems administration
 
linux kernel overview 2013
linux kernel overview 2013linux kernel overview 2013
linux kernel overview 2013
 
Studienarb linux kernel-dev
Studienarb linux kernel-devStudienarb linux kernel-dev
Studienarb linux kernel-dev
 
Driver Programming Report
Driver Programming ReportDriver Programming Report
Driver Programming Report
 

Similaire à Load module kernel

Linux Kernel Programming
Linux Kernel ProgrammingLinux Kernel Programming
Linux Kernel Programming
Nalin Sharma
 
Linux kernel driver tutorial vorlesung
Linux kernel driver tutorial vorlesungLinux kernel driver tutorial vorlesung
Linux kernel driver tutorial vorlesung
dns -
 
Linuxdd[1]
Linuxdd[1]Linuxdd[1]
Linuxdd[1]
mcganesh
 

Similaire à Load module kernel (20)

Linux Kernel Development
Linux Kernel DevelopmentLinux Kernel Development
Linux Kernel Development
 
Linux Kernel Programming
Linux Kernel ProgrammingLinux Kernel Programming
Linux Kernel Programming
 
brief intro to Linux device drivers
brief intro to Linux device driversbrief intro to Linux device drivers
brief intro to Linux device drivers
 
Device drivers tsp
Device drivers tspDevice drivers tsp
Device drivers tsp
 
Lecture 5 Kernel Development
Lecture 5 Kernel DevelopmentLecture 5 Kernel Development
Lecture 5 Kernel Development
 
Linux Device Driver’s
Linux Device Driver’sLinux Device Driver’s
Linux Device Driver’s
 
Linux kernel driver tutorial vorlesung
Linux kernel driver tutorial vorlesungLinux kernel driver tutorial vorlesung
Linux kernel driver tutorial vorlesung
 
Linuxdd[1]
Linuxdd[1]Linuxdd[1]
Linuxdd[1]
 
Basic Linux Internals
Basic Linux InternalsBasic Linux Internals
Basic Linux Internals
 
Part 02 Linux Kernel Module Programming
Part 02 Linux Kernel Module ProgrammingPart 02 Linux Kernel Module Programming
Part 02 Linux Kernel Module Programming
 
Linux kernel Architecture and Properties
Linux kernel Architecture and PropertiesLinux kernel Architecture and Properties
Linux kernel Architecture and Properties
 
Lavigne bsdmag-jan2012
Lavigne bsdmag-jan2012Lavigne bsdmag-jan2012
Lavigne bsdmag-jan2012
 
Linux basics
Linux basics Linux basics
Linux basics
 
Managing Perl Installations: A SysAdmin's View
Managing Perl Installations: A SysAdmin's ViewManaging Perl Installations: A SysAdmin's View
Managing Perl Installations: A SysAdmin's View
 
Evolution of containers to kubernetes
Evolution of containers to kubernetesEvolution of containers to kubernetes
Evolution of containers to kubernetes
 
Linux basics
Linux basics Linux basics
Linux basics
 
Introduction To Linux Kernel Modules
Introduction To Linux Kernel ModulesIntroduction To Linux Kernel Modules
Introduction To Linux Kernel Modules
 
An Insight into the Linux Booting Process
An Insight into the Linux Booting ProcessAn Insight into the Linux Booting Process
An Insight into the Linux Booting Process
 
Root file system for embedded systems
Root file system for embedded systemsRoot file system for embedded systems
Root file system for embedded systems
 
Pppt
PpptPppt
Pppt
 

Dernier

1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
QucHHunhnh
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
heathfieldcps1
 
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
fonyou31
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
kauryashika82
 

Dernier (20)

APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across Sectors
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activity
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpin
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajan
 
Advance Mobile Application Development class 07
Advance Mobile Application Development class 07Advance Mobile Application Development class 07
Advance Mobile Application Development class 07
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..
 
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptx
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SD
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdf
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdf
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 

Load module kernel

  • 1. Open Course by Ferdian Sonatha , Padepokan Kanuragan Blankon Malang http://malang.di.blankon.in/opencourse/ Loadable kernel module n computing, a loadable kernel module (or LKM) is an object file that contains code to extend the running kernel, or so-called base kernel, of an operating system. LKMs are typically used to add support for new hardware and/or filesystems, or for adding system calls. When the functionality provided by a LKM is no longer required, it can be unloaded in order to free memory and other resources. Most current Unix-like systems and Microsoft Windows support loadable kernel modules, although they might use a different name for them, such as kernel loadable module(kld) in FreeBSD, kernel extension (kext) in OS X [1] and kernel-mode driver in Windows NT. [2] They are also known as Kernel Loadable Modules (or KLM), and simply as Kernel Modules (KMOD). Advantages Without loadable kernel modules, an operating system would have to include all possible anticipated functionality already 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 kernel every time they require new functionality. Most operating systems supporting loadable kernel modules will include modules to support most desired functionality. Disadvantages One minor criticism of preferring a modular kernel over a static kernel is the so- called Fragmentation Penalty. The base kernel is always unpacked into real contiguous memoryby its setup routines; so, the base kernel code is never fragmented. Once the system is in a state where modules may be inserted—for example, once the filesystems have been mounted that contain the modules—it is probable that any new kernel code insertion will cause the kernel to become fragmented, thereby introducing a minor performance penalty.[citation needed] Implementations in different operating systems Linux Loadable kernel modules in Linux are loaded (and unloaded) by the modprobe command. They are located in /lib/modules and have had the extension .ko ("kernel object") since version 2.6 (previous versions used the .o extension). [3] The lsmod 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 GRUB, by pressing 'e' in the GRUB start menu, then editing the kernel parameter line).
  • 2. Open Course by Ferdian Sonatha , Padepokan Kanuragan Blankon Malang http://malang.di.blankon.in/opencourse/ License issues In the opinion of Linux maintainers, LKM are derived works of the kernel. The Linux maintainers tolerate the distribution of proprietary modules,[citation needed] but allow symbols to be marked as only available to GNU General Public License (GPL) modules. Loading a proprietary or non-GPL-compatible LKM will set a 'taint' flag [4] in the running kernel— meaning that any problems or bugs experienced will be less likely to be investigated by the maintainers. [5][6] LKMs effectively become part of the running kernel, so can corrupt kernel data structures and produce bugs that may not be able to be investigated if the module is indeed proprietary. Linuxant controversy In 2004, Linuxant—a consulting company that releases proprietary device drivers as loadable kernel modules—attempted to bypass GPLONLY symbol restrictions by abusing aNULL terminator in their MODULE_LICENSE: MODULE_LICENSE("GPL0for files in the "GPL" directory; for others, only LICENSE file applies"); 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 (0), so it would be fooled into thinking that the module was declaring its license to be just "GPL".[7] FreeBSD Kernel modules for FreeBSD are stored within /boot/kernel/ for modules distributed with the OS, or usually /boot/modules/ for modules installed from FreeBSD ports orFreeBSD packages, or for proprietary or otherwise binary-only modules. FreeBSD kernel modules usually have the extension .ko. Once the machine has booted, they may be loaded with the kldload command, unloaded with kldunload, and listed with kldstat. Modules can also be loaded from the loader before the kernel starts, either automatically (through /boot/loader.conf) or by hand. OS X Some loadable kernel modules in OS X can be loaded automatically. Loadable kernel modules can also be loaded by the kextload command. They can be listed by thekextstat command. Loadable kernel modules are located in application bundles with the extension .kext. Modules supplied with the operating system are stored in the/System/Library/Extensions directory; modules supplied by third parties are in various other directories. Binary compatibility Linux does not provide a stable API or ABI 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 .modinfo section of loadable ELF 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.
  • 3. Open Course by Ferdian Sonatha , Padepokan Kanuragan Blankon Malang http://malang.di.blankon.in/opencourse/ Other operating systems, such as Solaris, FreeBSD, OS X, and Windows keep the kernel API and ABI relatively stable, thus avoiding this problem. For example, FreeBSDkernel 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. Security 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 theirprocesses or files, allowing them to maintain control over the system. Many rootkits make use of LKMs in this way. Note that on most operating systems modules do not helpprivilege elevation 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.[8] Linux Linux allows disabling module loading via /proc/sys/kernel/modules_disabled. [9] An initramfs 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. OS X On OS X, 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.[10] However, if any of the files in the bundle, including the executable 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. [11] See also  NetWare Loadable Module Reference] 1. "Kernel Extension Programming Topics: Introduction". Apple Inc. September 1, 2010. Retrieved May 5, 2013. 2. "What Determines When a Driver Is Loaded". Microsoft Developer Network. Microsoft. November 21, 2012. Retrieved May 5, 2013. 3. "The Linux Kernel Module Programming Guide, section 2.2 "Compiling Kernel Modules"". Retrieved 2011-10-14. 4. Linus Torvalds, et al (2011-06-21). "Documentation/oops-tracing.txt". kernel.org. Retrieved 2011-10-03. 5. Jonathan Corbet (2006-03-24). "Tainting from user space". LWN.net. Retrieved 2011-10-03.
  • 4. Open Course by Ferdian Sonatha , Padepokan Kanuragan Blankon Malang http://malang.di.blankon.in/opencourse/ 6. "Novell support documentation: Tainted kernel". 2007-07-26. Retrieved 2011-10-03. 7. Jonathan Corbet (April 27, 2004). "Being honest with MODULE_LICENSE". LWN.net. Retrieved October 30, 2012. 8. Exploiting Loadable Kernel Modules 9. "Sysctl/kernel.txt". Retrieved January 4, 2013. 10. "Info.plist Properties for Kernel Extensions". Apple Inc. Retrieved September 27, 2012. 11. kextload(8) – Darwin and Mac OS X System Manager's Manual External links  IBM DeveloperWorks in-depth article on LKM  Online kext database for OSX / Hackintosh  Ori Pomerantz, Linux Kernel Module Programming Guide  Copyright Considerations With LKMs [dead link]  "Kernel Extension Programming Topics" document for OS X  What Is A Loadable Kernel Module (LKM)?