Files
lpic-sim/simulator/data/lpic1_101/questions_102_set2.json
T
2026-10-30 15:40:37 +01:00

370 lines
25 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"$schema": "../schema/questions.schema.json",
"format": "lpic-sim-questions",
"meta": {
"file": "questions_102_set2.json",
"brief": "Zweiter Fragensatz zu Topic 102 Linux-Installation und Paketverwaltung (LPIC-1 101-500, Objectives 5.0)",
"author": "Björn Runden <br@runden.de>",
"owner": "Björn Runden <br@runden.de>",
"assist": "KI-unterstützt (Claude Opus 5.5), geprüft von Björn Runden <br@runden.de>",
"version": "0.1.0 (30.10.2026)"
},
"exam": "lpic1-101",
"questions": [
{
"id": "102.1-004",
"objective": "102.1",
"type": "single",
"difficulty": 1,
"question": "Wofür nutzt Linux eine Swap-Partition bzw. Swap-Datei?",
"options": [
{ "id": "a", "text": "Zum Auslagern selten genutzter Speicherseiten bei knappem Arbeitsspeicher (und für den Ruhezustand)", "correct": true, "explanation": "Swap erweitert den virtuellen Speicher; Hibernate schreibt den RAM-Inhalt dorthin." },
{ "id": "b", "text": "Zum Ablegen temporärer Dateien statt `/tmp`", "correct": false, "explanation": "Swap enthält kein Dateisystem für Dateien." },
{ "id": "c", "text": "Als Sicherungskopie der Partitionstabelle", "correct": false, "explanation": "Die GPT-Sicherung liegt am Plattenende, nicht im Swap." },
{ "id": "d", "text": "Zum Starten des Kernels", "correct": false, "explanation": "Kernel und initramfs liegen in `/boot`." },
{ "id": "e", "text": "Als Cache für Paketdownloads", "correct": false, "explanation": "Paket-Caches liegen unter `/var/cache`." }
],
"explanation": "Aktive Swap-Bereiche zeigen `swapon --show` und `free -h`.",
"references": ["man 8 swapon"]
},
{
"id": "102.1-005",
"objective": "102.1",
"type": "single",
"difficulty": 2,
"question": "Warum legt man `/boot` häufig auf eine **eigene, unverschlüsselte** Partition?",
"options": [
{ "id": "a", "text": "Damit der Bootloader Kernel und initramfs lesen kann, auch wenn das Root-Dateisystem verschlüsselt ist oder in LVM/RAID liegt", "correct": true, "explanation": "Die initramfs entschlüsselt bzw. aktiviert dann das eigentliche Root-Dateisystem." },
{ "id": "b", "text": "Weil `/boot` die Benutzerdaten enthält", "correct": false, "explanation": "Benutzerdaten liegen in `/home`." },
{ "id": "c", "text": "Weil `/boot` ständig wächst und das Root-Dateisystem füllen würde", "correct": false, "explanation": "`/boot` ist klein und wächst kaum." },
{ "id": "d", "text": "Weil Swap in `/boot` liegen muss", "correct": false, "explanation": "Swap ist ein eigener Bereich." },
{ "id": "e", "text": "Weil `/boot` immer XFS sein muss", "correct": false, "explanation": "Dafür gibt es keine solche Vorgabe; üblich ist ext4." }
],
"explanation": "Bei UEFI kommt zusätzlich die EFI-Systempartition (FAT) hinzu.",
"references": ["man 7 hier"]
},
{
"id": "102.1-006",
"objective": "102.1",
"type": "fill",
"difficulty": 1,
"question": "Unter welchem Pfad wird die EFI-Systempartition üblicherweise eingehängt?",
"answers": ["/boot/efi", "/efi"],
"explanation": "Dort liegen z. B. `EFI/debian/grubx64.efi` oder `shimx64.efi`.",
"references": ["UEFI-Spezifikation, Abschnitt EFI System Partition"]
},
{
"id": "102.1-007",
"objective": "102.1",
"type": "multi",
"difficulty": 2,
"question": "Welche Verzeichnisse müssen laut klassischer FHS-Vorgabe auf dem **Root-Dateisystem** liegen und dürfen keine eigene Partition sein?",
"options": [
{ "id": "a", "text": "`/etc`", "correct": true, "explanation": "Konfiguration wird gebraucht, bevor weitere Dateisysteme eingehängt sind (z. B. `/etc/fstab`)." },
{ "id": "b", "text": "`/sbin`", "correct": true, "explanation": "Programme wie `mount` und `fsck` müssen beim Start verfügbar sein." },
{ "id": "c", "text": "`/home`", "correct": false, "explanation": "Typischer Kandidat für eine eigene Partition." },
{ "id": "d", "text": "`/var`", "correct": false, "explanation": "Kann (und sollte oft) eigenständig sein." },
{ "id": "e", "text": "`/tmp`", "correct": false, "explanation": "Kann eigene Partition oder tmpfs im RAM sein." }
],
"explanation": "Ebenso `/bin`, `/lib`, `/dev`. Bei zusammengeführtem `/usr` (usrmerge) sind `/bin`, `/sbin`, `/lib` Links nach `/usr`; dann bindet die initramfs `/usr` früh ein.",
"references": ["man 7 hier"]
},
{
"id": "102.2-004",
"objective": "102.2",
"type": "single",
"difficulty": 1,
"question": "Wie installiert man GRUB 2 in den Bootsektor (MBR) der ersten Festplatte eines BIOS-Systems?",
"options": [
{ "id": "a", "text": "`grub-install /dev/sda`", "correct": true, "explanation": "Ziel ist das ganze Gerät, nicht eine Partition." },
{ "id": "b", "text": "`grub-install /dev/sda1`", "correct": false, "explanation": "Installiert in den Bootsektor einer Partition – unüblich und nicht der MBR." },
{ "id": "c", "text": "`grub-mkconfig /dev/sda`", "correct": false, "explanation": "`grub-mkconfig` erzeugt nur die Konfiguration." },
{ "id": "d", "text": "`update-grub /dev/sda`", "correct": false, "explanation": "`update-grub` schreibt nur `grub.cfg`." },
{ "id": "e", "text": "`dd if=/boot/grub of=/dev/sda`", "correct": false, "explanation": "`/boot/grub` ist ein Verzeichnis; so zerstört man im schlimmsten Fall die Platte." }
],
"explanation": "Bei UEFI: `grub-install --target=x86_64-efi --efi-directory=/boot/efi`.",
"references": ["man 8 grub-install"]
},
{
"id": "102.2-005",
"objective": "102.2",
"type": "fill",
"difficulty": 1,
"question": "Welche Variable in `/etc/default/grub` legt fest, wie viele Sekunden das GRUB-Menü wartet?",
"answers": ["GRUB_TIMEOUT"],
"explanation": "Nach Änderung `update-grub` bzw. `grub-mkconfig -o …` ausführen. `GRUB_DEFAULT` legt den Standardeintrag fest.",
"references": ["info grub (Simple configuration)"]
},
{
"id": "102.2-006",
"objective": "102.2",
"type": "single",
"difficulty": 2,
"question": "Was bezeichnet `(hd0,1)` in **GRUB 2**?",
"options": [
{ "id": "a", "text": "Die erste Partition der ersten Festplatte", "correct": true, "explanation": "GRUB 2 zählt Platten ab 0, Partitionen ab 1." },
{ "id": "b", "text": "Die zweite Partition der ersten Festplatte", "correct": false, "explanation": "So wäre es bei GRUB Legacy (Partitionen ab 0)." },
{ "id": "c", "text": "Die erste Partition der zweiten Festplatte", "correct": false, "explanation": "Die zweite Platte wäre `hd1`." },
{ "id": "d", "text": "Die ganze erste Festplatte", "correct": false, "explanation": "Das wäre `(hd0)`." },
{ "id": "e", "text": "Das CD-Laufwerk", "correct": false, "explanation": "Optische Laufwerke heißen meist `(cd)`." }
],
"explanation": "Oft mit Tabellentyp: `(hd0,gpt1)` bzw. `(hd0,msdos1)`.",
"references": ["info grub (Device syntax)"]
},
{
"id": "102.2-007",
"objective": "102.2",
"type": "single",
"difficulty": 2,
"question": "Wo trägt man bei GRUB 2 **dauerhaft** zusätzliche Kernel-Parameter für alle Einträge ein?",
"options": [
{ "id": "a", "text": "In `GRUB_CMDLINE_LINUX` bzw. `GRUB_CMDLINE_LINUX_DEFAULT` in `/etc/default/grub`, danach `update-grub`", "correct": true, "explanation": "`grub-mkconfig` übernimmt die Werte in jede `linux`-Zeile." },
{ "id": "b", "text": "Direkt in `/boot/grub/grub.cfg`", "correct": false, "explanation": "Wird bei der nächsten Neuerzeugung überschrieben." },
{ "id": "c", "text": "In `/proc/cmdline`", "correct": false, "explanation": "Nur lesbar und nur die Anzeige des laufenden Starts." },
{ "id": "d", "text": "In `/etc/sysctl.conf`", "correct": false, "explanation": "Setzt Laufzeitparameter (`/proc/sys`), keine Boot-Parameter." },
{ "id": "e", "text": "In `/etc/modprobe.d/`", "correct": false, "explanation": "Optionen für Kernelmodule, keine Kernel-Befehlszeile." }
],
"explanation": "`GRUB_CMDLINE_LINUX_DEFAULT` gilt nur für normale Einträge, nicht für den Recovery-Modus.",
"references": ["info grub (Simple configuration)"]
},
{
"id": "102.3-003",
"objective": "102.3",
"type": "fill",
"difficulty": 1,
"question": "Welche Umgebungsvariable nennt zusätzliche Verzeichnisse, in denen der dynamische Linker **vorrangig** nach Shared Libraries sucht?",
"answers": ["LD_LIBRARY_PATH"],
"explanation": "Mehrere Pfade durch `:` getrennt. Für Programme mit SUID wird sie aus Sicherheitsgründen ignoriert.",
"references": ["man 8 ld.so"]
},
{
"id": "102.3-004",
"objective": "102.3",
"type": "single",
"difficulty": 2,
"question": "In welcher Datei legt `ldconfig` den Cache der bekannten Shared Libraries ab?",
"options": [
{ "id": "a", "text": "`/etc/ld.so.cache`", "correct": true, "explanation": "Binärer Cache, den der dynamische Linker beim Programmstart liest." },
{ "id": "b", "text": "`/etc/ld.so.conf`", "correct": false, "explanation": "Konfiguration der zusätzlichen Suchpfade." },
{ "id": "c", "text": "`/etc/ld.so.preload`", "correct": false, "explanation": "Liste von Bibliotheken, die jedem Programm vorab geladen werden." },
{ "id": "d", "text": "`/lib64/ld-linux-x86-64.so.2`", "correct": false, "explanation": "Das ist der dynamische Linker selbst." },
{ "id": "e", "text": "`/proc/ld`", "correct": false, "explanation": "Diesen Pfad gibt es nicht." }
],
"explanation": "Bibliotheksnamen: `libname.so.<version>` (soname), dazu Symlinks; `ldconfig` pflegt sie.",
"references": ["man 8 ldconfig"]
},
{
"id": "102.4-006",
"objective": "102.4",
"type": "single",
"difficulty": 1,
"question": "Wie installiert man die heruntergeladene Datei `tool_1.2_amd64.deb` mit dpkg?",
"options": [
{ "id": "a", "text": "`dpkg -i tool_1.2_amd64.deb`", "correct": true, "explanation": "`-i` (install) installiert bzw. aktualisiert aus der Datei." },
{ "id": "b", "text": "`dpkg -x tool_1.2_amd64.deb`", "correct": false, "explanation": "`-x` entpackt nur den Inhalt in ein Verzeichnis." },
{ "id": "c", "text": "`dpkg -c tool_1.2_amd64.deb`", "correct": false, "explanation": "`-c` listet den Inhalt." },
{ "id": "d", "text": "`dpkg -I tool_1.2_amd64.deb`", "correct": false, "explanation": "`-I` zeigt Informationen (control) zur Datei." },
{ "id": "e", "text": "`dpkg -r tool_1.2_amd64.deb`", "correct": false, "explanation": "`-r` entfernt ein installiertes Paket." }
],
"explanation": "dpkg löst keine Abhängigkeiten auf; fehlende Pakete holt anschließend `apt-get install -f`. Mit apt direkt: `apt install ./tool_1.2_amd64.deb`.",
"references": ["man 1 dpkg"]
},
{
"id": "102.4-007",
"objective": "102.4",
"type": "fill",
"difficulty": 1,
"question": "Mit welchem `apt-cache`-Aufruf (Befehl und Unterbefehl, ohne Suchbegriff) durchsucht man Paketnamen und -beschreibungen nach einem Stichwort?",
"answers": ["apt-cache search"],
"explanation": "Beispiel: `apt-cache search webserver`. Details zu einem Paket: `apt-cache show <paket>`.",
"references": ["man 8 apt-cache"]
},
{
"id": "102.4-008",
"objective": "102.4",
"type": "single",
"difficulty": 2,
"question": "Nach `dpkg -i` meldet dpkg fehlende Abhängigkeiten. Welcher Befehl installiert sie nach und schließt die Installation ab?",
"options": [
{ "id": "a", "text": "`apt-get install -f`", "correct": true, "explanation": "`-f` (fix-broken) installiert fehlende Abhängigkeiten aus den Quellen." },
{ "id": "b", "text": "`dpkg --configure -a`", "correct": false, "explanation": "Konfiguriert entpackte Pakete, lädt aber keine fehlenden Pakete." },
{ "id": "c", "text": "`apt-get update`", "correct": false, "explanation": "Aktualisiert nur die Paketlisten." },
{ "id": "d", "text": "`apt-get autoclean`", "correct": false, "explanation": "Löscht veraltete .deb-Dateien aus dem Cache." },
{ "id": "e", "text": "`apt-get check`", "correct": false, "explanation": "Prüft nur auf Probleme, behebt nichts." }
],
"explanation": "`apt-get install -f` ohne Paketnamen versucht, das System in einen konsistenten Zustand zu bringen.",
"references": ["man 8 apt-get"]
},
{
"id": "102.4-009",
"objective": "102.4",
"type": "single",
"difficulty": 2,
"question": "Welche Zeile ist ein gültiger Eintrag in `/etc/apt/sources.list`?",
"options": [
{ "id": "a", "text": "`deb http://deb.debian.org/debian bookworm main`", "correct": true, "explanation": "Typ, URI, Distribution (Suite), Komponente(n)." },
{ "id": "b", "text": "`http://deb.debian.org/debian deb bookworm main`", "correct": false, "explanation": "Der Typ `deb` bzw. `deb-src` steht am Anfang." },
{ "id": "c", "text": "`repo=http://deb.debian.org/debian`", "correct": false, "explanation": "Das ist keine sources.list-Syntax." },
{ "id": "d", "text": "`deb bookworm main http://deb.debian.org/debian`", "correct": false, "explanation": "Die URI steht direkt nach dem Typ." },
{ "id": "e", "text": "`[main] baseurl=http://deb.debian.org/debian`", "correct": false, "explanation": "Ähnelt yum-Repo-Dateien, nicht apt." }
],
"explanation": "Neueres Format: `*.sources`-Dateien (deb822) unter `/etc/apt/sources.list.d/` mit `Types:`, `URIs:`, `Suites:`, `Components:`.",
"references": ["man 5 sources.list"]
},
{
"id": "102.4-010",
"objective": "102.4",
"type": "multi",
"difficulty": 2,
"question": "Mit welchen Befehlen sieht man die **Abhängigkeiten** eines Debian-Pakets aus den Paketquellen?",
"options": [
{ "id": "a", "text": "`apt-cache depends nginx`", "correct": true, "explanation": "Listet Depends, Recommends, Conflicts usw." },
{ "id": "b", "text": "`apt-cache show nginx`", "correct": true, "explanation": "Zeigt die Paketbeschreibung inklusive Feld `Depends:`." },
{ "id": "c", "text": "`dpkg -L nginx`", "correct": false, "explanation": "Listet die Dateien eines installierten Pakets." },
{ "id": "d", "text": "`apt-get download nginx`", "correct": false, "explanation": "Lädt nur die .deb-Datei herunter." },
{ "id": "e", "text": "`apt-get autoremove nginx`", "correct": false, "explanation": "Entfernt nicht mehr benötigte Abhängigkeiten." }
],
"explanation": "Umgekehrte Richtung (wer hängt von X ab): `apt-cache rdepends <paket>`.",
"references": ["man 8 apt-cache"]
},
{
"id": "102.4-011",
"objective": "102.4",
"type": "single",
"difficulty": 2,
"question": "Was bedeutet der Status `ii` am Zeilenanfang der Ausgabe von `dpkg -l`?",
"options": [
{ "id": "a", "text": "Gewünscht: installieren, tatsächlich: installiert", "correct": true, "explanation": "Erstes Zeichen = gewünschter Zustand, zweites = aktueller Zustand." },
{ "id": "b", "text": "Entfernt, aber Konfigurationsdateien vorhanden", "correct": false, "explanation": "Das ist `rc`." },
{ "id": "c", "text": "Installation abgebrochen, Paket defekt", "correct": false, "explanation": "Das zeigt z. B. `iU` (unpacked) oder `iF` (half-configured)." },
{ "id": "d", "text": "Paket ist zur Aktualisierung vorgemerkt", "correct": false, "explanation": "Ein solcher Status steht nicht in den ersten beiden Zeichen." },
{ "id": "e", "text": "Paket ist nicht bekannt", "correct": false, "explanation": "Unbekannte Pakete erscheinen gar nicht oder als `un`." }
],
"explanation": "Installierte Pakete zählen: `dpkg -l | grep '^ii' | wc -l`.",
"references": ["man 1 dpkg-query"]
},
{
"id": "102.5-006",
"objective": "102.5",
"type": "single",
"difficulty": 1,
"question": "Welcher dnf-Befehl sucht Pakete anhand eines Stichworts in Name und Beschreibung?",
"options": [
{ "id": "a", "text": "`dnf search nginx`", "correct": true, "explanation": "Durchsucht Namen und Zusammenfassungen in den Repositories." },
{ "id": "b", "text": "`dnf info nginx`", "correct": false, "explanation": "Zeigt Details zu einem bekannten Paket." },
{ "id": "c", "text": "`dnf provides nginx`", "correct": false, "explanation": "Sucht, welches Paket eine Datei oder Fähigkeit bereitstellt." },
{ "id": "d", "text": "`dnf check-update`", "correct": false, "explanation": "Listet verfügbare Aktualisierungen." },
{ "id": "e", "text": "`dnf history`", "correct": false, "explanation": "Zeigt vergangene Transaktionen." }
],
"explanation": "Die meisten Unterbefehle funktionieren gleich mit `yum`.",
"references": ["man 8 dnf"]
},
{
"id": "102.5-007",
"objective": "102.5",
"type": "fill",
"difficulty": 2,
"question": "Mit welchem dnf-Unterbefehl (Befehl und Unterbefehl, ohne Argument) findet man heraus, welches Paket eine Datei wie `/usr/bin/dig` bereitstellt – auch wenn es nicht installiert ist?",
"answers": ["dnf provides", "dnf whatprovides", "yum provides", "yum whatprovides"],
"explanation": "Für installierte Pakete genügt `rpm -qf`; `provides` durchsucht die Repositories.",
"references": ["man 8 dnf"]
},
{
"id": "102.5-008",
"objective": "102.5",
"type": "single",
"difficulty": 1,
"question": "Wo liegen bei yum bzw. dnf die Definitionen der Paket-Repositories?",
"options": [
{ "id": "a", "text": "In `*.repo`-Dateien unter `/etc/yum.repos.d/`", "correct": true, "explanation": "Abschnitte mit `[id]`, `name=`, `baseurl=` bzw. `metalink=`, `enabled=`, `gpgcheck=`." },
{ "id": "b", "text": "In `/etc/apt/sources.list`", "correct": false, "explanation": "Das ist apt (Debian)." },
{ "id": "c", "text": "In `/var/lib/rpm/`", "correct": false, "explanation": "Dort liegt die RPM-Datenbank der installierten Pakete." },
{ "id": "d", "text": "In `/etc/zypp/repos.d/`", "correct": false, "explanation": "Das ist zypper (openSUSE)." },
{ "id": "e", "text": "In `/etc/rpmrc`", "correct": false, "explanation": "Allgemeine rpm-Einstellungen, keine Repositories." }
],
"explanation": "Globale Einstellungen: `/etc/dnf/dnf.conf` bzw. `/etc/yum.conf`. Repos auflisten: `dnf repolist`.",
"references": ["man 5 yum.conf", "man 5 dnf.conf"]
},
{
"id": "102.5-009",
"objective": "102.5",
"type": "single",
"difficulty": 2,
"question": "`rpm -V openssh-server` gibt die Zeile `S.5....T. c /etc/ssh/sshd_config` aus. Was bedeutet sie?",
"options": [
{ "id": "a", "text": "Größe, Prüfsumme und Änderungszeit der Konfigurationsdatei weichen vom Paketstand ab.", "correct": true, "explanation": "`S` Größe, `5` Digest, `T` mtime; `c` kennzeichnet eine Konfigurationsdatei." },
{ "id": "b", "text": "Die Datei fehlt.", "correct": false, "explanation": "Fehlende Dateien meldet rpm mit `missing`." },
{ "id": "c", "text": "Nur die Rechte der Datei wurden geändert.", "correct": false, "explanation": "Rechteänderungen zeigt `M` an der zweiten Stelle." },
{ "id": "d", "text": "Das Paket ist beschädigt und muss neu installiert werden.", "correct": false, "explanation": "Angepasste Konfigurationsdateien sind normal." },
{ "id": "e", "text": "Die Signatur des Pakets ist ungültig.", "correct": false, "explanation": "Signaturen prüft `rpm -K paket.rpm`." }
],
"explanation": "Ein Punkt bedeutet „Test bestanden“. Weitere Zeichen: `U` Eigentümer, `G` Gruppe, `L` Linkziel.",
"references": ["man 8 rpm (Abschnitt VERIFY OPTIONS)"]
},
{
"id": "102.5-010",
"objective": "102.5",
"type": "multi",
"difficulty": 2,
"question": "Welche Aussagen zu zypper treffen zu?",
"options": [
{ "id": "a", "text": "`zypper install nano` installiert das Paket samt Abhängigkeiten.", "correct": true, "explanation": "Kurzform `zypper in nano`." },
{ "id": "b", "text": "`zypper refresh` aktualisiert die Metadaten der Repositories.", "correct": true, "explanation": "Kurzform `zypper ref`; entspricht `apt-get update`." },
{ "id": "c", "text": "`zypper search nano` installiert alle Treffer.", "correct": false, "explanation": "`search` sucht nur." },
{ "id": "d", "text": "`zypper repos` löscht alle Repositories.", "correct": false, "explanation": "`repos` (`lr`) listet sie; entfernen: `removerepo`." },
{ "id": "e", "text": "zypper verwaltet Debian-Pakete.", "correct": false, "explanation": "zypper arbeitet mit RPM-Paketen (openSUSE, SLES)." }
],
"explanation": "Weitere: `zypper update`, `zypper remove`, `zypper addrepo`, `zypper what-provides`.",
"references": ["man 8 zypper"]
},
{
"id": "102.5-011",
"objective": "102.5",
"type": "single",
"difficulty": 1,
"question": "Wie entfernt man das installierte Paket `nano` direkt mit rpm?",
"options": [
{ "id": "a", "text": "`rpm -e nano`", "correct": true, "explanation": "`-e` (erase) entfernt das Paket; abhängige Pakete verhindern das." },
{ "id": "b", "text": "`rpm -r nano`", "correct": false, "explanation": "rpm kennt `-r` nicht zum Entfernen." },
{ "id": "c", "text": "`rpm -U nano`", "correct": false, "explanation": "`-U` aktualisiert aus einer Paketdatei." },
{ "id": "d", "text": "`rpm -qe nano`", "correct": false, "explanation": "Keine gültige Kombination." },
{ "id": "e", "text": "`rpm -d nano`", "correct": false, "explanation": "`-d` gehört zu Abfragen (Dokumentationsdateien, `-qd`)." }
],
"explanation": "Mit Abhängigkeitsauflösung: `dnf remove nano`.",
"references": ["man 8 rpm"]
},
{
"id": "102.6-003",
"objective": "102.6",
"type": "single",
"difficulty": 1,
"question": "Was unterscheidet einen Linux-**Container** grundlegend von einer virtuellen Maschine?",
"options": [
{ "id": "a", "text": "Container teilen sich den Kernel des Hosts; eine VM bringt einen eigenen Kernel auf virtueller Hardware mit.", "correct": true, "explanation": "Container isolieren Prozesse über Namespaces und cgroups." },
{ "id": "b", "text": "Container benötigen immer einen Hypervisor vom Typ 1.", "correct": false, "explanation": "Container brauchen gar keinen Hypervisor." },
{ "id": "c", "text": "In einem Container läuft stets ein anderes Betriebssystem als Linux.", "correct": false, "explanation": "Linux-Container nutzen den Linux-Kernel des Hosts." },
{ "id": "d", "text": "VMs starten schneller, weil sie keinen Kernel laden.", "correct": false, "explanation": "VMs booten einen eigenen Kernel; Container starten meist schneller." },
{ "id": "e", "text": "Container haben keinen Zugriff auf Netzwerk.", "correct": false, "explanation": "Container haben normalerweise eigene virtuelle Netzwerkschnittstellen." }
],
"explanation": "Begriffe aus 102.6: Systemcontainer (vollständiges Userland) und Anwendungscontainer (einzelne Anwendung).",
"references": ["man 7 namespaces", "man 7 cgroups"]
},
{
"id": "102.6-004",
"objective": "102.6",
"type": "multi",
"difficulty": 2,
"question": "Welche Aussagen zur Virtualisierung treffen zu?",
"options": [
{ "id": "a", "text": "Paravirtualisierte Treiber (z. B. virtio) verbessern die I/O-Leistung von Gästen.", "correct": true, "explanation": "Der Gast weiß, dass er virtualisiert läuft, und spricht mit dem Hypervisor über effiziente Schnittstellen." },
{ "id": "b", "text": "Ein Hypervisor vom Typ 1 läuft direkt auf der Hardware.", "correct": true, "explanation": "Beispiele: Xen, KVM (als Teil des Linux-Kernels), ESXi. Typ 2 läuft auf einem Host-Betriebssystem." },
{ "id": "c", "text": "Jeder Container enthält einen eigenen Kernel.", "correct": false, "explanation": "Container nutzen den Kernel des Hosts." },
{ "id": "d", "text": "cloud-init läuft auf dem Hypervisor und konfiguriert alle Gäste von außen.", "correct": false, "explanation": "cloud-init läuft **im** Gast beim ersten Start." },
{ "id": "e", "text": "Ohne Gasterweiterungen kann eine VM nicht starten.", "correct": false, "explanation": "Gasterweiterungen verbessern Leistung und Integration, sind aber nicht nötig." }
],
"explanation": "In VMs zeigt `systemd-detect-virt` die erkannte Virtualisierung an.",
"references": ["man 1 systemd-detect-virt"]
}
]
}