ローダブル・カーネル・モジュール

出典: フリー百科事典『ウィキペディア(Wikipedia)』

: loadable kernel module, LKM (OS) UnixMicrosoft WindowsmacOS"kernel extension" ("kext")  (KLM)  (KMOD) LKMCPUM/BLKM

[]


使OS

[]

Linux[]


LinuxMAKEDEV[1]使udev

[]


Linux/lib/modules2.6 .ko ("kernel object")[2]ELFGNU C使ld-linux.so使modutils2.6module-init-tools[3]insmod[4]modprobe[5]insmod2.6insmod2.6insmod使FreeBSD"Dynamic Kernel Linker"[6]

lsmod[7]

[]


Linux2 (Kconfig)Makefilemodulesvmlinuxmodulesmake install

 (mainline)  (mainstream) GPLLinux[8][9] [10] [11]

[]


LinuxLKM(derivative works)[12]LinuxGPL
[]

GPLLKMTainted[13][14][15][16][17]LKM使LinuxLKM調

20012.4.10MODULE_LICENSE"GPL"LKMTainted[4][18]

MODULE_LICENSEGPLMODULE_LICENSE("GPL");BSD(BSDL)MODULE_LICENSE("BSD");GPLBSDLMODULE_LICENSE("Dual BSD/GPL");("")include/linux/module.h[19]
[]

LKMinsmodMODULE_LICENSEEXPORT_SYMBOLGPLEXPORT_SYMBOL_GPLEXPORT_SYMBOLEXPORT_SYMBOL_GPLEXPORT_SYMBOL_GPLLinuxLinux[20]APILinux
Linuxant[]

LinuxantLKMMODULE_LICENSE\02004

MODULE_LICENSE("GPL\0for files in the \"GPL\" directory; for others, only LICENSE file applies");

"GPL"  GPL  LICENSE 

CGPL[21]strcmp[22]GPLGPLGPL[23][17][24]

Linux6.6

FreeBSD[]


FreeBSDOS/boot/kernel/FreeBSD PortsFreeBSD Packages/boot/modules/FreeBSD.ko[6]kldloadkldunloadkldstat/boot/loader.conf

macOS[]


macOSLKMkextloadLKMkextstatLKMLKM.kextLKM/System/Library/Extensions

[]


LKM/

[]


LinuxLKMAPIABIELF.modinfo

FreeBSD使

SolarisWindowsOSAPIABI

[]


便LKM使LKMLKMLKM[25]

脚注・出典[編集]



(一)^  Debian. Debian -  - makedev.  packages.debian.org. 2011127

(二)^  The Linux Kernel Module Programming Guide, section 2.2 "Compiling Kernel Modules". LDP.  tldp.org. 20111014

(三)^  (201067). module-init-tools.  packages.debian.org. 2011127

(四)^ ab Man page of INSMOD.  JM Project (2001102). 2011127

(五)^  Man page of MODPROBE.  JM Project (200224). 2011127

(六)^ ab FreeBSD (2006). Dynamic Kernel Linker Facility - KLD.  www.freebsd.org. 2011127

(七)^  Manpage of LSMOD.  JM Project (200224). 2011613

(八)^  Debian. Debian --  -- linux-kbuild.  packages.debian.org. 2011128

(九)^  Debian. Debian --  -- linux-headers.  packages.debian.org. 2011128

(十)^  ModuleAssistant - Debian Wiki.  wiki.debian.org (20101010). 2011128

(11)^ Dynamic Kernel Module SupportDKMS

(12)^  Bryan Henderson (2006924). Linux Loadable Kernel Module HOWTO - 13. Copyright Considerations With LKMs.  Linux Documentation Project. 2011128

(13)^  (2011621). Documentation/oops-tracing.txt.  git.kernel.org. 2011622 Tainted kernels:

(14)^  Jonathan Corbet (2006324). Tainting from user space.  LWN.net. 2011425

(15)^  Tainted kernel.  [[ ()|]] (2010315). 2011425

(16)^  .  [[ ()|]] (2009427). 2011127Linux

(17)^ ab Joe-Barr (2004430). Linux.  SourceForge.JP Magazine. 2011128

(18)^  Linux Kernel  GPL .  Mc.N Homepage SDK. 2011127

(19)^  include/linux/module.h.  git.kernel.org (2011124). 2011128

(20)^  (2005419). Linux Kernel Watch 4 2.6.11.y2/2 - sysfsGPL.  ITmedia. 2011127 sysfsAPI

(21)^  GitHub, torvalds / linux, linux/include/linux/license.h. 20231031  license_is_gpl_compatible()

(22)^  GitHub, torvalds / linux, linux/lib/string.c. 20231031 

(23)^  Jeremy Andrews (2004427). Linux: Abusing the MODULE_LICENSE Macro (MODULE_LICENSE).  KernelTrap. 2013532011127

(24)^  Jonathan Corbet (2004427). Being honest with MODULE_LICENSE.  LWN.net. 20111214

(25)^  Michael Reiter. Exploiting Loadable Kernel Modules. 20111214

関連項目[編集]

外部リンク[編集]