Linux Systemarchitektur Flashcards
Was muss bei der Kernelprogrammierung beachtet werden?
- Innerhalb des Kernels stehen nur eingeschränkt
Bibliotheksfunktionen zur Verfügung. - Innerhalb des Kernels darf kein Floating-Point
verwendet werden. - Kernelcode steht nur ein eingeschränkter Stack zur
Verfügung (4–8kByte). - Kernelcode ist performance-optimiert programmiert
(Stichwort goto). - Innerhalb des Kernels gibt es keinen Speicherschutz.
Was ist ein Monolithischer Betriebssystemkern
Ein monolithischer Kernel
Speicher- und Prozessverwaltung
++ Treiber für die Hardwarekomponenten und möglicherweise weitere Funktionen direkt eingebaut sind.
Welches Scheduling kommt in Kernel zum Einsatz?
Prioritätengesteuertes Scheduling (mit Round-Robin oder FCFS).
Werden Tasks und Threads im Kernel unterstützt?
Ja
Weitere Features des Kernels
Unterstützung für unterschiedliche Systemarchitekturen und Prozessoren Speicherverwaltung Security Mechanismen - Firewall - Zugrislisten - Intrusion Detection . . . Bekannte Programmierschnistelle
Systemmerkmale aus Anwendersicht?
Zugri auf Peripherie ist auf den Dateizugri abgebildet.
3 „Dateien“ sind für jeden Rechenprozess direkt zugreifbar:
STDIN
STDOUT
STDERR
Systeminformationen und Systemzustände sind im
Proc-Filesystem abrufbar:
- cat /proc/cpuinfo
- cat /proc/interrupts
In welcher Schicht liegt das Systemcall Interface
Liegt im Kernel
Eigenschaften des Systemcall Interfaces
- Dienstzugangsschnitstelle
- Unabhängig von Programmiersprachen
- Realisiert über Sotwareinterrupt 0x80 (synchron zum
Programmablauf, Assemblerbefehl INT oder sysenter)
Argumentenübergabe über Register oder über den Stack - Alle Systemcalls unter Linux sind im Headerfile aufgeführt
Aus was besteht ein Prozess Kontrollblock
Task Prio
Quantum
Task Zustand
Machinen Zustand
Was wird in der Prozesstabelle gespeichert
Pro laufenden Prozess einen Eintrag . Diesen Eintrag nennt man Prozesskontrollblock.
beinhaltet Informationen über
Zustand des Prozesses
- seinen Befehlszähler, CPU-Register, Stackpointer
Speicherbelegung, Zustand seiner geöffneten Dateien
Welche Zustände hat ein Task?
Lauffähig, Wartend, Aktiv, Ruhend/Terminiert
Funktionen eines Gerätetreibers?
Einbindung: init_module cleanup_module probe remove Funktion APP triggered open close read write Funktion OS/HW triggered ISRs Soft IRQ Timer Kernel Threads
Was ist ein Kontext?
spezifiziert, welche Dienste und welche Ressourcen einem Codefragment zur Verfügung stehen
Darüber hinaus definiert der Kontext, ob ein Codefragment unterbrechbar ist oder nicht
Was ist der Userkontext?
Ihm stehen die Dienste des
Betriebssystems zur Verfügung, wie sie im Systemcall-Interface spezifiziert
sind. Code dieser Ebene ist jederzeit unterbrechbar. Die Unterbrechungen
finden aufgrund von Interrupts statt, sei es durch einen Hardware-Interrupt
oder einen (selbst ausgelösten) Software-Interrupt.
Was ist der Prozesskontext?
Diesem Code stehen sämtliche Funktionalitäten des Betriebssystemkerns zur
Verfügung – auch die Funktionalität, das Verarbeiten des Codes für einige Zeit anzuhalten