Linux Betriebssystem

Betriebssystemkern Grundlegende Bibliotheken Systemprogramme Oberfläche

Betriebssystemkern Grundlegende Bibliotheken Systemprogramme Oberfläche


M. M.
Diese Lernkarten bieten einen umfassenden Überblick über das Linux-Betriebssystem auf Universitätsniveau. Sie decken Themen wie den Kernel, Dateisysteme, Netzwerkkonfiguration und Systemadministration ab. Die Karteikarten behandeln unter anderem die verschiedenen Stages des Bootvorgangs, die Verwaltung von Benutzern und Gruppen, sowie die Nutzung von Tools wie PAM und YUM. Ideal für Studierende und IT-Professionals, die ihr Verständnis von Linux vertiefen möchten.
Cartes-fiches
48
Utilisateurs
8
Langue
Allemand
Catégorie
Informatique
Niveau
Université
Créé / Mis à jour
01.12.2015 / 24.03.2023

Cartes-fiches

Betriebssystemkern

Schnittstelle zur Hardware:

- Prozessor, Speicher, Geräte

Speicherverwaltung

Prozessverwaltung/Scheduler

Geräteverwaltung

Dateisysteme

 

Unterschied Monolythischer- und Microkernel

Monolythisch: alles (Treiber, Code) in höchster Schutzstufe (Kernel Modus) (hier ist Linux einzuordnen)

Micro:wenig auf höchster Schutzstufe (Kernel Modus) (Treiber usw...)

Kernel Threads, Beispiel SWAP

existieren trotz monolythischer Struktur

Hintergrundtasks, die auf Kernel durchgeführt werden (assynchron, "housekeeping")

SWAP: Hängt direkt mit Memory zusammen

Wie ist Linux aufgebaut

Kernel + weitere (unabhängige) Software

GNU Projekt

gcc / g++ Compiler, libgcc

init System

POSIX Struktur (Datei)

Shell / X11

verschiedene Distributionen (Installierfähige Ausprägung)

Oberfläche in Linux

Shell (Textinterface)

X11 (Grafische Oberfläche), Nutzbar mit Window Manager (KDE, Gnome)

X11 "Grafiktreiber" (Rechtecke)

Philosophie von Linux

ALLES IST EINE DATEI

Universelles Interface

Leicht verknüpfbar

Bootvorgang in Linux

Firmeware Stage --> Bootloader Stage --> Kernel Stage (Common Kernel, Initial Ramdisk) --> Init Stage (rc.sysinit, Runlevel Scripts)

Firmware Stage (1/4)

BIOS

Master Boot Record wird ausgeführt (512 Byte vom Bootmedium)

Boatloader wird gestartet

Bootloader (2/4) + GRUB

Kernel laden und mit Bootinfos versorgen

z.B. LILO

GRUB:

- Firmware lädt GRUB boot sector

- /boot/grub/stage2 über BIOS geladen (mehrere 100kbyte)

- GRUB stellt Komandozeile + Menü bereit

- Ausführen des Befehls: BOOTEN

Kernel (3/4)

Initialisierung:

-CPU Geschwindigkeit und delay loop

Anzeige Hardware

PCI Bus anbinden

Virtual Memory Management

Einkompilierte Treiber initialisieren

Initial Ramdisk

Zugriff for Systemstart

kann Treiber laden (notwendige)

Init (4/4)

Prozessnr 1

Systemstart nach dem Kernel

/etc/inittab

-runlevel (Zustand des OS --> Übergänge bei Zuständen: starten/stoppen von Diensten)

-Systeminitialisierungskomando

runlevel scripts (alt, init Scripte werden nacheinander ausgeführt)

upstart (neu, eigenes Softwaresystem das eigenständig Sachen hochfahren kann, schnelle bootzeiten)

/dev

ALLES IST EINE DATEI

ANsteuerung von Hardware

Treiber Interface = device file (ttyS0, sda, zero)

3 Infos für jedes Device:

-Art des Zugriffs: Block (z.B. Festplatte), Zeichenorientiert (z.B. Tastatur)

- Hauptgerätenummer (major device number)

- Nebengerätnummer (minor device number)

sysfs

neuerung zu /dev

virtuelles Dateisystem

Baum gibt Struktur, Blätter les/schreibbare Pseudodateien

udev

Brücke zwischen /dev und /sys

Prozess läuft mit und legt alles im dev an, was angesteckt wird, quasi "on the fly"

/proc

Schnittstelle zwischen User und Kernel

Virtuelles Filesystem

