m.kelas-karyawan-ftumj.prestasi.web.id Layanan Informasi 17 Jam
Telp/Fax : 021-8762002, 8762003, 8762004, 87912360
HP/SMS : 081 1110 4824 27, 0812 9526 2009, 08523 1234 000
WhatsApp : 0817 0816 486, 0812 9526 2009
email : _Hubungi Kami__ silahkan klik
Chatting dengan Staf :
ggkarir.com
ggiklan.com
Pilih Bahasa :   ID   EN   Permintaan Katalog / Brosur (GRATIS via POS)   Kelas Karyawan   Reguler
D3 Komputer AkuntansiD3 Analis Farmasi dan Makanan (Anafarma)S1 Teknik Komputer / Sistem KomputerS1 PsikologiS1 Kesehatan MasyarakatS1 Ilmu Administrasi Bisnis / NiagaS1 Agroteknologi (Agroindustri, Teknologi Industri Pertanian)AstronomiAgamaDebat Musik, FilmSemua Debat Forum

   
Cari  
    Komputer Sains

    Sebelumnya  (ln (Unix)) (Local Mail Transfer Protocol)  Berikutnya    

Loadable kernel module

In 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 and kernel extension (kext) in OS X. They are also known as Kernel Loadable Modules (or KLM), and simply as Kernel Modules (KMOD).

Contents

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 memory by 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).[1] 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).

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[2] in the running kernel—meaning that any problems or bugs experienced will be less likely to be investigated by the maintainers.[3][4] 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 a NULL terminator in their MODULE_LICENSE:

MODULE_LICENSE("GPL\0for 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".[5]

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 or FreeBSD 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 the kextstat 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.

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, FreeBSD 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.

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 their processes 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 help privilege 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.[6]

Linux

Linux allows disabling module loading via /proc/sys/kernel/modules_disabled. [7] 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.[8] 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.[9]

See also

References

  1. ^ "The Linux Kernel Module Programming Guide, section 2.2 "Compiling Kernel Modules"". Retrieved 2011-10-14. 
  2. ^ Linus Torvalds, et al (2011-06-21). "Documentation/oops-tracing.txt". kernel.org. Retrieved 2011-10-03. 
  3. ^ Jonathan Corbet (2006-03-24). "Tainting from user space". LWN.net. Retrieved 2011-10-03. 
  4. ^ "Novell support documentation: Tainted kernel". 2007-07-26. Retrieved 2011-10-03. 
  5. ^ Jonathan Corbet (April 27, 2004). "Being honest with MODULE_LICENSE". LWN.net. Retrieved October 30, 2012. 
  6. ^ Exploiting Loadable Kernel Modules
  7. ^ "Sysctl/kernel.txt". Retrieved January 4, 2013. 
  8. ^ "Info.plist Properties for Kernel Extensions". Apple Inc.. Retrieved September 27, 2012. 
  9. ^ kextload(8) – Darwin and Mac OS X System Manager's Manual

External links

    Sebelumnya  (ln (Unix)) (Local Mail Transfer Protocol)  Berikutnya    





Tags: Loadable kernel module, Komputer Sains, 2243, Loadable kernel module In 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 an, Loadable kernel module, Bahasa Indonesia, Contoh Instruksi, Tutorial, Referensi, Buku, Petunjuk m.kelas karyawan ftumj, prestasi.web.id
 Download Brosur / Katalog    Peluang Karir    Program Magister Manajemen (MM)    Pusat Ensiklopedi Bebas    Kuliah Wiraswasta    Soal-Jawab Tes Psikologi    Kuliah Tanpa Uang
Program Kelas Reguler (Hybrid)

Koleksi Jenis Foto
Penerimaan Mahasiswa/i
Program Studi
Layanan + Download
Daftar Situs Kuliah Karyawan
Daftar Situs Perkuliahan Shift
Daftar Situs Semua PTS
Daftar Situs Program Reguler Pagi
Daftar Situs Program Pascasarjana (S2)

 Berbagai Perdebatan    Tutorial Sistem Komputer    Jadwal Sholat    Al Qur'an Online    Program Perkuliahan Shift    Kelas Reguler Pagi    Semua Reklame    Program Perkuliahan Hybrid di 112 PTS Terbaik    Try Out Online Gratis    Pendaftaran Online    Permintaan Beasiswa Kuliah
Sampaikan ke Rekan Anda
Nama Anda

Email Anda

Email Rekan 1

Email Rekan 2 (tidak wajib)

Email Rekan 3 (tidak wajib)
▨ harus diisi dengan benar

Permintaan Katalog / Brosur
(GRATIS via POS)
Nama Lengkap

Alamat Penerima

Provinsi + Kota

Kode Pos

Email (tidak wajib)

⌽ harus diisi lengkap & jelas
Atau kirimkan nama dan
alamat lengkap via SMS ke HP:
0811 1990 9026


Download BROSUR
Brosur Kelas Karyawan
Gabungan Seluruh Wilayah Indonesia

pdf (11,2 MB)ZIP (8,8 MB)
Image/jpg (36,2 MB)
Brosur Kelas Karyawan
JABODETABEK

pdf (5,5 MB)ZIP (4,4 MB)
Image/jpg (13,2 MB)
Brosur Kelas Karyawan
DIY,JATENG,JATIM & BALI

pdf (4,4 MB)ZIP (3,5 MB)
Image/jpg (14,5 MB)
Brosur Kelas Karyawan
JAWA BARAT

pdf (2,8 MB)ZIP (2,2 MB)
Image/jpg (7,1 MB)
Brosur Kelas Karyawan
SULAWESI

pdf (1,9 MB)ZIP (1,5 MB)
Image/jpg (5,6 MB)
Brosur Kelas Karyawan
SUMATERA & BATAM

pdf (2,2 MB)ZIP (1,7 MB)
Image/jpg (6,5 MB)
Brosur Kuliah Reguler
pdf (4,1 Mb)ZIP (8,4 Mb)
Strategi Meningkatkan
Kualitas Pendidikan, Pendapatan dan Sumber Daya PTS

pdf(6 Mb)Image/jpg(16 Mb)

STRATEGI Meningkatkan
Kualitas Pendidikan, Pendapatan dan Sumber Daya PTS
http://kpt.co.id
Terobosan Baru

PT. Gilland Ganesha
Membutuhkan Segera

  • Design Grafis
  • Web Programmer

Penjelasan Lebih Lanjut di :
Info kerja

Arti warna kucing, jadwal vaksinasi kucing, kumpulan foto kucing, dsb.
155 Ras Kucing Populer

Twitter Kuliah Karyawan

Tautan Elok
silakan klik
Sewa Reseller Tanzania
Semua Referensi Dunia

kuliahkaryawanbatam.com  |  peradaban.web.id  |  ikipwidyadarma.web.id  |  magister-jgu.web.id  |  stieganesha.web.id  |  stiamyb.web.id  |  mm-stieganesha.web.id  |  p2k.cyber-univ.ac.id  |  p2k.sebi.ac.id  |  stiepasim.web.id  |  s2-uwks.web.id