Ist ein Dateisystem nur das Layout von Ordnern?

56

Ich benutze Windows seit meiner Kindheit, und wenn ich den Ausdruck "Windows-Dateisystem" höre, denke ich an Verzeichnisse (Ordner) in Verzeichnissen, einen Ordner namens SYSTEM, einen Ordner namens PROGRAMMDATEIEN usw. Ist das das System? Nur das Layout der Ordner?

Und dann habe ich kürzlich angefangen, Linux zu verwenden, und in meinem Nachschlagewerk heißt es, dass im Linux-Dateisystem alles bei root beginnt und von dort aus verzweigt. Wie unterscheidet sich das wirklich von Windows? Ich meine, es scheint, dass das Linux-System und das Windows-System nur zwei Möglichkeiten sind, einen Verzeichnisbaum einzurichten. Bedeutet das Dateisystem?

P_Q
quelle
3
Haben Sie versucht, en.wikipedia.org/wiki/Filesystem zu lesen ?
Choroba
2
Zu Ihrer Information, es gibt kein "Linux-Dateisystem". Was das Buch sagen wollte, war der Linux-Verzeichnisbaum. Und ja, der Verzeichnisbaum ist nur das Layout der Ordner.
user606723
2
Linux fehlt das Konzept der Laufwerke , so dass alles unter gemountet wird /. In Windows ist dies nicht der Fall, da es keine UNIX-artige Bereitstellung gibt (korrigieren Sie mich, wenn ich hier falsch liege), sodass alles um Laufwerke herum organisiert ist.
new123456
1
@ new123456 Fühle mich korrigiert. Windows unterstützt das Mounten (seit W2k oder NT), obwohl die Funktion sehr selten verwendet wird.
Kubanczyk
1
Ein Unterschied besteht darin, dass das Wort "Dateisystem" drei verschiedene Bedeutungen hat .
JdeBP

Antworten:

130

Nur das Layout der Ordner?

Klingt zu schön um wahr zu sein ...

Nehmen wir als Beispiel das FAT32-Dateisystem. Ich kann Windows XP darauf installieren, aber ich kann es auch auf einer Speicherkarte verwenden. Auf einer Speicherkarte befinden sich nicht die Ordner, die Sie zusammenfassen.

So ... Sie das Verzeichnis Layout einer Familie von Betriebssystemen mit einem Dateisystem nicht verwirren.

Bedeutet das ein Dateisystem?

Nein ... Es bezieht sich auf die zugrunde liegenden Bits und Bytes, mit denen Ihre Verzeichnisstruktur funktioniert.

Die zugrunde liegenden Bits und Bytes? Zeig mir FAT32!

Schauen wir uns an, wie FAT32 aussieht:

  • Einige Header-Sektoren am Anfang, wie Volume ID und Reserved Sectors
  • Zwei Dateizuordnungstabellen, mit denen wir herausfinden können, wo sich unsere Dateien befinden.
  • Cluster, die alle unsere Verzeichnis- und Dateidaten enthalten.
  • Einige sehr kleine ungenutzte Räume, die wir nicht nutzen können.

Eine FAT-Tabelle besteht aus vielen Einträgen, die so aussehen, dass wir bestimmen können, wo das Verzeichnis oder die Datei im Cluster-Bereich gespeichert ist, sowie einige Attribute und Größen.

Ein Verzeichniseintrag würde auf eine Liste von Verzeichnis- / Dateieinträgen verweisen ...

Im Cluster-Bereich können wir jetzt mit unseren Clustern nach den benötigten Daten suchen. Ein Cluster enthält im Wesentlichen Daten und Informationen, wo sich die nächsten Fragmente befinden

Bildbeschreibung hier eingeben

Unterscheiden sich andere Dateisysteme? Zeig mir NTFS!

Ich zeige Ihnen ein Bild, damit Sie die Unterschiede bemerken, der Rest ist eine Hausaufgabe für den Leser: Weitere Informationen finden Sie in diesem Blog-Archiv oder bei Google.

