Systemsoftware

Fragen zur Vorbereitung auf Systemsoftware-Prüfung an der HTWG (WS17/18)

Fragen zur Vorbereitung auf Systemsoftware-Prüfung an der HTWG (WS17/18)


K. D.
Diese Lernkarten bieten einen umfassenden Überblick über die Systemsoftware auf Universitätsniveau. Sie konzentrieren sich auf den Kernel, seine Aufgaben, Treiber, Gerätezugriff und Systemcalls, sowie auf die Interaktion zwischen Hardware und Software. Besonders behandelt werden auch Linux-spezifische Themen wie Bootloader, Kernelmodule und die Unterscheidung zwischen User- und Kernel-Kontext. Diese Lernkarten sind ideal für Studierende der Informatik, die ein tiefes Verständnis der Systemsoftware und ihrer Funktionsweise erlangen möchten.
Flashcards
52
Students
1
Language
German
Category
Computer Science
Level
University
Created / Updated
30.01.2018 / 30.01.2018

Flashcards

Was ist ein Embedded System?

Eine integrierte, mikroelektronische Steuerung, die meistens für eine spezifische Aufgabe verwendet wird

Welche besonderen Anforderungen gibt es an eingebettete Systeme?

- Geringe Ressourcen- Kurze Bootzeit- 24/7 Betrieb- System muss ohne Herunterfahren funktionieren -> stromlos ohne Vorwarnung- Lange Lebenszeit

Welche Hauptkomponenten hat ein Embedded Linux System?

- Firmware (Bios)- Bootloader- Kernel- Rootfilesystem

Warum ist im Linux Kernel libc nicht verfügbar?

User-Code darf nicht im Kernel ausgeführt werden -> Security! Keine library wäre einfach austauschbar

Welche Treiberarten gibt es?

- Character-Devices- Block-Devices- Netzwerk- SCSI- USB- Irda- Cardbus u. PCMCIA- Parallelport- I2C- I2O

Welche Aufgaben hat head.o in vmlinux?

- Überprüfung, ob es sich um den richtigen Prozessor/Architektur handelt- Aufsetzen der Page Tables für die Speicherverwaltung- Initialisieren und Aktivierung der MMU- Aufsetzen eines einfachen Error Handlings- Sprung zur start_kernel() Funktion des Kernels: main.c

Was passiert in start_kernel()?

- Architektur Setup (setup_arch())- Verarbeitung der Kernel Command Line- Initialisierung der Subsysteme- init Thread starten- start_kernel() wird zum idle Thread

Benennen Sie die fünf Blöcke, aus denen der Linux-Kernel besteht.

Prozessmanagement, Memory Management, IO-Managment, Gerätetreiber, Systemcall-Interface

Benennen Sie die Aufgaben des Prozess-Managements.

- Verteilung der Ressource CPU- Single/Multi-Core-Scheduling(vgl. 1_3_LinuxKernel, Folie 5)

Benennen Sie die Aufgaben des Speicher-Managements.

- Adressumsetzung- Speicherschutz- Virtueller Speicher (Swap-Space)- Extended Memory(vgl. 1_3_LinuxKernel, Folie 5)

Benennen Sie die Aufgaben des E/A-Subsystems.

- Einheitliches Programmierinterface (API) für Zugriff auf Dateien und Geräte- Systemkonforme Integration von Hardware in Kernel (Treiberinterface)- Performanter Zugriff auf E/A (Page-Cache, E/A-Scheduling)- Filesysteme(vgl. 1_3_LinuxKernel, Folie 6)

Benennen Sie die Aufgaben des Gerätetreibers.

- Standardisierter Zugriff auf Hardware- Pro Peripheriegerät, das aus der User-Ebene angesprochen werden soll, muss ein Gerätetreiber existieren- Alle Kernel-Komponenten, somit auch die Gerätetreiber, haben Zugriff auf den Kernel-Adressraum(vgl. 1_3_LinuxKernel, Folie 6)

Stellen Sie die Aufgaben des Kernel-Image und des RootFS-Image gegenüber.

