Movatterモバイル変換


[0]ホーム

URL:


Zum Inhalt springen
WikipediaDie freie Enzyklopädie
Suche

Kernel-Modul

aus Wikipedia, der freien Enzyklopädie

AlsKernel-Modul, Kernel-Erweiterungsmodul, oderKernel-Erweiterung (englischkernel module, kernel extension module, kernel extension) wird eine ergänzendeSoftware­einheit bezeichnet, die ein laufenderKernel (Betriebssystem) während derLaufzeit und ohne Neustart laden kann. Kernel-Module erweitern die Fähigkeiten des Kernels, etwa indemTreiber,Dateisysteme,Systemaufrufe und andereSchnittstellen ergänzt werden, die der Kernel zunächst nicht umfasst.[1][2][3][4]

Das Laden kann beim Initialisieren des Systems erfolgen oder auch erst dann wenn tatsächlicher Bedarf besteht – beim Anschließen eines Gerätes oder wenn bestimmte Funktionen aufgerufen werden – und wieder entladen, sobald es nicht mehr benötigt wird. Das wird alsdynamisches Laden (englischdynamic load) bezeichnet.

Nutzen

[Bearbeiten |Quelltext bearbeiten]

Die Möglichkeit, die Kernel-Fähigkeiten zu erweitern, reduziert die Notwendigkeit, den Kernel anpassen und neu kompilieren zu müssen und reduziert zudem sonst notwendigeNeustarts.

Moderne Betriebssysteme sollen in der Regel auf und mit unterschiedlichenComputer- undPeripherie-Geräten funktionieren und liefern dementsprechend Treiber für unterschiedliche Komponenten von Computern,Erweiterungskarten undPeripheriegeräte mit. Kernel-Module ermöglichen es, dass nur die benötigten Treiber für die tatsächlich vorhandene Hardware in denArbeitsspeicher geladen werden und deren Funktionen nicht statisch im Kernel mitgeliefert werden muss. Die Umsetzung als zuladbares Erweiterungsmodul macht es außerdem möglich, dass zusätzliche Funktionserweiterungen vonDrittanbietern genutzt werden können, z. B. als Gerätetreiber für derenHardware oder ein weiteresDateisystem, das von unabhängigen Entwicklern bereitgestellt wird.

DurchPlug & Play werden die entsprechenden Kernel-Module normalerweise automatisch vom Kernel angefordert, wenn die entsprechende Hardware gefunden wurde. Dazu registriert das Modul in einer vom Kernel verwalteten Liste alle Geräte, für die eszuständig ist, sodass der Kernel es findet und laden kann, wenn es benötigt wird. Bei sehr alten Geräten (z. B.ISA-Erweiterungskarten) oder wenn dies aus anderen Gründen nicht automatisch möglich ist, kann ein Erweiterungsmodul auch per Startkonfiguration oder mittels Programmen zur Erkennung (z. B. der Hardware, oder auch eines benötigten Dateisystems) abermals automatisch geladen werden, oder aber das Laden wird vom Anwender selbst angestoßen. Als Kernel-Modul kann ein Treiber zudem im laufenden Betrieb aktualisiert werden, indem es zuerst entladen und danach dessen neuere Version wieder geladen wird.

Kernel-Module bei Linux-Distributionen

[Bearbeiten |Quelltext bearbeiten]

ObwohlLinux einmonolithischer Kernel ist, umfasst er auch eine Schnittstelle, um zuladbare Kernel-Module hinzuladen zu können (englischloadable kernel modules, kurzLKM). Kernel-Module sindDateien, dieObjektcode enthalten (Objektdateien). Sie werden üblicherweise unter/usr/lib/modules/$(uname -r)/ abgelegt und tragen dieDateinamenserweiterung.ko (englischkernel object; bis Kernel-Version 2.4 war.o die Dateinamenserweiterung). Geladene Kernel-Module können u. a. mit dem Befehllsmod aufgelistet werden.[1][4][2]

Kernel-Module bei FreeBSD

[Bearbeiten |Quelltext bearbeiten]

Mit FreeBSD 3.0 wurde eine sogenanntedynamic kernel linker facility eingeführt (kurz:kld; etwa ‚dynamische Kernelverknüpfungseinrichtung‘), die die bisherigeLKM facility ablöste. Erweiterungen liegen hier im Verzeichnis/boot/kernel/. Die wichtigsten Befehle diesbezüglich sindkldload(8),kldunload(8) undkldstat(8).

Kernel-Erweiterungen bei macOS, iOS & Co.

[Bearbeiten |Quelltext bearbeiten]

Eine Kernel-Erweiterung (englischkernel extensions) fürXNU, den Kernel vonDarwin, die Basis vonmacOS undiOS sowie Apples anderen Betriebssystemen, wird bei Bedarf geladen. Sie liegen im Verzeichnis/System/Library/Extensions/ und haben.kext alsDateinamenserweiterung.

Aus Sicherheitsgründen wurde diese Möglichkeit für Drittanbieter verworfen und gänzlich ersetzt. Während eine Kernel-Erweiterung imKernelmodus läuft, laufen die mitmacOS Catalina 10.15 eingeführten System-Erweiterungen (englischsystem extensions) imBenutzermodus und haben so beispielsweise keinen direkten Zugriff auf Hardware.[5][6][7]

Einzelnachweise

[Bearbeiten |Quelltext bearbeiten]
  1. abKernelmodule. In: Wiki von ubuntuusers.de. Abgerufen am 6. März 2020. 
  2. abKernelmodule. In: Wiki von archlinux.de. Abgerufen am 6. März 2020. 
  3. Alessandro Rubini, Jonathan Corbet: Module erstellen und starten. Kapitel 2. In: Linux-Gerätetreiber, 2. Auflage, April 2002. O'Reilly, archiviert vom Original (nicht mehr online verfügbar) am 25. August 2016; abgerufen am 6. März 2020.  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäßAnleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/www.oreilly.de 
  4. abBryan Henderson: Linux Loadable Kernel Module HOWTO. 24. September 2006, abgerufen am 6. März 2020 (englisch). 
  5. Deprecated Kernel Extensions and System Extension Alternatives. Apple, archiviert vom Original am 26. Februar 2020; abgerufen am 4. März 2020 (englisch). 
  6. System Extensions and DriverKit. Apple, archiviert vom Original am 14. Oktober 2019; abgerufen am 4. März 2020 (englisch). 
  7. Leo Becker: Kernel Extensions in macOS: Apple läutet Ende ein. In:Heise online. 10. Februar 2020. Abgerufen am 4. März 2020.; Zitat: „Die neuen "System Extensions" sollen schrittweise klassische Kernel-Erweiterungen ablösen. Sie können nicht mehr so tief in das System eingreifen: Statt im Kernelspace laufen die System Extensions im Userspace.“.
Abgerufen von „https://de.wikipedia.org/w/index.php?title=Kernel-Modul&oldid=228304882
Kategorien:
Versteckte Kategorie:

[8]ページ先頭

©2009-2025 Movatter.jp