Title: IN0009_GBS / GBS: Kapitel 7: Dateisysteme
On every note of this deck, unless a note says otherwise:
Title: IN0009_GBS::GBS: Kapitel 7: Dateisysteme
Logo: tum_logo.png

Front: Welche Aufgaben hat das Dateisystem?
Back: - Virtualisierung der Disk
- Implementierung von Dateien / Ordnern
- Organisation von Dateien
- Verwaltung von Zugriffsrechten

Front: Nenne drei Dateisysteme
Back: - ext2, 3, 4 (Unix)
- fat16, fat32 (DOS)
- NTFS (Windows)
- hfs (macOS)

Front: Welche aufgabe hat die Dateiendung?
Back: - An sich wird die Dateiendung nicht vom Betriebsystem interpretiert.
- Meistens wird für jede Endung ein default Programm zum öffnen festgelegt.

Front: Auf welche drei arten können Dateien strukturiert werden?
Back: 1. Unstrukturiert als folge von bytes
2. Sequenz von Records / feste Blöcke (heute unüblich)
3. Baumstruktur mit Blöcken unterschiedlicher Größe (Bei Großrechnern manchmal verwendet)

Front: Welche 6 Arten von Dateien gibt es unter Unix?
Back: 1. Reguläre Dateien
2. Ordner
3. Character special files (z.b. IO geräte)
4. Block special files (Massenspeicher, z.b. disk)
5. FIFO special (pipes)
6. symbolic link (Verweise auf andere Dateien)

Front: Welche zwei Arten von Dateizugriff wurden besprochen?
Back: 1. Sequential access (in älteren Systemen)
2. Random Access

Front: Welche Dateiattribute wurden besprochen?
Back: - Zugriffsrechte
- Flags (z.b. Wann die Datei zuletzt verändert wurde)
- Dateigröße

Front: Wie sind Unix Zugriffrechte Aufgebaut?
Back: - r (read), w (write), x (execute) bits
- Drei Gruppen: Owner, Group, All
Beispiel: rwxr-x--- = Nur owner und gruppe können datei lesen und Ausführen. User kann die Datei schreiben

Front: Was macht der syscall unlink()?
Back: Löscht die Datei

Front: Was machen die Dateien . und .. bei Unix Systemen
Back: - "." Verweist auf den momentanen Ordner
- ".." Verweist auf den übergeordneten Ordner

Front: Was ist der MBR?
Back: - Master Boot Record
- In Sektor 0 der Platte gespeichert
- Enthält Bootloader, wird beim starten des Geräts ausgeführt
- Enthält Partitionstabelle mit max. 16 Einträgen (moderne alternative: GUID partition table)

Front: Was ist eine primäre Partition?
Back: - Die Partition auf der das Betriebssystem installiert ist.

Front: Was ist eine extended partition?
Back: - Eine Partition im MBR welche weitere Partitionen enthält.
- Referenzen zu weitere Partitionen (sog. logische Partitionen) werden als linked list gepspeichert

Front: Vorteile GUID Partition Table (GPT) vs MBR?
Back: - GPT ist moderner
- GPT erlaubt mehr Partitionen gleichzeitig
- GPT erlaubt größere Partitionen
- GPT hat backup partition table

Front: Was ist ein superblock?
Back: - Speichert Metadaten über das File system der Partition (z.b. FS type)

Front: Was ist eine i-node?
Back: - Speichert Metadaten über eine Datei im FS (z.b. permissions)

Front: In welcher Reihenfolge befinden sich die File permission bits?
Back: - user, group all
- read, write, execute

Front: Was ist die SUID bei einem File?
Back: - Eine Datei mit SUID flag wird mit den permissions des owners ausgeführt

Front: Was ist die SGID bei einem File?
Back: - Eine Datei mit SGID flag wird mit den permissions der gruppe des owners ausgeführt

Front: Was ist das sticky bit bei einem File?
Back: - Wird bei Verzeichnissen angewendet
- Nur der owner einer Datei im Verzeichnis darf diese löschen/umbenennen
- Beispiel /tmp