Kernel-Image:- Einbinden der notwendigen Treiber- Compilieren für den entsprechenden Prozessor- Herausnehmen aller nicht benötigten Komponenten- Module: ja oder nein?RootFS-Image:- Systemprogramme- Konfigurationssoftware- Applikationen

Welche Vor- und Nachteile hat das RootFS im RAM?

Vorteile:- Konsistentes Filesystem bei jedem Neustart- Booten ohne Filesystemcheck- Einfache Systemaktualisierung- Eventuell Auswahl des Rootfilesystems (Debug/Test)- Schneller Zugriff- Auf RAM sind unbegrenzte Schreibzyklen möglichNachteile:- Modifikationen am RootFS gehen mit einem Neustart verloren, wenn diese nicht im Image durchgeführt werden- Für die Ramdisk wird Hauptspeicher (RAM) benötigt (2-8 MB)

Stellen Sie den Kernel Bootablauf Early-Userland dar.

1. BIOS2. Bootloader3. Kernel mit RootFS im Early-Userland4. /init (aus RootFS Early-Userland --> Enthält evtl. Treiber + Konfig)5. Falls Desktop/Server: Newmount der Ziel-Root Partition und Starten von /sbin/init (per exec!)

Stellen Sie die Vor- und Nachteile der Ramdisk gegenüber.

Vorteile:- Der Zugriff auf die Ramdisk ist schneller als der Zugriff auf den Flashspeicher.- Beim Flashspeicher ist die Anzahl der Schreibzugriffe limitiert.- Die Größe der Ramdisk ist frei wählbar.- Daten in Ramdisk 'temporär' -> System muss nicht runtergefahren werden.- Das Verfahren vereinfacht die Systemaktualisierung.Nachteile:- Ramdisk verbraucht Hauptspeicher- Die Daten sind doppelt vorhanden: Im Image selbst (z.B. auf Flashdisk) und in der Ramdisk- Modifikationen, die während des Betriebs im Root-Filesystem vorgenommen werden, sind nach dem Ausschalten des Systems verloren.

Was ist ein Bootloader und was sind seine Aufgaben ?

- Basisinitialisierung der Hardware- kopiert den Kernel mit dessen filesystem in den RAM- Initialisiert das System (init cpu um den start des OS zu ermöglichen) - Starte das system

Nennen Sie die in der Vorlesung besprochenen Bootloader stufen und deren Aufgaben

First stage boot loader: Minimale Funktionalität: 2. Stage des Bootloaders laden (z.B. irgendwo auf der Platte)Second stage boot laoder: Volle Funktionalität: Keine Limits mehr für die Implementierung von Features. Kann selbst ein eigenes OS sein.

Welches sind die Standardverzeichnisse und was sind deren Aufgaben?

- /sbin: Kommandos für die Systemverwaltung- /sys: Virtuelles Dateisystem; Informationen über Geräte und Treiber- /tmp: Temporäre Dateien, werden mit jedem Reboot gelöscht; oft als tmpfs Dateisystem realisiert- /usr: Anwendungsprogramme; /usr/src: Linux Kernel Sourcen- /var: Logdateien, Spooldateien; temporäre Dateien (/var/tmp), PID Dateien

Welches format haben kernel module ?

*.ko

Was ist der unterschied zwischen den Auswahlkriterien [+] und [M] bei Modulen ?

- Mit [+] werden module ausgewählt die als "builtin" module gelten. Diese werden beim booten geladen.- Mit [M] werden modeule ausgewählt die als out of tree gelten bzw. loadable modules sind. Diese module werden während der Laufzeit vom user geladen

wo werden builtin bzw. loadable module im kernel gespeichert ?

module-drivers: lib/modules/$(uname -r)/module_name. Nachdem laden in /devbuiltin-drivers: zu finden mit /lib/modules/$(uname -r)/modules.builtin (<- das ist ein Befehl). Nach dem laden in kernel/module_name

Wann wird speicher für ein kernel modul allokiert bzw. wann wieder freigegeben?

Annahme: Benötigter Speicher ist statisch allokiert:Allokiert: Aus sicht des Moduls: Während des compilevorgangs (static memory)Aus sicht des Kernels: Während dem load des ModulsFreigabe:Aus sicht des Moduls: Niemals (static memory)Aus sicht des Kernels: Während dem unloade des Moduls

