Kernel: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „ ==Bootparameter übergeben== Der Linux-Kernel kann mit einer Vielzahl unterschiedlicher Parameter geladen werden, die zumeist das Vorhandensein oder Nichtvor…“)
 
 
(11 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 +
*[[Was ist ein Kernel?]]
 +
*[[Kernel Initialisierung]]
 +
*[[Kernel kompilieren]]
 +
=New=
 +
*Kernel überwacht die Schnittstelle
 +
;Daten werden aus /sys bezogen
 +
**lsusb
 +
**lspci
 +
*Kernel lädt den Treiber automatisch
 +
*dmesg -wT
 +
=lsmod und lsmod=
 +
*Vorher und nachher Prinzip mit Dateien lsmod.vorher und lsmod.nacher
 +
*Gerät einstecken und mit diff vergleichen.
 +
=Udev=
 +
*udevadm monitor
  
==Bootparameter übergeben==
+
=Datei anlegen=
Der Linux-Kernel kann mit einer Vielzahl unterschiedlicher Parameter geladen werden,
+
*fallocat -l 1G disk1
die zumeist das Vorhandensein oder Nichtvorhandensein bestimmter Leistungseigenschaften
 
beeinflussen. Dies ist insbesondere im Fehlerfall von Interesse: Kommt es etwa zu Problemen
 
beim Betrieb einer Festplatte im DMA-Modus, so kann dem Kernel ein Parameter übergeben werden,
 
der verhindert, dass die Festplatte im DMA-Modus angesteuert wird. Bestünde diese Möglichkeit
 
nicht, so wäre es u.U. garnicht mehr möglich, das betreffende System hochzufahren. Die
 
Übergabe solcher Parameter wird von den meisten Ladeprogrammen auf zweierlei Weise ermöglicht.
 
Zum einen können Standardparameter, die man bei jedem Systemstart übergeben möchte, in einer
 
Konfigurationsdatei festgehalten werden. Zum Anderen kann man beim Systemstart die Parameter
 
über eine Eingabezeile variieren.
 
 
 
[https://help.ubuntu.com/community/BootOptions#Common%20Boot%20Options Liste wichtiger Bootoptionen (EN)]
 
 
 
==Kerneldatei in den Speicher laden==
 
Nachdem der zu ladende Kernel ausgewählt und evtl. weitere Bootparameter eingegeben wurden, lädt
 
das Ladeprogramm den Kernel in den Hauptspeicher. Hier sind bei Linux grundsätzlich zwei Varianten
 
zu unterscheiden. Zum einen kann der Kernel unkomprimiert vorliegen. Der Einstiegspunkt für die
 
Ausführung ist dann mit dem Beginn des Kernelcodes identisch. Zum anderen kann der Kernel
 
komprimiert sein. In diesem Fall wurde dem Kernel beim Übersetzen ein kleines Programmstück
 
vorangestellt, das für das Entpacken des Kernels und das Finden des richtigen Einstiegspunktes
 
zuständig ist. Eine unkomprimierte Kerneldatei erkennt man nach dem Übersetzen an ihrem Namen vmlinux.
 
Eine komprimierte Kerneldatei heißt vmlinuz, zImage oder bzImage. Diese Dateien können später freilich
 
umbenannt werden. Gehen wir also nun davon aus, dass der Kernel geladen und der korrekte Einstiegspunkt
 
gefunden wurde.
 
 
 
==Übergang vom Kernelspace zum Userspace==
 
Als vorletzte Aktion mountet der Kernel das Dateisystem welches in der Kernelvariable ''root'' übergeben wurde, readonly. Als letztes wird das Programm das in der Kernelvariable ''init'' steht ausgeführt, dies ist der Prozess mit der Nummer EINS und dieser startet nun alle Userspace Programme.
 

Aktuelle Version vom 21. Februar 2024, 16:12 Uhr

New

  • Kernel überwacht die Schnittstelle
Daten werden aus /sys bezogen
    • lsusb
    • lspci
  • Kernel lädt den Treiber automatisch
  • dmesg -wT

lsmod und lsmod

  • Vorher und nachher Prinzip mit Dateien lsmod.vorher und lsmod.nacher
  • Gerät einstecken und mit diff vergleichen.

Udev

  • udevadm monitor

Datei anlegen

  • fallocat -l 1G disk1