Linux Kernel Flashcards
Aus welchen Komponenten besteht der Linux Betriebssystemkern?
- Systemcall-Interface
- Prozessmanagement
- Speichermanagement
- IO-Management
- Gerätetreiber
Ablauf eines Systemcalls:
- App möchte auf Daten aus Datei lesen
- Systemcall löst Software-Interrupt aus
- Kernel führt anschließend die ISR durch
- Zurückgeben der Daten
Prozess-Management:
- Single-Core-Scheduling.
- Multi-Core-Scheduling.
Wo werden die Daten eines Prozesses gespeichert?
Jede Task/Prozess besteht aus einem Codesegment, Datensegment, Stacksegment.
Task können sich Segmente teilen.
Von was ist die reden wenn sich 2 tasks Codesegment und auch Datensegment teilen?
Thread
Speicher-Management:
- Es werden virtuelle Adressen verwendet, um auf physikalische zuzugreifen.
- Speicherschutz durch das umsetzen der Adressen.
- Virtueller Speicher -> Swapping auf Festplatten
- Extended Memory
I/O-Management:
- Einheitliches Programmierinterface (API) für den Zugriff auf Dateien und Geräte.
- Performanter Zugriff auf I/O
- Ordnungsstruktur für Daten in Form von Verzeichnissen und Dateien über das Filesystem
Gerätetreiber:
- Standardisierter Zugriff auf Hardware.
- Für jedes Peripheriegerät das aus der User-Ebene angesprochen wird muss ein Treiber existieren.
- Alle Kernel-Komponenten haben Zugriff auf den Kernel-Adressraum
Welche Funktionen können im Kernel nicht benutzt werden?
Es dürfen keine “libc” Funktionen benutzt werden.
- —> kann kein User-Code benutzen
- —> Kernel bietet speziell Funktionen wie printk, kmalloc
- —> Kernel muss “standalone” benutzbar sein.
Werden im Kernel Gleitkommazahlen benutzt?
Neine der Kernel rechnet nur mit integer Werten.
Was muss getan werden um im Namensraum Konflikte zu vermeiden?
Alle Symbole müssen als “static” definiert werden.
Was macht “make config” ?
Fragt jede Kernel Einstellung (>1000)
Was macht “make menuconfig” ?
Öffnet ein Textinterface um Kernel einfacher zu konfigurieren.
Was macht “make oldconfig” ?
Nützlich um die .config Datei einer früheren Kernel-Version upzudaten.
Was macht “make allnoconfig” ?
Minimale Kernel Config. Idealer Startpunkt für Embedded Systems!