Dateien & Verzeichnisse Flashcards
Was ist eine Datei
eine Sammlung von Daten, die auf einem Computersystem gespeichert wird.
Jede Datei wird durch mindestens einen Pfad im Verzeichnisbaum identifiziert.
Der letzte Teil des Pfades heißt Dateiname und enthält oft eine Erweiterung, um das Dateiformat zu beschreiben.
Für jede Datei existiert eine Inode (index node) im Dateisystem, die Informationen zu der Datei verwaltet.
Dateiattribute
- Besitzer und Gruppe
- Größe
- Zugriffs- und Modifikationszeiten
- Zugriffsrechte
Zugriffsrechte
definieren, wer auf eine Datei zugreifen, sie lesen, schreiben oder ausführen darf.
In Linux/Unix werden Schutzbits auf drei Kategorien von Nutzern angewendet:
- den Eigentümer der Datei (user),
- die Gruppe (group), und
- alle anderen Nutzer (others).
Es gibt drei Arten von Berechtigungen: Lesen, Schreiben und Ausführen.
Was bedeuted [rwx r-x —]?
Der Eigentümer darf lesen, schreiben und ausführen, die Gruppe darf lesen und ausführen, andere haben keine Rechte.
Was heißt ‘644’ in der Oktalen Schreibweise?
Der Eigentümer hat Lesen und Schreiben, die Gruppe und andere haben jeweils Lesen.
Linux Dateitypen
- Reguläre Dateien: Enthalten Daten in einem bestimmten Format (z.B. Text, Binär).
- Verzeichnisse: Enthalten eine Liste von Dateinamen und Verweisen auf weitere Verzeichnisse.
- Symbolische Links: Verweisen auf eine andere Datei oder ein anderes Verzeichnis.
- Pipes und Sockets: Erlauben die Kommunikation zwischen Prozessen durch eine gemeinsame Datenleitung.
- Block Devices: Erlauben den sequentiellen Zugriff auf Datenträgerblöcke, z.B. Festplatten.
- Character Devices: Erlauben den zeichenweisen Zugriff auf Ein- und Ausgabegeräte, z.B. Tastaturen oder Drucker.
Was sind Dateiformate
Methode zur Standardisierung von Datenstrukturen und -inhalten. Sie definieren die Art und Weise, wie Daten organisiert und gespeichert werden.
Bsp.: Textdateien, Binärdateien, Audio- und Videodateien, Bilder
ELF-Dateiformat
ELF (Executable and Linkable Format) ist ein Dateiformat für ausführbare Programme, Bibliotheken und Core-Dumps (Speicherauszüge).
ELF-Dateien bestehen aus mehreren Abschnitten (Sections) wie dem
- Code- und Datenbereich,
- Symboltabelle
- anderen Metadaten.
Der Linux-Kernel und viele andere Unix-ähnliche Betriebssysteme laden und verarbeiten ELF-Dateien, um ausführbare Programme und Bibliotheken im Speicher zu erstellen und auszuführen.
Was bedeuten ‘.’ und ‘..’ im Verzeichnisnamen
’.’ bezieht sich auf das aktuelle Verzeichnis. (CWD)
’..’ bezieht sich auf das übergeordnete Verzeichnis.
Was sind Verknüpfungen (Links)?
Mechanismen in Unix/Linux Systemen, um auf Dateien zu verweisen, ohne eine Kopie erstellen zu müssen.
Es gibt zwei Arten von Links:
- Symbolische Links (auch Softlinks oder Symlinks genannt)
- Hardlinks
Symbolische Links
Diese Links beinhalten lediglich den Pfad zu der anderen Datei.
− Symbolische Links sind eigene Dateien mit Größe und Inhalt → es müssen zwei Dateien geöffnet werden um dem Link zu folgen.
− Wird die verknüpfte Datei gelöscht, ist der Link kaputt.
+ Symbolische Links können Filesystem-übergreifend erstellt werden.
Hardlinks
sind Einträge in einem Verzeichnis, die auf dieselbe Inode-Nummer wie eine andere Datei im Dateisystem verweisen. Alle Hardlinks der gleichen Datei sind äquivalent.
− Hardlinks können nur im selben Dateisystem erstellt werden wie die Originaldatei.
+ Hardlinks benötigen keine zusätzliche Datei.
+ Eine Datei wird erst gelöscht, wenn der letzte Hardlink auf sie gelöscht wird.
Dateisystem-Struktur
Metadaten zu jeder Datei werden zu einem File Control Block (FCB) zusammengefasst (=Inode).
Die oberste Schicht einer Dateisystem-Implementierung kümmert sich um die Zuordnung von Dateinamen zu FCBs und Einhaltung etwaiger Zugriffsregeln etc.
Weitere Schichten sind für die Verwaltung einzelner
physischer Datenblöcke zuständig.
Die untersten Schichten kümmern sich dann um den
konkreten Zugriff auf die Hardware.
Allocation Methods (speicher)
Zusammenhängende Blöcke
- Datei wird durch Start-Adresse und Länge definiert.
Linked List
- Jeder Block verlinkt nächsten Block.
Index Blocks
- Zentrale (Verwaltungs-)Blöcke verweisen auf alle weiteren (Daten-)Blöcke.
Welche Probleme treten bei der Verwendung von fixen Blockgrößen auf?
Externe Fragmentierung
* “Löcher” in sonst zusammenhängenden Abschnitten
Interne Fragmentierung
* Nicht vollständig genutzte Blöcke
Wie können Metadaten gespeichert werden?
- Als Teil der Verzeichniseinträge selbst
- In den verlinkten FCBs/Inodes
Disk Space Management
Speicherplatz wird in Blöcken fixer Größe verwaltet, die bei der Erstellung des Dateisystems festgelegt werden.
zu große Blöcke –> interne Fragmentierung
zu kleine Blöcke –> zu viel Verwaltungsaufwand und Platzverlust
Lösung: Mix verwendet, der den Overhead minimiert und gleichzeitig die Performance maximiert.
Methoden um freie Blöcke zu verwalten
In einer Linked List wird jeder freie Block mit dem nächsten verlinkt.
–>kann leicht modifiziert werden.
Bitmaps speichern für jeden Block mit einem Bit, ob dieser belegt oder frei ist.
–> Benötigt zusätzlichen Speicher für die Bitmap.
Journaling File Systems
sorgen proaktiv dafür, dass Abstürze keine negativen Auswirkungen auf das Dateisystem haben.
Hierbei wird zuerst eine Beschreibung der auszuführenden Änderungen in einem bestimmten Bereich (dem Journal) hinterlegt. Erst wenn diese erfolgreich geschrieben wurde, werden diese Änderungen auch wirklich ausgeführt.
Der Vorgang ist dermaßen gestaltet, dass nur teilweise ausgeführte Änderungen nicht sichtbar werden und im Fehlerfall problemlos wiederholt werden können.
Was ist ein Inode und wofür wird es verwendet?
Ein Inode ist eine Datenstruktur, die Metadaten über die Datei enthält, z. B. Erstellungsdatum der Datei, Dateiberechtigungen, Eigentümer der Datei und vieles mehr.
Jede Partition hat ein Dateisystem mit einer I-Node-Liste, die Dateiköpfe enthält. Diese Dateiköpfe sind als I-Nodes bekannt und speichern Dateiattribute und -größen.
Was für ein Directory System verwendet Linux?
Eine hierarchische Verzeichnisstruktur wird unter Linux verwendet mit “/” als Wurzelverzeichnis (root), welches wiederum Unterverzeichnisse beinhaltet.
Erkläre wie “Mounting” funktioniert und erkläre auch dabei den Begriff “mount point”.
Mounting ist das Bereitstellen von Dateien und Verzeichnissen von externen Speichergeräten im Dateisystem des Computers.
Ein Mount Point ist ein Verzeichnis, das zusätzliche Informationen aus einem externen Speicherort außerhalb des Hauptlaufwerks des Betriebssystems verknüpft.