*Markus: Erklärung Dateisystem, Speicherung von Daten

Hallo,

ich versuche schon seit längerer Zeit zu verstehen, wie der _komplette_ Vorgang der Datenspeicherung und Oeganisierung letztendlich wirklich funktioniert, stoße aber immer wieder auf Erklärungen, die für noch mehr Verwirrung sorgen.
Ich verstehe v.a. nicht, wo sich das Dateisystem letztendlich wirklich befindet. Ich dachte immer, dass sich das Dateisystem überall auf dem Datenträger verteilt befindet, und die Daten darauf irgendwie gespeichert werden.
Wenn ich mir die Erklärung auf Wikipedia dazu ansehe, beschreibt mir diese, dass das Dateisystem nur eine "Schicht des Betriebssystems" ist. Aber irgendwo muss doch festgehalten werden, welche Dateinamen mit welchen Clustern auf dem Datenträger verknüpft werden, und wo werden diese Informationen nun wirklich gespeichert, also quasi das "Inhaltsverzeichnis" der Daten, wenn ich es mal so nennen darf.
Der Datenträger ist in Blöcken unterteilt, und diese wieder zu Clustern zusammengefasst. Im ersten Block ist der MBR mit der Partitionstabelle und dem Bootloader.
Wenn ich mir dann den Artikel über die Partitionierung ansehe, kommt mir dann schon wieder Zweifel darüber, wie das mit dem Dateisystem und den Partitionen eigentlich ist (Abschnitt "Mögliche Partitionen"), v.a. der Satz "Daran anschließend erfolgt die High-Level-Formatierung (logische Formatierung), die den Partitionen das Dateisystem aufprägt."
Bei der Low-Lvel-Formatierung und dem 2. Punkt, der Partitionierung, kann ich mir noch etwas vorstellen.
Irgendwo las ich aber dann auch, dass die Partitionen eigentlich gar keine sind, sondern nur simuliert werden und die Daten auf den Datenträgern irgendwie abgespeichert werden. Ich finde leider die Stelle nicht mehr. Auch irgendwo in der Wiki.
Oder geht es eigentlich nur darum, welche Dateisystemangabe in der Partitionstabelle steht.  (http://de.wikipedia.org/wiki/Partitionstabelle#Wichtige_Partitionstypen_mit_ihren_Kennnummern) Und wenn ja, woher kommen dann (für die Firmware des Datenträgers?) die Informationen darüber, wie die Daten auf dem Datenträger zu organisieren sind? Oder ist das sowieso egal, da ja die Daten "irgendwie" auf dem Datenträger abgelegt werden.
Ich kenn mich wirklich absolut nicht mehr aus und hoffe, dass mich jemand mal darüber aufklären könnte, wie das alles nun wirklich funktioniert.

Markus

  1. Moin!

    Wenn ich mir die Erklärung auf Wikipedia dazu ansehe, beschreibt mir diese, dass das Dateisystem nur eine "Schicht des Betriebssystems" ist.

    Zum Thema "Schicht" steht da:

    "Das Dateisystem stellt eine bestimmte Schicht des Betriebssystems dar: Alle Schichten darüber (Rest des Betriebssystems, Anwendungen) können auf Dateien abstrakt über deren Klartext-Namen zugreifen. Erst im Dateisystem werden diese abstrakten Angaben umgesetzt in physische Adressen (Blocknummer, Spur, Sektor usw.) auf dem Speichermedium. In der Ebene darunter kommuniziert das Dateisystem dazu mit dem jeweiligen Gerätetreiber und der Firmware des Speichersystems, welche an zusätzlicher Organisation z. B. noch den Ersatz fehlerhafter Sektoren durch Reservesektoren erledigen."

    Wenn ich mir dann den Artikel über die Partitionierung ansehe, kommt mir dann schon wieder Zweifel darüber, wie das mit dem Dateisystem und den Partitionen eigentlich ist (Abschnitt "Mögliche Partitionen"), v.a. der Satz "Daran anschließend erfolgt die High-Level-Formatierung (logische Formatierung), die den Partitionen das Dateisystem aufprägt."
    Bei der Low-Lvel-Formatierung und dem 2. Punkt, der Partitionierung, kann ich mir noch etwas vorstellen.

    Es gibt keine Low-Level-Formatierung mehr, das ist schon seit mehreren Festplattengenerationen abgeschafft. Die Festplatten enthalten vom Hersteller aufgebrachte magnetische Informationen für die Kopfführung und Plattenrotation, die nie verloren gehen dürfen und nicht wiederherstellbar sind. Eine durch externe Magnetwirkung zerstörte Magnetisierung dieser Servoinformationen macht die Platte zum Totalschaden.

    Eine vom Benutzer durchgeführte Formatierung ist immer High-Level, und bringt das Dateisystem auf die Festplatte bzw. eine darauf definierte Partition auf.

    Irgendwo las ich aber dann auch, dass die Partitionen eigentlich gar keine sind, sondern nur simuliert werden und die Daten auf den Datenträgern irgendwie abgespeichert werden. Ich finde leider die Stelle nicht mehr. Auch irgendwo in der Wiki.

    Hängt davon ab, was zum Einsatz kommt. Wenn sowas wie LVM oder RAID mit im Spiel ist, werden die Dinge oft komplexer.

    Ich kenn mich wirklich absolut nicht mehr aus und hoffe, dass mich jemand mal darüber aufklären könnte, wie das alles nun wirklich funktioniert.

    Eine Antwort ist simpel: Es braucht dich nicht zu interessieren, das regelt das Betriebssystem schon für dich.

    Grundsätzlich legst du auf der Festplatte eine oder mehrere Partitionen an, denen jeweils ein Dateisystemtyp zugeordnet wird, und durch die Formatierung werden dann die notwendigen Strukturen initialisiert (und evtl. einen Prüfung auf defekte Sektoren durchgeführt).

    Wenn du aber sowas wie das ZFS-Dateisystem benutzen würdest, wären die Dinge viel komplexer, weil ZFS nicht nur ein Dateisystem ist, sondern auch die Komponenten RAID, LVM und Backup umfaßt. Bei ZFS kommst du mit dem traditionellen Verständnis der Speicherung von Dateisystemen nicht weit.

    - Sven Rautenberg

    --
    "Love your nation - respect the others."
    1. Hallo Sven,

      Ich habe den Artikel natürlich gelesen, und wenn ich mir den Artikel über Betriebssysteme durchlese, sehe ich jetzt zwar, dass das Dateisystem irgendwo im Kernel-Mode ist, aber dennoch frage ich mich, wie das Dateisystem nun funktioniert. Ist es nur ein Tabelle, wo die "Verküpfungen" zu den "echten" Daten am Datenträger gespeichert sind? Also ich würde das auch gerne ein wenig vom technischen Standpunkt aus verstehen.

      Markus

      1. Moin!

        Hallo Sven,

        Ich habe den Artikel natürlich gelesen, und wenn ich mir den Artikel über Betriebssysteme durchlese, sehe ich jetzt zwar, dass das Dateisystem irgendwo im Kernel-Mode ist, aber dennoch frage ich mich, wie das Dateisystem nun funktioniert. Ist es nur ein Tabelle, wo die "Verküpfungen" zu den "echten" Daten am Datenträger gespeichert sind? Also ich würde das auch gerne ein wenig vom technischen Standpunkt aus verstehen.

        Es gibt nicht "DAS DATEISYSTEM", sondern es gibt ganz viele unterschiedliche Dateisysteme, die alle anders funktionieren, für drüberliegende Betriebssystemfunktionen aber alle dasselbe machen: Verzeichnisse und Dateien verwalten und verfügbar machen zum Schreiben, Lesen und Löschen.

        Wenn du konkrete Infos willst, mußt du konkrete Dateisysteme untersuchen.

        Mal eine kleine Auswahl: FAT12, FAT16, FAT32, NTFS, HPFS, HFS, HFS+, ext2, ext3, reiserfs, xfs, jfs, zfs, jffs, cramfs,...

        Alle haben spezielle Eigenschaften, sind evtl. speziell auf Besonderheiten ihrer Speicherhardware optimiert, nutzen unterschiedliche Strukturen und Verweise für die diversen Bestandteile.

        - Sven Rautenberg

        --
        "Love your nation - respect the others."
        1. Hallo,

          ok danke erstmal. Ich glaube, dass ich sowieso eher in die Systemprogrammierung einsteigen müsste, um die Vorgänge besser verstehen zu können.

          Markus

  2. Hallo Markus,

    ich versuche schon seit längerer Zeit zu verstehen, wie der _komplette_ Vorgang der Datenspeicherung und Oeganisierung letztendlich wirklich funktioniert, stoße aber immer wieder auf Erklärungen, die für noch mehr Verwirrung sorgen.

    wenn du wirklich den kompletten Vorgang verstehen willst, wirst du dich auf das Studium von OpenSource-Betriebssystemen konzentrieren müssen, um daran nachzuvollziehen, wie er implementiert ist.

    Ich verstehe v.a. nicht, wo sich das Dateisystem letztendlich wirklich befindet.

    Das ist auch schwierig, weil "das Dateisystem" recht unterschiedlich verstanden wird.

    Ich dachte immer, dass sich das Dateisystem überall auf dem Datenträger verteilt befindet, und die Daten darauf irgendwie gespeichert werden.

    Das ist _eine_ Interpretation: Das Dateisystem als Gesamtheit aller Strukturen auf einem Datenträger, die der Identifikation und Speicherung von Dateien dienen.

    Wenn ich mir die Erklärung auf Wikipedia dazu ansehe, beschreibt mir diese, dass das Dateisystem nur eine "Schicht des Betriebssystems" ist.

    Das ist eine andere Auffassung: Das Dateisystem als Bestandteil moderner Betriebssysteme. Hier versteht man es als die Menge der Betriebssystem-Funktionen, mit denen man auf Dateien zugreifen kann.

    Aber irgendwo muss doch festgehalten werden, welche Dateinamen mit welchen Clustern auf dem Datenträger verknüpft werden, und wo werden diese Informationen nun wirklich gespeichert, also quasi das "Inhaltsverzeichnis" der Daten, wenn ich es mal so nennen darf.

    Natürlich auf dem Datenträger. ;-)

    Ich verstehe unter dem Begriff "Dateisystem" übrigens noch etwas abstrakteres: Nämlich die reine Spezifikation, wie Dateien auf einem Datenträger verwaltet werden. Und da gibt es, wie Sven ja auch ausführt, eine ganze Menge verschiedene.

    Der Datenträger ist in Blöcken unterteilt, und diese wieder zu Clustern zusammengefasst. Im ersten Block ist der MBR mit der Partitionstabelle und dem Bootloader.
    Wenn ich mir dann den Artikel über die Partitionierung ansehe, kommt mir dann schon wieder Zweifel darüber, wie das mit dem Dateisystem und den Partitionen eigentlich ist (Abschnitt "Mögliche Partitionen"), v.a. der Satz "Daran anschließend erfolgt die High-Level-Formatierung (logische Formatierung), die den Partitionen das Dateisystem aufprägt."

    Was ist daran so missverständlich? Der Datenträger wird in mehrere, zunächst unabhängige Bereiche untersteilt, sogenannte Partitionen. Diese Partitionen erhalten durch eine Formatierung dann die notwendigen Datenstrukturen, die das gewünschte Dateisystem vorsieht.

    Irgendwo las ich aber dann auch, dass die Partitionen eigentlich gar keine sind, sondern nur simuliert werden und die Daten auf den Datenträgern irgendwie abgespeichert werden.

    Das könnte auf Festplatten oder Platten-Arrays passen, bei denen ein eigener Controller entscheidet, welcher logische Sektor tatsächlich an welche Stelle geschrieben wird. CompactFlash-Speicherkarten und viele USB-Sticks arbeiten auch nach dem Muster.

    Oder geht es eigentlich nur darum, welche Dateisystemangabe in der Partitionstabelle steht.  (http://de.wikipedia.org/wiki/Partitionstabelle#Wichtige_Partitionstypen_mit_ihren_Kennnummern) Und wenn ja, woher kommen dann (für die Firmware des Datenträgers?) die Informationen darüber, wie die Daten auf dem Datenträger zu organisieren sind?

    Gar nicht. Die Firmware des Datenträgers (also z.B. der Controller einer IDE- oder SATA-Platte oder der Controller eines USB-Sticks) kennt kein Dateisystem. Sie arbeitet nur mit Sektornummern und liest oder schreibt Daten von/in bestimmte Sektoren. Die Interpretation der Daten nach den Regeln eines bestimmten Dateisystems ist wieder Sache des OS.

    Ich kenn mich wirklich absolut nicht mehr aus und hoffe, dass mich jemand mal darüber aufklären könnte, wie das alles nun wirklich funktioniert.

    Ich hoffe, ich konnte dir ein Stück weiterhelfen.

    So long,
     Martin

    --
    Auf jeden Menschen auf der ganzen Welt entfallen statistisch gesehen etwa 3000 Spinnen, wie Wissenschaftler jetzt festgestellt haben.
    Wer will meine haben? Denn ich will sie bstimmt nicht.