Welche Aufgaben übernimmt das BIOS ?

- CPU aktivieren - power-on self test (POST) starten - CPU Caches aktivieren - Speicher initialisieren (rudimentäre Funktionen) - weitere CPUs aktivieren (falls vorhanden) - Liste angeschlosser E/A Geräte erstellen (z.B. PCI Devices proben) - Programme in den Boot ROMs dieser Geräte ausführen (z.B. Festplattencontroller) - Betriebssystemkernel starten

Wo befindet sich der Bootloader?

Master boot record nach der Partitionstabelle

Welchen befehl muss man vor einem modprobe ausführen ?

depmod

Skizzieren sie den Linux bootprozess

system startup (BIOS / Bootmonitor) -> First stage bootloader (Master Boot Record) -> Second stage bootloader (LILO, GRUB, etc) -> Kernel (Linux) -> Init (User-space)

Welche komponente/funktion des Systems ist verantwortlich devices nodes zu erstellen ?

openpty()

Welche konfigurationsinterfaces gibt es für die .config des Kernels ?

- make config (Fragt nach jeder Kerneleinstellung über die konsole)- make menuconfig (ncurses menü)- make xconfig (QT Interface)-make gconfig (GTK Interface)

Was ist ein Gerätetreiber ?

Ein Gerätetriber ist eine Softwarekomponente, die aus mehreren Funktionen besteht. Aufgabe des Treibers is die Ansteuerung eines Gerätes

Erläutern Sie die Aufgaben eines Gerätetreibers

- Ansteuerung des Gerätes- Den technischen Prozeß in den sicheren Zustand überführen, falls die Applikation abstürzt

Was ist der Unterschied zwischen einem Characterdevice und einem Blockdevice ?

Characterdevice = zeichenorientiertBlockdevice = blockorientiert

Was ist der Unterschied zwischen kernel-Space und User-Space

- Kernelspace = Speicherbereich, der dem Kernel zur Verfügung steht.- Userpace = Speicherbereich, der den Applikationen zu Verfügung steht.

Welche Aufgaben fallen bei der Konzipierung eines Gerätetreibers an ?

- Abbildung von Funktionalität bzw. semantischer Bedeutung auf logische Geräte.- Festlegung der logischen Geräte und deren Funktionalität.- Festlegung der Zugriffsart (z.B. non-blocking, blocking).- Festlegung der unterstützten Systemcalls (lesen, schreiben, ioctl, poll).- Festlegung der Zugriffsrechte (wie viele Threads, Applikationen dürfen zu welchen Zeitpunkten wie auf das Gerät zugreifen).- Festlegung von IO-Controls.

Grenzen Sie den Begriff "Treiberinstanz gegen den Begriff "Thread" ab.

Ein Thread kann mehrfach einen Treiber öffnen. Jedes Öffnen stellt eine Treiberinstanz dar.

Was ist eine Treiberinstanz und durch welches "Objekt" ist sie im Kernel repräsentiert ?

Eine Treiberinstanz wird druch das Objekt "struct file" im Treiber representiert.

Welche Möglichkeiten kennen Sie, um kritische Abschnitte im Kernel zu schützen ?

- Verwendung anderer Datenstrukturen- Interrupt Sperre- Semaphore und Atomic-Operations

Welche zwei Methoden für den Hardwarezugriff kennen Sie ?

- Memory Mapped IO- Zugriff über eigenen IO-Befehle (Ports)

Nennen Sie die Aufrufe, über die Sie unter Linux auf die Hardware zugreifen.

Zugriff auf IO-Ports:- "in[bwl]" und "out[bwl]"Zugriff auf Hardware im Adreßbereich des Mikroprozessors (Memory Mapped IO):- "read[bwl]" und "write[bwl]"bwl = Zusammensetzung byte, word, longword, in[bwl] ist ein makro, das von einem Port(=bwl) jeweil ein, zwei, oder vier Bytel einließt

Welche Aufgabe hat die Majornumber ?

ber die Majornumber wird der Treiber identifiziert

Study