SkillGridInformatik durch Machen lernen

Dateien und das Dateisystem

Was beim Speichern einer Datei wirklich passiert und warum ein Inode nicht der Dateiname ist.

12 Min. · 36 XP

Ein Dateisystem ordnet Blöcke auf einem Gerät zu benannten Dateien und Verzeichnissen. Ein Verzeichnis ist selbst eine Datei, die Namen auf Inode-Nummern abbildet. Der Name ist nicht die Datei; er ist ein Etikett, das auf sie zeigt.

Ein Inode speichert die Metadaten einer Datei und wo ihre Datenblöcke liegen: Größe, Rechte, Zeitstempel, Blockzeiger. Den Namen speichert er nicht. Deshalb kann eine Datei mehrere Namen haben (harte Links), und keiner davon ist der „echte“.

AppKernel (VFS)Page cacheDiskopen("/etc/hosts")walk directories, find inode 42file descriptor 3read(fd, buf, 4096)is block already cached?no — read it from diskhere is the blockcopy into your buffer

Plattenlesevorgänge sind tausendfach langsamer als Speicher, daher hält der Kernel zuletzt genutzte Dateidaten im Seiten-Cache. Ein wiederholtes Lesen berührt die Platte womöglich gar nicht.

# Путь — это просто имена каталогов, которые ядро проходит шаг за шагом.
# Конкретный ФАЙЛ живёт в inode, а не в имени.

$ ls -i /etc/hosts
42 /etc/hosts          # 42 — номер inode

$ ln /etc/hosts /tmp/alias     # жёсткая ссылка: +1 имя у ТОГО ЖЕ inode
$ ln -s /etc/hosts /tmp/soft    # симлинк: отдельный файл со ссылкой

# Место на диске занимают ДАННЫЕ, а не имя файла.

Praxis

  1. Du schreibst in eine Datei und der Aufruf kehrt erfolgreich zurück. Liegen die Daten auf der Platte?

    Hinweise
    • Wohin legt der Kernel Schreibvorgänge, bevor sie die Platte erreichen?
    • Wozu fsync, wenn Schreibvorgänge bereits auf der Platte wären?

    12 XP

  2. Bringe die Schritte des Lesens einer Datei in die richtige Reihenfolge.

    Hinweise
    • Ein Pfad ist eine Folge von Namen, die nacheinander aufgelöst werden.
    • Prüfe den schnellen Weg vor dem langsamen.

    13 XP

  3. Erkläre, warum das Löschen einer Datei, die ein anderer Prozess geöffnet hat, nicht zwangsläufig ihren Plattenplatz freigibt.

    Hinweise
    • Was hält den Inode am Leben — der Name oder etwas anderes?
    • Zähle die Verweise, nicht die Verzeichniseinträge.

    13 XP