Die Hauptidee ist, dass NTFS eine enorme Verbesserung gegenüber FAT32 darstellt, die robuster / effizienter ist. Bessere Vorstellung von (nicht) verwendetem Speicherplatz durch Verwendung einer Bitmap, um der Fragmentierung entgegenzuwirken. Und so weiter...

- http://thinkdifferent.typepad.com/photos/uncategorized/04ntfsfilesystem.png

Was ist mit den Dateisystemen unter Linux? Zeig mir ext2 / 3!

Die Idee ist, dass ext2 / ext3 Superblöcke und Inodes verwenden; Dies ermöglicht Soft- und Hardlinks, Verzeichnisse, die Dateien sind, Dateien mit mehreren Namen und so weiter. Das Hauptaugenmerk liegt auf der Abstraktion, damit das Dateisystem in der Lage ist, mehr meta- ische Dinge zu tun ...

- http://thinkdifferent.typepad.com/photos/uncategorized/03extfilesystem.png

Tamara Wijsman
quelle
@Shadok: Ich könnte die späteren Abschnitte später verbessern, aber in diesen Tagen bin ich ziemlich beschäftigt ... Danke.
Tamara Wijsman
2
Ich würde dies +2, wenn ich könnte. Warum können nicht mehr Dokumente und Spezifikationen so aussehen?
Urwolf
Vielleicht solltest du einen Blogeintrag über diesen @TomWijsman schreiben ;-)
Ivo Flipse
@IvoFlipse: A "Datenspeicherung: Wie funktioniert es?" Serien könnten möglich sein, hier noch eine Antwort . Große Bilder sagen mehr als Worte ... :)
Tamara Wijsman
Klingt auf jeden Fall nach einer guten Idee
Ivo Flipse
14

Der große Unterschied zwischen Linux und Windows, zumindest was die Dateisysteme und Verzeichnisbäume betrifft, besteht darin, dass unter Linux "alles eine Datei ist" und alles von einem einzigen Stamm abstammt. Dies gilt auch für fast alle von Unix abgeleiteten Betriebssysteme wie BSD, OS X, Solaris usw., aber ich werde nur "Linux" sagen, um generisch zu sein (wenn auch nicht ganz genau).

Aber was heißt das konkret?

Windows erlaubt mehrere benannte Roots für ihre Dateisysteme. Sie verstehen diese als Laufwerksbuchstaben: C: D: E:und so weiter. Jeder hat eine Wurzel ( \) und einen Baum, der davon abstammt. In neueren Versionen von Windows sind beispielsweise Volume-Bereitstellungspunkte möglich, bei denen ein Volume (eine Partition) in einem vorhandenen, leeren Ordner bereitgestellt werden kann. Anstatt also D:das Stammverzeichnis Ihres optischen Laufwerks (CD / DVD / BR) darzustellen, können Sie es C:\Opticalstattdessen unter einbinden. Dies ähnelt eher dem, was Linux tut. Es gibt auch einen zugrunde liegenden, einwurzeligen Objekt-Namespace für alles in Windows, ähnlich dem, was Linux verwendet und vom Objekt-Manager verwaltet wird. Die meisten Benutzer sehen jedoch nur selten, dass auf ihn verwiesen wird, da er hauptsächlich für den Kernel verwendet wird.

