Kernel: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(6 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
*Dies beieinflusst zumeist das Vorhandensein oder Nichtvorhandensein bestimmter Leistungseigenschaften
 
*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.
 
 
 
=Links=
 
*[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ädtdas 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
 
*Dies ist für das Entpacken des Kernels und das Finden des richtigen Einstiegspunktes zuständig.
 
*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