Linux Kernel Flashcards
Was sind die vier Bestandteile der Linux Kernels?
- Prozess Management
- Speicher Management
- E/A Subsystem
- Gerätetreiber
Was passiert im Prozess Management?
- Verteilung der Ressource CPU.
- Single-Core-Scheduling.
- Multi-Core-Scheduling
Was passiert im Speicher Management?
- Adressumsetzung.
- Speicherschutz.
- Virtuellen Speicher (Swap-Space).
- Extended Memory.
Für was ist das E/A Subsystem verantwortlich?
- Einheitliches Programmierinterface (API) für den Zugri!
auf Dateien und Geräte. - Systemkonforme Integration von Hardware in den
Kernel (Treiberinterface). - Performanter Zugriff auf E/A (Stichworte Page-Cache,
E/A-Scheduling). - Filesysteme.
Was ermöglichen Gerätetreiber?
- Standardisierter Zugriff auf Hardware.
- Für jedes Peripheriegerät, das aus der User-Ebene
angesprochen werden soll, muss ein Gerätetreiber
existieren. - Kernel-Komponenten, somit auch die
Gerätetreiber, haben Zugriff auf den Kernel-
Adressraum
Was ist ein Kernel Patch?
- Eine diff Datei die den Quellcode des Kernels verändert
Was sind Besonderheiten des Linux Kernels?
Kein LIBC Funktionen - Standalone - Kein User Code Keine Gleitkommazahlen -> emuliert Alle Werte sind static um Nameskonflikte zu vermeiden
Wo werden alle Kernel Konfigurationsparameter gespeichert?
im .config file
Wie konfigurieren sie den Kernel?
make config
make menuconfig
make xconfig
make gconfig
Wo lässt sich die Konfig aus dem laufenden Kernel auslesen?
cat proc/config.gz
Wie ist der Kernel aufgebaut?
Der Kernel ist modular aufgebaut
Treiber auch einkompilierbar
Welche Befehle beschleunigen den Kernel Bauprozess?
make -j x
ccache
distcc
Was entsteht beim Kernel Bauprozess?
Erstellung immer aus vorherigem Object (Bootstrap):
vmlinux komplettes ELF Binary (’kernel proper’), wird
unabhängig von der Zielarchitektur erstellt.
vmlinux.bin The same as vmlinux, but in a bootable raw binary file format. All symbols and relocation information is discarded.
piggy.gz/piggy.o: ’vmliunx.bin’ komprimiert, bzw. als linkbares Objekt (.o)
+
Target Objects: head.o, misc.o Startup-Code und
Kernel Entpack-Code
=>
linker -> arch/:
zImage/bzImage: komprimiertes Kernel Image für Bootlader
Was ist ein RootFS und was beeinhaltet es?
OS benötigt FS zum Betrieb
System hat 2 Images Kernel, RootFS
Beeinhaltet:
Systemprogramme
Konfigurationsso!ware
Applikationen
Wichtige Bootparameter?
initrd= Initial RAM Disk Image (startet dort /linuxrc)
init= Angabe eines alternativen Binaries sta! ’/sbin/init’
(Block-Device Default)
rdinit= Angabe eines alternativen Binaries statt ’/init’ (initramfs Default)
Warum wird der Device Tree benötigt?
Jede ARM Plattfom -> unterschiedliche Treiber und Module
- bläht Kernel Code auf
- Andere Interrupts
- Keine PCI Konfigschnittstelle
Umsetzung des Device Trees?
- Board-Firmware oder
der Bootloader kopieren die
Device Trees als Datenstruktur in den
Hauptspeicher
Was muss beim Einsatz des Device Trees beachtet werden?
Kernel wie Bootloader müssen Device Trees unterstützen
Wie wird der Device Tree erstellt?
Device Tree Structure > Device Tree Compiler => wird zu Device Tree Blob
Beschreiben Sie die Embedded Linux System Architektur
Linux P 4
Welche Abstraktionsschicht ist in der Embedded Linux System Architektur über den Gerätetreibern?
HAL (kurz für Hardware Abstraction Layer)
Software, die es Anwendungen ermöglicht, Informationen über verfügbare Hardware abzurufen und mit ihr zu kommunizieren.
Mit HAL können Anwendungen auf das Anschließen und Entfernen von Hardware reagieren
Was ist ein ELF
Das Executable and Linking Format (kurz: ELF) beschreibt das Standard-Binärformat ausführbarer Programme