Podcast
Questions and Answers
Was war der ursprüngliche Zweck von Linus Torvalds' Programm?
Was war der ursprüngliche Zweck von Linus Torvalds' Programm?
Um ein kleines Terminalprogramm zu entwickeln, um sich auf den Servern seiner Universität einzuloggen.
Wie viele Zeilen Code umfasst das Open Source Betriebssystem MINIX?
Wie viele Zeilen Code umfasst das Open Source Betriebssystem MINIX?
Ungefähr 12.000 Zeilen Code.
Welchen Ansatz verfolgt der Micro-Kernel von MINIX?
Welchen Ansatz verfolgt der Micro-Kernel von MINIX?
Er verwendet einen Micro-Kernel Ansatz.
An welchem Datum kündigte Linus Torvalds die Entwicklung seines Betriebssystems an?
An welchem Datum kündigte Linus Torvalds die Entwicklung seines Betriebssystems an?
Signup and view all the answers
Was ist Torvalds' Einstellung zu Sicherheitsfehlern in Software?
Was ist Torvalds' Einstellung zu Sicherheitsfehlern in Software?
Signup and view all the answers
Welche Rolle spielt Linus Torvalds in der Entwicklung von Linux?
Welche Rolle spielt Linus Torvalds in der Entwicklung von Linux?
Signup and view all the answers
Warum wird Linux als erfolgreich angesehen?
Warum wird Linux als erfolgreich angesehen?
Signup and view all the answers
Welche Programme hatte Torvalds zu seinem Betriebssystem portiert?
Welche Programme hatte Torvalds zu seinem Betriebssystem portiert?
Signup and view all the answers
Was sind die Hauptverzeichnisse im Linux Kernel und ihre Funktionen?
Was sind die Hauptverzeichnisse im Linux Kernel und ihre Funktionen?
Signup and view all the answers
Welche Werkzeuge benötigen Sie, um den Linux Kernel zu übersetzen?
Welche Werkzeuge benötigen Sie, um den Linux Kernel zu übersetzen?
Signup and view all the answers
Welche unterstützenden Tools können optional beim Bauen eines Linux Kernels verwendet werden?
Welche unterstützenden Tools können optional beim Bauen eines Linux Kernels verwendet werden?
Signup and view all the answers
Was ist die Funktion des Verzeichnisses mm/
im Linux Kernel?
Was ist die Funktion des Verzeichnisses mm/
im Linux Kernel?
Signup and view all the answers
Warum ist das Verzeichnis drivers/
im Linux Kernel so wichtig?
Warum ist das Verzeichnis drivers/
im Linux Kernel so wichtig?
Signup and view all the answers
Was ist die Rolle des Verzeichnisses init/
im Linux Kernel?
Was ist die Rolle des Verzeichnisses init/
im Linux Kernel?
Signup and view all the answers
Erläutern Sie die Funktion des Verzeichnisses net/
im Linux Kernel.
Erläutern Sie die Funktion des Verzeichnisses net/
im Linux Kernel.
Signup and view all the answers
Wo finden Sie eine Schritt-für-Schritt-Anleitung zum Konfigurieren und Bauen eines Linux Kernels?
Wo finden Sie eine Schritt-für-Schritt-Anleitung zum Konfigurieren und Bauen eines Linux Kernels?
Signup and view all the answers
Was ist ein Nanokernel und welche Vorteile und Nachteile hat er?
Was ist ein Nanokernel und welche Vorteile und Nachteile hat er?
Signup and view all the answers
Erkläre, was ein modularer Kernel ist und nenne ein Beispiel.
Erkläre, was ein modularer Kernel ist und nenne ein Beispiel.
Signup and view all the answers
Wer ist Linus Torvalds und was war sein Beitrag zur Entwicklung von Linux?
Wer ist Linus Torvalds und was war sein Beitrag zur Entwicklung von Linux?
Signup and view all the answers
Welche Rolle spielte die Free Software Foundation in der Geschichte von Linux?
Welche Rolle spielte die Free Software Foundation in der Geschichte von Linux?
Signup and view all the answers
Was wurde 1985 von Richard Stallman gegründet und wie beeinflusste dies die Softwareentwicklung?
Was wurde 1985 von Richard Stallman gegründet und wie beeinflusste dies die Softwareentwicklung?
Signup and view all the answers
Was ist der Unterschied zwischen einem Nanokernel und einem modularen Kernel?
Was ist der Unterschied zwischen einem Nanokernel und einem modularen Kernel?
Signup and view all the answers
Nenne einen Nachteil des modularen Kernels.
Nenne einen Nachteil des modularen Kernels.
Signup and view all the answers
Was war der Zweck des verwendeten Host-Betriebssystems Minix durch Linus Torvalds?
Was war der Zweck des verwendeten Host-Betriebssystems Minix durch Linus Torvalds?
Signup and view all the answers
Wie erstellen Sie die .config-Datei aus der aktuell laufenden Konfiguration?
Wie erstellen Sie die .config-Datei aus der aktuell laufenden Konfiguration?
Signup and view all the answers
Welche Befehle können Sie verwenden, um eine neue Kernel-Konfiguration zu erstellen?
Welche Befehle können Sie verwenden, um eine neue Kernel-Konfiguration zu erstellen?
Signup and view all the answers
Wie können Sie die Anzahl der Zeilen in der .config-Datei ermitteln?
Wie können Sie die Anzahl der Zeilen in der .config-Datei ermitteln?
Signup and view all the answers
Was bewirken die Befehle $ make localmodconfig und $ make localyesconfig?
Was bewirken die Befehle $ make localmodconfig und $ make localyesconfig?
Signup and view all the answers
Welchen Befehl nutzen Sie, um das Kernel-Abbild und alle Module zu bauen und zu installieren?
Welchen Befehl nutzen Sie, um das Kernel-Abbild und alle Module zu bauen und zu installieren?
Signup and view all the answers
Wie machen Sie den neuen Kernel dem Boot-Manager bekannt?
Wie machen Sie den neuen Kernel dem Boot-Manager bekannt?
Signup and view all the answers
Welchen Befehl verwenden Sie, um eine Liste aller derzeit geladenen Module anzuzeigen?
Welchen Befehl verwenden Sie, um eine Liste aller derzeit geladenen Module anzuzeigen?
Signup and view all the answers
Warum könnte das Übersetzen eines Kernels mit vielen aktivierten Optionen sehr lange dauern?
Warum könnte das Übersetzen eines Kernels mit vielen aktivierten Optionen sehr lange dauern?
Signup and view all the answers
Welche Abhängigkeiten müssen installiert werden, um mit der Linux-Kernel-Entwicklung zu beginnen?
Welche Abhängigkeiten müssen installiert werden, um mit der Linux-Kernel-Entwicklung zu beginnen?
Signup and view all the answers
Was ist der Zweck des Befehls make oldconfig
?
Was ist der Zweck des Befehls make oldconfig
?
Signup and view all the answers
Welches Tool wird verwendet, um den Linux-Kernel zu übersetzen?
Welches Tool wird verwendet, um den Linux-Kernel zu übersetzen?
Signup and view all the answers
Wie wird der Linux-Kernel-Quellcode heruntergeladen?
Wie wird der Linux-Kernel-Quellcode heruntergeladen?
Signup and view all the answers
Nennen Sie zwei Befehle, die notwendig sind, um die Kernel-Module zu installieren.
Nennen Sie zwei Befehle, die notwendig sind, um die Kernel-Module zu installieren.
Signup and view all the answers
Welche grafische Benutzeroberfläche wird empfohlen, um die Linux-Kernel-Konfiguration zu erleichtern?
Welche grafische Benutzeroberfläche wird empfohlen, um die Linux-Kernel-Konfiguration zu erleichtern?
Signup and view all the answers
Was ist der Zweck des Befehls make help
?
Was ist der Zweck des Befehls make help
?
Signup and view all the answers
Welche zusätzlichen Pakete müssen installiert werden, um menuconfig
zu verwenden?
Welche zusätzlichen Pakete müssen installiert werden, um menuconfig
zu verwenden?
Signup and view all the answers
Study Notes
Nanokernel
- Der Nanokernel ist eine kleinere Version des Microkernels, die nur grundlegende Funktionen wie Prozesskommunikation und Interrupt-Management bereitstellt.
- Vorteile: Sehr leichtgewichtig und minimalistisch; geeignet für Embedded-Geräte.
- Nachteil: Hoher Aufwand in der Entwicklung und Anpassung an Geräte.
- Beispiele: EPOC Kernel von Symbian (z.B.: Nokia Telefone wie 3210).
Modularer Kernel
- Der modulare Kernel ist im Wesentlichen ein monolithischer Kernel, der jedoch das Nachladen von Funktionalität zur Laufzeit mittels Modulen ermöglicht, ohne das System neu starten zu müssen.
- Vorteile: Sehr flexibles System um Funktionalität nachzuladen, ohne Neustart; Reduzierung des Speicherverbrauchs, da nur geladene Module Ressourcen verbrauchen.
- Nachteil: Erbt weiterhin die Komplexität von Monolithischen Kernel.
- Beispiele: Linux (moderne Versionen mit Linux Kernel Modules).
Linux Geschichte
- Linus Torvalds, ein 21-jähriger Informatikstudent aus Helsinki, kaufte 1991 einen PC-AT mit Intel i386 Prozessor.
- Er wollte die Schutzmechanismen des neuen Prozessors ausprobieren und entwickelte einen kleinen Bootloader, der zwei Prozesse startet, wechselseitig ausführt, und diese "a" und "b" ausgeben lässt.
- Für die Entwicklung nutzte er den gcc Compiler der GNU Free Software Foundation und das Minix Betriebssystem, einen UNIX-Clone von Prof. Andrew Tanenbaum der Freien Universität Amsterdam.
Vorherige Entwicklungen
- 1985 gründete Richard Stallman die Free Software Foundation (FSF).
- 1991 gründete Richard Stallman die GNU Public License (GPL) und entwickelte die Software GNU Hurd, GNU Emacs und GNU C Compiler.
- 1991 entwickelte Prof. Andrew S. Tanenbaum für seine Betriebssystemvorlesung an der Freien Universität Amsterdam das MINIX Betriebssystem.
- MINIX wurde als Open-Source-Software veröffentlicht (~12k Zeilen Code).
- Änderungen am Code waren jedoch stark eingeschränkt.
- MINIX basierte auf einem Micro-Kernel Ansatz.
Linus Torvalds & Minix
- Linus Torvalds wollte ein kleines Terminalprogramm entwickeln, um sich auf den Servern seiner Universität einzuloggen
- Am 25.08.1991 sandte Linus eine E-Mail an die Newsgroup des MINIX Teams, in der er einen freien Minix-Clone ankündigte.
Erfolg von Linux
- Gründe für den Erfolg von Linux:
- Linus Torvalds ist eine starke Persönlichkeit, die die Entwicklung vorantreibt.
- Linus Torvalds akzeptiert und bindet frühzeitig Vertraute und Mitstreiter in die Entwicklung ein.
- Er versteht es, auch konträre Entwicklungsziele zu berücksichtigen.
Übersicht des Linux Kernels
- Die Struktur des Linux Kernels hat sich seit Beginn nicht verändert:
- documentation/ (Alles über Linux)
- arch/ (Architektur-abhängige Dateien z.B. x86)
- drivers/ (Alle Low-Level Treiber für Hardware)
- fs/ (Schnittstelle und Code für Filesysteme)
- include/ (Alle C-Header Dateien)
- init/ (Einsprung nach dem Booten: start_kernel)
- kernel/ ( Architektur-unabhängige Schnittstellen)
- mm/ (Memory Management Schnittstelle)
- net/ (Netzwerk Schnittstelle – ohne Treiber)
Linux Kernel bauen
- Um den Linux Kernel zu übersetzen und auszutauschen, benötigt man folgende Werkzeuge:
- Einen Compiler zur Übersetzung des Programmcodes.
- Build-Tool um den Kernel zu bauen (make).
- Tool um den gebauten Kernel zu installieren (update-grub).
Hilfestellung
- Auf dem GitLab Server der Hochschule finden Sie eine Schrittweise Anleitung zum Konfigurieren und Bauen eines Linux-Kernels.
- https://gitlab.hs-esslingen.de/dgrewe/betriebssysteme
Voraussetzungen (II)
- Abhängigkeiten installieren:
-
sudo apt-get update
-
sudo apt-get install build-essential libncurses-dev bison flex libssl-dev libelf-dev
-
- Kernel-Quellcode herunterladen und entpacken
-
wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.10.1.tar.xz
-
tar -xvf linux-5.10.1.tar.xz
-
cd linux-5.10.1
-
Kernel Übersetzung mit Make
- Die "Eigenschaften" von Linux werden konfiguriert.
- Das Tool
make
ermöglicht den Bau des Kernels.-
make help
(zeigt Hilfe zu Make-Parametern an) -
make config
(fragt nach allen Parametern, erzeugt .config) -
make oldconfig
(basierend auf einer .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
(Das selbe evtl. mit neuerer Firmware)
-
Kernel Konfiguration mit Qt
- Für die Verwendung von Qt benötigt Ubuntu:
-
sudo apt-get install libqt4-dev
-
sudo apt-get install g++
-
Kernel Konfiguration mit Menuconfig
- Für die Verwendung von Menuconfig benötigt man:
-
sudo apt-get install libncurses5-dev
-
sudo make menuconfig
-
Kernel Konfiguration Menuconfig (II)
- Erstellen/Machen Sie die .config aus der aktuell laufenden Konfiguration:
-
make oldconfig
-
- Erstellen/Umkonfigurieren Sie den Kernel:
-
make menuconfig
(Ncurses Oberfläche) -
make xconfig
(QT Oberfläche, falls QT4-Bibliothek installiert)
-
- Suchen Sie die Option für das Dateisystem EXT4 …
- Speichern Sie Ihre .config-Datei beim Beenden.
- Wieviele Zeilen hat Ihre .config-Datei?(Hint: wc…)
Kernel Übersetzung (I)
-
Die Übersetzung des Kernels mit der aktuell erstellten Konfiguration würde eine Ewigkeit dauern.
-
Das von Debian bereitgestellte Dateisystem ist schnell, aber bei vielen parallelen "builds" wäre es sehr langsam.
-
Debian aktiviert alle möglichen Treiber und Optionen!
-
Kernel-Debugging und andere Optionen sind ebenfalls aktiviert, die uns (und unter einer VM) nicht interessieren.
-
Modifizierte Konfiguration:
-
make localmodconfig
(erzeugt .config, die nur die momentan geladenen Module aktiviert) -
make localyesconfig
(erzeugt .config, die alle momentan geladenen Module fest in den Kern kompiliert! Keine weiteren Module) - Kleinerer Kern, weniger Module, kürzere "build" Zeit
-
Kernel Übersetzung & Installation (II)
- Bauen und installieren Sie das Kernel-Abbild / Image und alle Module:
-
make all install modules_install
-
make V=1 all install modules_install
(v = verbose; liefert Ausgaben)
-
- Machen Sie den neuen Kernel dem Boot-Manager (hier: grub) bekannt:
update-grub
- Wie groß sind die Images in /boot?
- Geben Sie sich eine Liste aller geladenen Module auf der Konsole aus:
-
lsmod
(Liste aller derzeit geladenen Module)
-
Kernel Booten / Starten
- Booten / Starten Sie Ihren neuen Kernel.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
Dieser Quiz behandelt die Konzepte des Nanokernels und des modularen Kernels in Betriebssystemen. Er lernt die Vor- und Nachteile beider Kerneltypen sowie deren Anwendungen und historische Entwicklungen kennen. Ideal für Studierende der Informatik und Technikinteressierte.