Betriebssystem Kernel Strukturen
19 Questions
0 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Was ist der Linux Kernel?

Der zentrale Bestandteil eines Betriebssystems, der als Vermittler zwischen der Hardware und Softwareanwendungen dient.

Welche dieser Kernel-Arten gehören zu den bekannten Kernel-Strukturen? (Wählen Sie alle zutreffenden aus)

  • Nanokernel (correct)
  • Microkernel (correct)
  • Hybrid Kernel (correct)
  • Monolithischer Kernel (correct)
  • Modular Kernel (correct)
  • Exokernel (correct)
  • Der Microkernel unterstützt alle Betriebssystemdienste im Kernel-Space.

    False

    Nennen Sie einen Vorteil des monolithischen Kernels.

    <p>Schnelle Performance mit minimalem Kommunikationsaufwand zwischen den Prozessen.</p> Signup and view all the answers

    Welche Software benötigt Linus Torvalds zur Entwicklung des Linux Kernels?

    <p>Einen C Compiler (gcc) und das Betriebssystem Minix.</p> Signup and view all the answers

    Wie loggen Sie sich als User „test“ in die Ubuntu VM ein?

    <p>Mit dem Passwort „test“.</p> Signup and view all the answers

    Wie wechseln Sie zum 'root' User in der Kommandozeile?

    <p>$ sudo bash</p> Signup and view all the answers

    Der Modular Kernel ermöglicht die Nachladung von Funktionalität zur Laufzeit ohne Neustart des Systems.

    <p>True</p> Signup and view all the answers

    Ordnen Sie die Kernel-Arten ihren Vorteilen zu:

    <p>Monolithischer Kernel = Schnelle Performance Microkernel = Robuster gegenüber Fehler Hybrid Kernel = Gute Balance zwischen Performance und Modularität Exokernel = Hohe Performance durch direkte Kontrolle über Hardware Nanokernel = Geeignet für Embedded-Geräte Modular Kernel = Flexibles Nachladen von Modulen</p> Signup and view all the answers

    Wo liegen die Kernel-Quellen?

    <p>/usr/src/</p> Signup and view all the answers

    Was müssen Sie machen, um eine .config-Datei aus der aktuell laufenden Konfiguration zu erstellen?

    <p>$ make oldconfig</p> Signup and view all the answers

    Um den Linux Kernel zu übersetzen und auszutauschen, benötigen wir einen ______ zum Übersetzen des Programmcodes.

    <p>Compiler</p> Signup and view all the answers

    Welcher Kernel-Typ hat eine hohe Leistung, jedoch komplexe Entwicklungen?

    <p>Exokernel</p> Signup and view all the answers

    Welche Option müssen Sie wählen, um eine neue Konfiguration des Kernels zu erstellen?

    <p>$ make xconfig</p> Signup and view all the answers

    Wie viele Zeilen hat Ihre .config-Datei?

    <p>Wenden Sie den Befehl 'wc...' an.</p> Signup and view all the answers

    Welche Befehle verwenden Sie, um das Kernel-Abbild/Image und alle Module zu bauen und zu installieren?

    <p>$ make all install modules_install</p> Signup and view all the answers

    Wie machen Sie den neuen Kernel dem Boot-Manager (grub) bekannt?

    <p>$ update-grub</p> Signup and view all the answers

    Was müssen Sie tun, um den neuen Kernel zu booten?

    <p>Starten Sie die virtuelle Maschine neu.</p> Signup and view all the answers

    Wie können Sie die geladenen Module anzeigen?

    <p>$ lsmod</p> Signup and view all the answers

    Study Notes

    Betriebssystem Kernels

    • Der Kernel ist der zentrale Baustein eines jeden Betriebssystems, der als Vermittler zwischen der Hardware und der Software agiert
    • Aufgaben: Speicherverwaltung, Prozessverwaltung, Gerätesteuerung und die Vermittlung zwischen Hardware und Software

    Klassen von Kernel Strukturen

    • Monolithischer Kernel: alle Betriebssystemdienste in einem gemeinsamen Adressraum organisiert, schnelle Performance, schwer zu warten, Fehler können System zum Absturz bringen (Beispiele: Linux, UNIX)
    • Microkernel: minimalistischer Kernel mit essentiellen Mechanismen, wie Memory Management, Prozesskommunikation und Low-Level-Hardware, Vorteile: geringe Codebasis, einfach zu warten, robuster gegenüber Fehlern, Nachteile: geringere Performance, da Kommunikation zwischen User-Space - Diensten und Kernel-Space-Mechanismen vorliegt (Beispiele: Minix, QNX)
    • Hybrid Kernel: vereint Aspekte von monolithischen und Microkernel, ausgewählte Dienste laufen im Kernel-Space um Performance zu erreichen, Vorteile: gute Balance zwischen Performance, Modularität und Systemsicherheit, Nachteile: komplex in Entwicklung und Wartung (Beispiele: Windows, macOS)
    • Exokernel: minimalistischer Kernel, der Anwendungen die direkte Kontrolle über die Hardwareressourcen gibt, Vorteile: hohe Performance, da Abstraktionsschichten fehlen, Nachteile: Komplex in der Entwicklung (Beispiele: MIT's Exokernel)
    • Nanokernel: kleinere Version des Microkernel mit geringer Basisfunktionalität, Vorteile: sehr leichtgewichtig und minimalistisch, Nachteile: hoher Aufwand in der Entwicklung (Beispiel: EPOC Kernel von Symbian)
    • Modular Kernel: monolithischer Kernel, der das Nachladen von Funktionalität zur Laufzeit mittels Module ermöglicht, ohne das System neu zu starten, Vorteile: flexibler, reduziert Speicherverbrauch, Nachteile: erbt die Komplexität von monolithischen Kernel (Beispiele: Linux)

    Linux Historie

    • Linus Torvalds, ein Informatik-Student, entwickelte Linux als Hobbyprojekt
    • Grundlage für Linux war MINIX, ein UNIX-Clone von Prof. Andrew Tanenbaum
    • Die Free Software Foundation (FSF) und die GNU Public License (GPL) waren wichtige Vorläufer für Linux
    • Die Verbreitung von Linux führte zu einem immensen Wachstum
    • Linux ist ein Open-Source-Projekt, was die Entwicklung vorantrieb

    Linux Releases

    • 9.1991: Linux v0.01 (10.239 LOC)
    • 12.1991: Linux v0.11
    • 2.1991: Linux v0.12 (unter GPL)
    • 3.1991: X Windows System (~40k LOC)
    • 3.1994: Linux v1.0 (176.250 LOC)
    • 3.1995: Linux v1.2 (310.950 LOC)
    • 6.1996: Linux v2.0 (716.119 LOC)
    • 1.1999: Linux v2.2 (1.800.847 LOC)
    • 1.2001: Linux v2.4 (3.377.902 LOC)
    • 12.2003: Linux v2.6 (5.929.913 LOC, bis 2011, dann 3.0-Schema)
    • 1.2012: Linux v3.2 (14.998.651 LOC)
    • 10.2015: Linux v4.2.3 (18.756.142 LOC)
    • 11.2019: Linux v5.8.3 (24.711.894 LOC)
    • 2.2022: Liunx v5.16.11 (29.086.702 LOC)
    • 11.2022: Linux v6.1 (~28.000.000 LOC)

    Übersicht: Linux Kernel

    • Struktur:
      • documentation/
      • arch/
      • drivers/
      • fs/
      • include/
      • init/
      • kernel/
      • mm/
      • net/
    • Der Kurs betrachtet Interrupts und Scheduler im kernel
    • Der Linux-Kernel soll nun übersetzt werden

    Linux Kernel Bauen

    • Werkzeuge: Compiler, Build-Tool (make), Tool zur Installation (update-grub), weitere unterstützende Werkzeuge (Ncurses, GTK+, QT)
    • Voraussetzungen:
      • sudo apt-get update
      • sudo apt-get install build-essential libncurses-dev bison flex libssl- dev libelf-dev
    • Linux Kernel-Quellcode Herunterladen:

    Linux Kernel Übersetzung mittels make

    • make help: Zeigt Hilfe zu Make-Parametern
    • make config: Abfrage aller Parameter, erzeugt .config
    • make oldconfig: basierend auf .config, neue Abfragen
    • make listnewconfig: zeigt neue Parameter an
    • make all: Baut Kernel-Datei/Image und alle Module
    • make modules_install: Installiert Kernel-Module unter /lib
    • make install: Installiert Kernel-Image unter /boot
    • make firmware_install: Installiert Firmware

    Linux Kernel Config mit GUI: QT

    • Installation:
      • sudo apt-get install libqt4-dev
      • sudo apt-get install g++

    Linux Kernel Menuconfig

    • Installation:
      • sudo apt-get install libncurses5-dev
      • make menuconfig
    • Optionen:
      • nicht ausgewählt
      • [*] ausgewählt und wird in den Kernel übersetzt
      • ausgewählt, so wird das Modul übersetzt (nachladbar!)
      • ( ) frei wählbare Option
      • --> weiteres Menü folgt
    • Navigation: Tabulator, Cursortaste
    • Kommandos:
      • /: Suche nach einer Option
      • H: Hilfetext
      • Y: selektiert eine Option
      • N: deselektiert eine Option
      • M: wählt die Option als Modul aus
      • E: Exit

    Linux Kernel Menuconfig (I)

    • Anleitung: Starten Sie die Ubuntu VM, loggen Sie sich als User „test“ (pw: „test“) ein, starten Sie Terminal (CTRL + T), werden Sie „root“ user (sudo bash), Passwort für User „test“ eingeben
      • Die Kernel-Quellen liegen unter: /usr/src/linux-XX.YY.ZZ/

    Linux Kernel Menuconfig (II)

    • Konfiguration:
      • make oldconfig: Erstellt .config aus der aktuell laufenden Konfiguration
      • make menuconfig: Ncurses Oberfläche
      • make xconfig: QT Oberfläche
    • Suchen Sie nach dem Dateisystem EXT4
    • Speichern Sie Ihre .config-Datei
    • Zählen Sie die Zeilen in der .config-Datei mit wc

    Linux Kernel Übersetzung (I)

    • Konfiguration:
      • make localmodconfig: erzeugt .config mit nur den momentan geladenen Modulen
      • make localyesconfig: erzeugt .config mit allen momentan geladenen Modulen fest im Kern kompiliert
    • Vorteile: Kleinerer Kern, weniger Module, kürzere Build Zeit

    Linux Kernel übersetzen & installieren

    • Den Kernel und alle Module können Sie mit make all install modules_install bauen und installieren.
    • Um detaillierte Ausgaben zu erhalten, fügen Sie V=1 hinzu: make V=1 all install modules_install.
    • Der neue Kernel wird mit update-grub dem Boot-Manager (hier: grub) bekannt gemacht.
    • Überprüfen Sie die Größe der Kernel-Images im Verzeichnis /boot.
    • Verwenden Sie lsmod um eine Liste der geladenen Module auf der Konsole anzuzeigen.
    • Weitere Systemprogramme für Module finden Sie in der Dokumentation.

    Linux Kernel booten / starten

    • Starten Sie die virtuelle Maschine neu (reboot / restart) um den neuen Kernel zu booten.
    • Wählen Sie im Boot-Manager (hier: grub) den neu übersetzten Kernel aus.
    • Überprüfen Sie nach dem Einloggen, welche Module geladen sind (Hinweis: lsm…).
    • Analysieren Sie die übersetzten Module und identifizieren Sie überflüssige Module, die aus der Konfigurationsdatei (.config) entfernt werden können.

    Zusammenfassung

    • Die Vorlesung vermittelt ein grundlegendes Verständnis des Linux Kernels und seiner Geschichte.
    • Sie lernen verschiedene Möglichkeiten zur Konfiguration des Linux Kernels kennen.
    • Sie haben praktische Erfahrung mit dem Übersetzen (menuconfig), Installieren und Starten des Linux Kernels gesammelt.

    Studying That Suits You

    Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

    Quiz Team

    Related Documents

    Linux Kernel (PDF)

    Description

    In diesem Quiz lernen Sie die verschiedenen Klassen von Kernel-Strukturen kennen, wie monolithische, Mikro- und Hybrid-Kernel. Sie erfahren mehr über ihre spezifischen Eigenschaften, Vor- und Nachteile. Testen Sie Ihr Wissen über diese grundlegenden Konzepte der Betriebssystemarchitektur.

    More Like This

    Kernel Density Estimation Quiz
    10 questions

    Kernel Density Estimation Quiz

    SecureRainbowObsidian avatar
    SecureRainbowObsidian
    Structure of Operating Systems
    12 questions
    Use Quizgecko on...
    Browser
    Browser