Front: Wie werden i-nodes organisiert?
Back: - Sequenziell in der i-node table
- Jede i-node besitzt eine ID

Front: Wie sind Verzeichnisse implementiert?
Back: - Verzeichnisse sind Dateien
- Enthalten eine Liste von verweisen auf i-nodes IDs der Inhalte und die Pfade

Front: Was ist ein Block bei Unix?
Back: - Kleinste Speichereinheit auf der Disk

Front: Was sind direct und indirect blocks bei Unix systemen?
Back: - Teile von i-nodes
- Speichern Verweise auf die Blöcke die ein FIle ausmachen
- Indirect blocks sind Verweise auf Verweise in Baumstruktur (singe = tiefe 1, double = tiefe 2...)

Front: Was ist eine File Allocation Table?
Back: - Eine möglichkeit Dateien zu implementieren
- Liste von Blöcken die zu einer Datei gehören
- FAT muss vollständig im Hauptspeicher liegen -> Sehr großer Verschnitt
- Moderne Alternative: i-nodes

Front: Wie können variable Längen bei Dateien implementiert werden?
Back: - Zeichenlimitierung
- Pointer auf den Heap -> Speichern als Hashmap, da die Dateisuche in einem Ordner sosnt lanmgsam wird

Front: Was ist der Unterscheid zwischen Hard links und symbolic links?
Back: Hard Links:
- Verzeichnis verweist direkt auf die i-node der gelinkten Datei
- Gelinkte Datei hat einen reference counter in der i-node
- mit dem syscall unlink() wird der link entfernt -> Dateien ohne links werden gelöscht Symbolic links:
- Eine Datei vom Typ "symbolic link" wird erstellt welche auf die verlinkte Datei verweist

Front: Was sind Journaling Dateisysteme?
Back: - Erstellen log Einträge über alle Operationen
- Abschluss der Informationen wird auf Platte vermerkt

Front: Welchen Vorteil haben Journaling Dateisysteme?
Back: Robuster gegen crashes, da Veränderungen wieder hergestellt werden falls Hauptspeicher gelöscht

Front: Was ist eine Idempotente Operation?
Back: Wiederholtes ausführen der Operation führt zum selben ergebnis

Front: Was ist das VFS?
Back: - Virtual File System
- Abstrahiert verschiedene Dateisysteme
- stellt für Anwendungen ein Homogenes Interface dar
- Transparent für Anwendungen
- Implementiert standard Unix syscalls (open, write...)

Front: Was ist das File Cache bei Dateisystemen?
Back: - Puffer für Datenblöcke

Front: Kann Hugo den Ordner testdir lesen? drw------- 2 hugo hugo 60 Feb 24 18:31 testdir
Back: Er kann die Dateinamen auslesen, aber nicht in den Ordner wechseln, oder Information über die Dateien erhalten. Für die letzteren Operationen werden execute (x) Rechte benötigt.

Front: Warum haben die meisten Ordner auf Unix Systemen das execute (x) Bit gesetzt?
Back: Das execute Bit ist notwendig, um in den Ordner zu wechseln. Ohne dieses Bit können keine Metadaten über die Dateien im Ordner abgerufen werden.

Front: nenne alle bestandteile einer unix festplatten partition
Back: - Bootblock
- Superblock
- datenblöcke
- root dirs
- verzeichnis management
- i-nodes
- freie blöcke management

Front: nenne alle bestandteile einer ext2,3,4 block group
Back: - Superblock (enthält root dir)
- group descriptor
- i-nodes
- block bitmap
- inode bitmap
- group descriptor

Front: Nenne die bestandteile einer I-Node
Back: - File type
- owner
- user permissions
- timestamps
- hardlink count
- flags
- Adressen der referenzierten blöcke

Front: Was ist "line discipline"?
Back: - wie der terminal daten aufnimmt und verarbeitet
- cooked mode / zeilenorientiert: eingaben werden vorverarbeitet, backspace, echo, enter etc
- raw mode: Zeichen ungefiltert