Funktion: Infos auslesen(über Prozesse), Kernelparameter ändern

Shell Bash Grundlagen

#!/bin/bash Interpreter

STDIN, STDOUT, STDERR: Standards: In, out, error

Redirection: | = Verknüpfung, > Umleitung

Environment

Home directory

Umgebungsvariablen (set/export)

$PATH Ausführungspfad

VFS

nur 1 Dateibaum, alles wird eingehängt mit "mount"

Trennzeichen: /

Dateirechte

owner, group und "andere"

3 Rechte: read, write, execute

Exit Status

exit FUnktion 0-255 Argumente

nur 0 steht für Sucess, Rest für Fehler

Paketmanager

Sinn: Erlauben Distributionsbasiertes Installieren von Binarys

File Archiv + Meta Daten

Herkunftssignierung (Package GPG signing)

YUM

Automatisches Auflösen von Abhängigkeiten

Automatisches Nachladen von benötiger Software bei Installation

Automatische Updates

syslog

Loggingsystem für alle Prozesse

syslogd/klogd sammeln log Messages aller Prozesse und speichern in Dateien (Facilities)

unterteilung nach facility und level (alles was höheres Level hat wird an entsprechende Stelle gesendet)

Zeitgesteuerte Jobs (Cron)

Management

MI  S  T  Mo  Wt  Kommando

01  *  *    *     *   root run-parts

Zeiten, in denen ein Kommando ausgeführt wird

Netwerkbausteine

link (Netzwerkschnittstelle) --> Layer 2 / Layer 1 ISO/OSI

address (protokollabhängige Adressen) --> Layer 3

neighbour (ARP Cache) --> Layer 2

route (Routen) --> Layer 3

rule (Routing Regeln) --> Layer 2

ARP Cache

Rechner will mit IP kommunizieren --> Routingentscheidung --> ARP Request --> Verbindung speichern in ARP Cache --> Schicken an MAC-Adresse

Lokale IP: Mac-Adresse des Users

Remote IP: Mac-Adresse des Routers

links/Interfaces

Loopback (127.0.0.1)

MTU (Maximum Transfer Unit)

Administration via Network

SSH --> Verschlüsselt auf Shell auf anderem Rechner zugreifen

scp --> Verschlüsselt Dateien auf anderen Rechner kopieren

Meldung von public key von System sich ändert --> Man in the MIddle Angriff

Netfilter

Paketfilter im Kernel

3 Funktionsgruppen: filter, nat (umschreiben Adresse), mangle (sonstige Änderungen)

filter: INPUT, OUTPUT, FORWARD

nat: vor (Ziel Ändern), nach (Quelle ändern) routing

Regelliste (Chains pro table)

Pro Regel 1 Target (ACCEPT; DROP/REJECT; DNAT/SNAT/MASQUERADE; LOG/ULOG; MARK; NOTRACK/TARPIT)

Regel: iptables -A FORWARD -s 192.168.1.5 -d 192.168.3.10 -p tcp --dport 80 -j ACCEPT

connection tracking

Statefull firewall

Tabelle, die Kernel hält und Verbindungen trackt --> Pakete nach nadshake erlauben/zuordnen, Kernel schreibt mit

SNAT

Quelladress verändern

Bilden eines Netzwerks hinter einem Router ins Netz mit 1 Adresse

DNAT

Port auf externe IP auf interne IP weitergeben ("Portforwarding")

Dateisystem:ext2

Stadard Linux Dateisystem

Partitionen bis 4TB

Dateinamen bis 255 Zeichen

Block size variable (z.B. 1024 byte), organisiert in Block groups

Superblock/Groupdescriptors werden repliziert

ext2 inode

inode enthält Metadaten (Zeitpunkt der erstellung, verlinkung auf nächsten Datenblock)

3 stufige Verlinkung für große Block

FS Journaling

Konsistenz: Jede Änderung ist Nachvollziehbar

Log wird mitgeschrieben --> Warten bis Daten sicher geschrieben sind --> Änderung ins Dateisystem übertragen vgl DB

ext3

ext2 + Journaling

3 Modi: Journal (alle Daten und metadaten, slow and safe), Ordered (Nur Metadaten + flush, Änderung an Inode geloggt), Writeback (Nur Metadaten)

ext4

EXTENTS

definition von Blockbereichen möglich (große Dateien)

Block based storage

physikal Volume (speichergerät) --> VolumeGroup (Speicherpool) --> Aufteilung in logical Volume (Einzelne Blockdevices)

loopback/loopdevice

loopdevice macht aus Carrier ein Blockdevise

Étudier