Linux hat eine einzige Wurzel: /. Alles stammt davon ab, und es muss nicht unbedingt Ihre Festplatte darstellen. Festplatten, optische Laufwerke, Speicherkarten, Netzwerkfreigaben, Drucker, Scanner, CPUs, RAM, Prozesse, ... alles befindet sich irgendwo in diesem einzigen Namespace und kann von jedem Prozess mit Standard-Dateiverwaltungs-APIs aufgerufen werden, vorausgesetzt, Sie haben Zugriff ein ausreichend hohes Maß an Zugang. Nur weil Sie darauf lesen oder schreiben können, heißt das noch lange nicht, dass es sich unter Linux um eine Datei auf Ihrer Festplatte handelt. Beispielsweise werden Geräte normalerweise in Geräte eingebunden. Wenn Sie /devalso auf die darin enthaltenen Elemente zugreifen, sprechen Sie häufig mit einem Gerät - möglicherweise mit der Soundkarte, einem Scanner, einer Kamera usw. Diese Dateien werden als Gerätedateien bezeichnet . Procfsist ein spezielles "Dateisystem", in das normalerweise /procein "Verzeichnis" für jeden ausgeführten Prozess eingebunden ist. In jedem Verzeichnis befinden sich Dateien, die sich auf Dinge wie die Befehlszeile beziehen, die zum Aufrufen dieses Prozesses verwendet wird, Speicherzuordnungen, geöffnete Dateien usw. Sysfs ist ein anderes Ein spezielles Dateisystem (gemountet auf /sys), mit dem eine Fülle von Informationen zu den ausgeführten Kernelobjekten verfügbar gemacht und der ausgeführte Kernel durch einfaches Schreiben in eine bestimmte Datei optimiert werden kann.

afrazier
quelle
2
Beachten Sie, dass es aus Benutzersicht leicht ist, ein Dateisystem mit dem Verzeichnislayout zu verwechseln. Während der Begriff Dateisystem eigentlich dazu gedacht ist, über die Interna eines Dateisystems zu sprechen; z.B. der Unterschied zwischen FAT und NTFS, sowie die Unterschiede zwischen ext2 und ext3 ...
Tamara Wijsman
4
@Tom: Es scheint, dass das OP wirklich nach den Unterschieden in den verschiedenen Objekthierarchien zwischen Linux und Windows fragt, anstatt nach der Anordnung der Bits auf der Festplatte. udev, procfs, sysfs, tmpfs usw. sind genauso Dateisysteme wie ext2 oder NTFS unter Linux, auch wenn sie nichts auf der Festplatte beinhalten.
afrazier
Das ist nur ein Teil seiner Frage "Ist ein Dateisystem nur das Layout von Ordnern?" Daher habe ich eine Nachricht für die Leser hinterlassen ...
Tamara Wijsman
+1 für "Alles ist eine Datei" in Linux. Dies ist für mich DER große Unterschied zwischen Linux und Windows.
Rabarberski
3

Im Dateisystem geht es nicht nur darum, wie ein Verzeichnisbaum erstellt wird, sondern auch darum, wie diese Informationen auf den Medien codiert werden. Es gibt verschiedene Dateisysteme für Linux: ext3, xfs, raiserfs usw.

Choroba
quelle
3

Sie können sich Dateisysteme als unterschiedliche Formate zum Speichern von Dateien und Ordnern vorstellen, ähnlich wie MS Word und PDF unterschiedliche Formate zum Speichern von Dokumenten sind oder MP3 und WAV unterschiedliche Formate zum Speichern von Audio.

Bei einigen Dateien und Ordnern ist das Dateisystem das Format und der Code, in dem sie auf der Festplatte gespeichert werden, damit sie wieder gelesen werden können.

Und so wie nicht alle Videoplayer alle Videoformate wiedergeben können, können nicht alle Betriebssysteme alle Dateisysteme lesen. Wenn Sie beispielsweise eine Linux-Datei auf einem ext3-formatierten USB-Stick speichern, kann Windows die Datei nicht lesen, da es nicht weiß, wie es mit dem ext3-Dateisystem umgeht.

Gängige Dateisysteme umfassen

  • FAT und NTFS (Windows, NTFS ist Standard bei neueren Windows-Versionen)
  • ext3 und ext4 (Linux)
  • HFS plus (OS X)
  • ISO 9660 und UDF (CD, DVD und Blu-Ray)

Siehe Wikipedia für einen Vergleich der Dateisysteme .

jg-faustus
quelle