U S E R - A R C H I V

Seite: Dateisystem

Dateisystem - Grundlagen

Quelle Wikipedia http://de.wikipedia.org/wiki/Dateisystem
Im Dateisystem sind die externen Daten eines Computers in Form von Dateien gespeichert. Das Dateisystem selbst ist ein Ordnungs- und Zugriffssystem für diese Daten. Zugriffsroutinen für Dateisysteme sind Bestandteil des Betriebssystems. Das Betriebssystem des Computers selbst wird ebenfalls in einem Dateisystem gespeichert.

Dateien haben in einem Dateisystem fast immer mindestens einen Dateinamen sowie Attribute, die nähere Informationen über die Datei geben. Die Dateinamen sind in speziellen Dateien, den Verzeichnissen, abgelegt. Über diese Verzeichnisse kann ein Dateiname und damit eine Datei vom System gefunden werden. Ein Dateisystem bildet somit einen Namensraum. Alle Dateien (oder dateiähnlichen Objekte) sind so über eine eindeutige Adresse (Dateiname inkl. Pfad oder URI) – innerhalb des Dateisystems – aufrufbar. Der Name einer Datei und weitere Informationen die den gespeicherten Daten zugeordnet sind, werden als Meta-Daten bezeichnet.

Für unterschiedliche Datenträger (wie Magnetband, Festplatte, optische Datenträger (CD, DVD, …), Flashspeicher, …) gibt es spezielle Dateisysteme, die deren Besonderheiten berücksichtigen.
Inhaltsverzeichnis

Geschichte

Historisch sind schon die ersten Lochstreifen- (auf Film- später auf Papierstreifen) und Lochkarten-Dateien Dateisysteme. Sie bilden ebenso wie Magnetbandspeicher lineare Dateisysteme. Die später für die Massenspeicherung und schnellen Zugriff entwickelten Magnettrommel- und Festplattenspeicher ermöglichten dann erstmals wahlfreien Zugriff auf beliebige Positionen im Dateisystem und damit komplexere Dateisysteme. Diese Dateisysteme bieten die Möglichkeit, per Namen auf eine Datei zu zugreifen. Das Konzept der Dateisysteme wurde schließlich soweit abstrahiert, dass auch Zugriffe auf Dateien im Netz und auf Geräte, die virtuell als Datei verwaltet werden, über Dateisysteme durchgeführt werden können. Somit sind Anwendungsprogramme in der Lage, auf diese unterschiedlichen Datenquellen über eine einheitliche Schnittstelle zuzugreifen.

Organisation von Massenspeichern

Massenspeichergeräte wie Festplatten-, CD-ROM- und Diskettenlaufwerke haben normalerweise eine Blockstruktur, d.h. aus Betriebssystemsicht lassen sich Daten nur als ganze Blöcke lesen oder schreiben. Die Hardware der Speichergeräte präsentiert sich gegenüber dem Betriebssystem auf einer bestimmten Ebene lediglich als große lineare Fläche mit vielen nummerierten Blöcken.

Ein Block umfasst meistens 512 (29) Bytes. Moderne Betriebssysteme fassen aus Performance- und Verwaltungsgründen mehrere Blöcke zu einem Cluster fester Größe zusammen. Heute sind Cluster mit acht oder noch mehr Blöcken üblich, also 4096 Bytes pro Cluster. Die Clustergröße ist im allgemeinen eine Zweierpotenz (1024, 2048, 4096 usw.)

Eine Datei ist eine Speicherfläche beliebiger Größe, die auf dem Gerät aus einem oder mehreren Clustern besteht. Jede Datei erhält außerdem eine Beschreibungsstruktur, die die tatsächliche Größe, Referenzen auf die verwendeten Cluster und evtl. weitere Informationen wie Dateityp, Eigentümer, Zugriffsrechte enthalten kann.

Für die Zuordnung von Clustern zu Dateien gibt es dabei mehrere Möglichkeiten.

    * Die Referenz einer Datei besteht aus der Clusternummer des Anfangsclusters und der Anzahl der darauf (physikalisch sequenziell) folgenden Cluster. Nachteile: bei Vergrößerung muss ggf. die ganze Datei verschoben werden. Dies verkompliziert das eigentliche Dateihandling und führt zu unzureichender Performance bei vielen großen Dateien. So kann es vorkommen, dass eine Datei nicht gespeichert werden kann, obwohl noch genügend freier Speicher auf dem Datenträger vorhanden ist.
    * Die Referenz einer Datei besteht aus der ersten Clusternummer. In jedem Cluster der Datei wird die Clusternummer des Folgeclusters gespeichert. Es ergibt sich eine verlinkte Liste. Nachteile: Will man die Datei nicht sequenziell lesen, sondern z. B. nur das Ende, muss das Betriebssystem dennoch die ganze Datei einlesen, um das Ende zu finden.
    * Freie Zuordnung von Dateiclustern zu Folgeclustern durch eine Tabelle auf dem Massenspeicher (Bsp.: FAT). Nachteile: sehr große Beschreibungsstruktur, sequenzielles Lesen oder Schreiben etwas langsamer als ideal, da Zuordnungsinformationen weder gebündelt noch bei den Daten vorliegen.
    * Speicherung eines Feldes von Tupeln (Extent-Anfangscluster, Extentlänge) in der Beschreibungsstruktur der Datei. Ein Extent ist dabei eine Folge von sequentiellen Clustern. Heute in vielen Dateisystemen so umgesetzt.

Verzeichnisse enthalten Dateinamen und Referenzen zu den jeweiligen Beschreibungsstrukturen. Da Verzeichnisse auch Speicherflächen sind, werden meist speziell gekennzeichnete Dateien als Verzeichnisse verwendet. Die erste Beschreibungsstruktur kann dabei das Ausgangsverzeichnis enthalten. Oft ist der erste Block für einen sogenannter Bootblock (z. B. Master Boot Record) reserviert, der für das Hochfahren des Systems verwendet werden kann. Er ist nicht Teil des eigentlichen Dateisystems.
Boot     Beschreibungsstrukturen     Liste freier Cluster     Cluster mit Dateien und Verzeichnissen
Beispiel für die Aufteilung eines Massenspeichers für ein simples Dateisystem

Zugriff auf Massenspeicher

Ein Programm greift auf die Massenspeicher über das Dateisystem zu. Unter UNIX und ähnlichen Betriebssystemen werden dazu Systemaufrufe zur Verfügung gestellt. Die wichtigsten Systemaufrufe sind hier:

Verzeichnisse:

    * mkdir – Erzeugen eines Verzeichnisses
    * chdir – Wechseln in ein anderes Verzeichnis
    * rmdir – Löschen eines Verzeichnisses
    * opendir – Öffnen eines Verzeichnisses
    * readdir – Lesen von Verzeichniseinträgen
    * closedir – Schließen

Dateien:

    * open, close – Öffnen und Schließen einer Datei
    * read, write – Lesen und Schreiben
    * creat, unlink – Erzeugen und Löschen einer Datei
    * seek – Neupositionieren des Schreib/Lese-Zeigers

Außerdem bietet das Betriebssystem Verwaltungsfunktionen, z. B. für das Erzeugen eines Dateisystems auf einem neuen Datenträger, für Konsistenzprüfung, Komprimierung oder Sicherung (je nach Betriebssystem und Dateisystem verschieden).

Die Umsetzung der Systemaufrufe eines Programms werden oft vom Kernel eines Betriebssystems implementiert und unterscheiden sich bei den verschiedenen Dateisystemen. Der Kernel übersetzt die Zugriffe dann in die Blockoperationen des jeweiligen Massenspeichers. (Anmerkung: Tatsächlich trifft dies nur auf sogenannte monolithische Kernel zu. Moderne Betriebssysteme hingegen sind auf einem Mikrokernel aufgebaut, so dass die Dateisystemoperationen nicht vom Kernel selbst ausgeführt werden.)

Wenn ein Programm eine Datei mittels open öffnet, wird der Dateiname im Verzeichnis gesucht. Die Blöcke auf dem Massenspeicher ermittelt das Betriebssystem aus den entsprechenden Beschreibungsstrukturen. Falls eine Datei im Verzeichnis gefunden wird, erhält man auch ihre Beschreibungsstruktur und damit Referenzen zu den Clustern und über diese zu Blöcken.

Mit read kann das Programm dann auf die Cluster der Datei (und damit auf Blöcke auf dem Massenspeicher) zugreifen. Falls mit write die Datei vergrößert wird, wird bei Bedarf ein neuer Cluster aus der Freiliste entnommen und in der Beschreibungsstruktur der Datei hinzugefügt. Auch die anderen Systemaufrufe lassen sich so in Cluster- bzw. Blockzugriffe übersetzen.

Arten von Dateisystemen

Lineare Dateisysteme

Die historisch ersten Dateisysteme waren lineare Dateisysteme auf Lochband oder Lochkarte sowie die noch heute für die Sicherung von Daten eingesetzten Magnetbandsysteme.

Hierarchische Dateisysteme

Frühe Dateisysteme (CP/M, Apple DOS, Commodore DOS) hatten nur ein einzelnes Verzeichnis, das dann Verweise auf alle Dateien des Massenspeichers enthielt. Mit wachsender Kapazität der Datenträger wurde es immer schwieriger, den Überblick über hunderte und tausende Dateien zu bewahren, deshalb wurde das Konzept der Unterverzeichnisse eingeführt. So wurde dieses eine Verzeichnis in den meisten modernen Dateisystemen zum Wurzelverzeichnis, das neben normalen Dateien auch Verweise auf weitere Verzeichnisse, die Unterverzeichnisse, enthalten. Auch diese dürfen wieder Unterverzeichnisse haben.

Dadurch entsteht eine Verzeichnisstruktur, die oft als Verzeichnisbaum dargestellt wird. Das Festplattenlaufwerk C: unter Windows beinhaltet beispielsweise neben Dateien wie boot.ini und ntldr auch Verzeichnisse wie Programme, Dokumente und Einstellungen usw. Ein Verzeichnis wie z. B. Eigene Dateien kann dann wieder Unterverzeichnisse wie Eigene Bilder oder Texte enthalten. In Texte können dann beispielsweise die normalen Dateien Brief1.txt und Brief2.txt stehen.

Windows 2000/XP:                      Mac OS X:                      Unix / Linux / ZETA:

<Laufwerk C:> <Wurzelverzeichnis> <Wurzelverzeichnis>
+- boot.ini | +- [boot]
+- ntldr | |
+- [Windows] +- [System] |
| +- [System32] +- [Libary] +- [usr]
+- [Dokumente und Einstellungen] | +- [etc]
| +- [Users] +- [home]
| +- [benutzername] | +- [benutzername] | +- [benutzername]
| +- [Eigene Dateien] | +- [Bilder] | +- [Bilder]
| +- [Eigene Bilder] | | +- Bild1.png | | +- Bild1.png
| | +- Bild1.png | | | |
| | | +- [Texte] | +- [Texte]
| +- [Texte] | | +- Brief1.txt | | +- Brief1.txt
| +- Brief1.txt | | +- Brief2.txt | | +- Brief2.txt
| +- Brief2.txt | +- <was von bname> | +- <was von bname>
+- [Programme] +- [Applications] |
<Laufwerk D:>
+- [was von bname]

Verzeichnisse sind mit [eckigen Klammern] gekennzeichnet.
Datenträger sind mit <spitzen Klammern> gekennzeichnet.

Die Verzeichnisse werden auch Ordner genannt und sind, je nach Betriebssystem, durch Backslash \ (DOS, Windows, TOS), Slash / (Unix, Linux, Mac OS X, AmigaOS) oder Doppelpunkt : (ältere Mac OS Versionen) getrennt. Da sich eine Hierarchie von Verzeichnissen und Dateien ergibt, spricht man hier von hierarchischen Dateisystemen. Den Weg durch das Dateisystem, angegeben durch Verzeichnisnamen, die mit den Trennzeichen voneinander getrennt werden, nennt man Pfad. Auf die Datei Brief1.txt kann man mit

    * C:\Dokumente und Einstellungen\benutzername\Eigene Dateien\Texte\Brief1.txt (Windows 2000/XP)
    * /Users/benutzername/Texte/Brief1.txt (Mac OS X)
    * /home/benutzername/Texte/Brief1.txt (Unix / Linux)
    * Laufwerksname:verzeichnis/unterverzeichnis/Brief1.txt (AmigaOS)

zugreifen. Bei DOS/Windows gibt es Laufwerksbuchstaben gefolgt von einem Doppelpunkt, die den Pfaden innerhalb des Dateisystems vorangestellt werden. Jeder Datenträger bekommt seinen eigenen Buchstaben, z. B. meist C: für die erste Partition der ersten Festplatte. Bei Unix gibt es keine Laufwerksbuchstaben, sondern nur einen einzigen Verzeichnisbaum. Die einzelnen Datenträger werden dort an bestimmten Stellen im Baum eingehängt (Kommando mount), so dass alle Datenträger zusammen den Gesamtbaum ergeben. Windows-Varianten, die auf Windows NT basieren, arbeiten intern ebenfalls mit einem solchen Baum, dieser Baum wird aber gegenüber dem Anwender verborgen.

Unter AmigaOS erfolgt eine Mischung der Ansätze von DOS und Unix. Die nach Unix-Nomenklatur bezeichneten Laufwerke werden mit Doppelpunkt angesprochen (fd0:, hda1:, sda2:). Darüber hinaus können "logische" Doppelpunkt-Laufwerksbezeichnungen wie LIBS: per ASSIGN unabhängig vom "physikalischen Datenträger" vergeben werden.

Häufig bezeichnet der Begriff Dateisystem nicht nur die Struktur und die Art, wie die Daten auf einem Datenträger organisiert werden, sondern allgemein den ganzen Baum mit mehreren verschiedenen Dateisystemen (Festplatte, CD-ROM, …). Korrekterweise müsste man hier von einem Namensraum sprechen, der von verschiedenen Teilnamensräumen (die eingebundenen Datenträgern mit deren Dateisystemen) gebildet wird, da aber dieser Namensraum sehr dateibezogen ist, wird häufig nur vom Dateisystem gesprochen.

Netzwerkdateisysteme

Die Systemaufrufe wie open, read, usw. können auch über ein Netzwerk an einen Server übertragen werden. Dieser führt dann die Zugriffe auf seine Massenspeicher durch und liefert die angeforderte Information an den Client zurück.

Da dieselben Systemaufrufe verwendet werden, unterscheiden sich die Zugriffe aus Programm- und Anwendersicht nicht von der auf die lokalen Geräte. Man spricht hier von transparenten Zugriffen, weil der Anwender die Umlenkung auf den anderen Rechner nicht sieht, sondern scheinbar unmittelbar auf die Platte des entfernten Rechners schaut – wie durch eine transparente Glasscheibe. Für Netzwerkdateisysteme stehen spezielle Netzwerkprotokolle zur Verfügung.

Kann auf ein Dateisystem z. B. in einem SAN von mehreren Systemen parallel direkt zugriffen werden, spricht man von einem Globalen- oder Cluster-Dateisystem. Dabei sind zusätzliche Maßnahmen zu ergreifen, um Datenkorruption durch gegenseitiges Überschreiben zu vermeiden. Dazu wird ein Metadaten-Server eingesetzt. Alle Systeme leiten die Metadaten-Zugriffe – typischerweise über ein LAN – an den Metadaten-Server weiter, der diese Operationen wie Verzeichniszugriffe und Block- bzw. Clusterzuweisungen vornimmt. Der eigentliche Datenzugriff erfolgt dann über das SAN als ob das Dateisystem lokal angeschlossen wäre. Da der Overhead durch die Übertragung an den Metadaten-Server insbesondere bei großen Dateien kaum ins Gewicht fällt, kann so eine Übertragungsgeschwindigkeit ähnlich der eines direkt angeschlossenen Dateisystems realisiert werden.

Spezielle virtuelle Dateisysteme

Das open-read-Modell lässt sich auch auf Geräte und Objekte anwenden, die normalerweise nicht über Dateisysteme angesprochen werden. Dadurch wird der Zugriff auf diese Objekte identisch mit dem Zugriff auf normale Dateien, was meist Vorteile bringt.

Unter den derzeitigen Linux-Kernels (u. a. Version 2.6) lassen sich System- und Prozessinformation über das virtuelle proc-Dateisystem abfragen und ändern. Die virtuelle Datei /proc/cpuinfo liefert z.B. Informationen über den Prozessor.

Solche Pseudo-Dateisysteme wie proc gibt es unter Linux einige: Dazu zählen sysfs, usbdevfs oder devpts; unter einigen BSDs gibt es ein kernfs. Nicht zuletzt devfs bzw. udev für Gerätedateien (siehe unten). All diese Dateisysteme enthalten nur rein virtuell vorhandene Dateien mit Informationen oder Geräten, die auf eine "Datei" abgebildet werden.

Der Kernel gaukelt hier quasi die Existenz einer Datei vor, wie sie auch auf einem Massenspeicher vorhanden sein könnte.

Dateien in ramfs oder tmpfs, aber auch initrd und ähnlichen Dateisystemen existieren jedoch tatsächlich, werden aber nur im Speicher gehalten. Sie werden aus Geschwindigkeitsgründen und aus logisch-technischen Gründen während der Boot-Phase eingesetzt.

Besonderheiten

Viele moderne Dateisysteme haben das Prinzip der Datei verallgemeinert, so dass man in einer Datei nicht nur eine Folge von Bytes, einen sogenannten Stream (engl. Strom), sondern mehrere solcher Folgen (Alternate Data Streams) abspeichern kann. Dadurch ist es möglich, Teile einer Datei zu bearbeiten, ohne eventuell vorhandene andere Teile, die sehr groß sein können, verschieben zu müssen.

Problematisch ist die mangelnde Unterstützung von multiplen Streams. Das äußert sich zum einen darin, dass alternative Daten beim Transfer auf andere Dateisysteme (ISO 9660, FAT, ext2) ohne Warnung verloren gehen, zum anderen darin, dass kaum ein Werkzeug diese unterstützt, weshalb man die dort gespeicherten Daten nicht ohne Weiteres einsehen kann und beispielsweise Virenscanner dort abgespeicherte Viren übersehen.

Dadurch dass der Hauptdatenstrom von Änderungen an den anderen Strömen nicht berührt wird, ergeben sich Vorteile für die Performance, den Platzbedarf und die Datensicherheit.

Unter Inode-basierten Dateisystemen sind Sparse-Dateien, Hardlinks und symbolische Links möglich. Auch technisch anders aufgebaute Dateisysteme kennen neuerdings zum Teil diese Eigenschaften.

Dateisysteme aus dem Unix-Bereich kennen besondere Gerätedateien. Deren Namen sind dabei oft per Übereinkommen festgelegt, sie können nach Belieben umbenannt werden; so haben z. B. auch die Tastatur, Maus und andere Schnittstellen spezielle Dateinamen, auf die mit open, read, write zugegriffen werden kann, sogar der Hauptspeicher hat einen Dateinamen (/dev/mem). (Die Unix-Philosophie dazu lautet: „Alles ist eine Datei, und wenn nicht, sollte es eine Datei sein.“)

In anderen Dateisystemen (wie unter MS-DOS die FAT-basierten Systeme, aber auch unter NTFS) gibt es fest einprogrammierte "magische" Dateinamen mit besonderen Bedeutungen, die dem System der Gerätedateien ähnlich sind: COM, CON, LPT, PRN und andere. Diese besonderen Dateinamen waren in der Vergangenheit öfters Anlass von Sicherheitsproblemen, da die entsprechenden Namen zum Teil einigen Applikationen nicht bekannt waren und daher nicht herausgefiltert wurden, aber zum Teil auch weil der Zugriffsschutz auf die damit assoziierten Geräte unzureichend geregelt war.

Assoziative Dateiverwaltung

Diese werden häufig fälschlicherweise als Datenbankdateisysteme oder SQL-Dateisysteme bezeichnet, hierbei handelt es sich eigentlich nicht um Dateisysteme, sondern um Informationen eines Dateisystems, die in aufgewerteter Form in einer Datenbank gespeichert und in, für den Anwender intuitiver Form, über das virtuelle Dateisystem des Betriebssystems dargestellt werden.

Hauptartikel: assoziative Dateiverwaltung

Beispiele für Dateisysteme

Viele frühe Betriebssysteme (z. B. CP/M, Apple DOS, Commodore DOS) hatten jeweils nur ein Dateisystem, das keinen eigenen Namen trug. Diese sind im Bedarfsfall mit dem Hersteller genauer zu bezeichnen.

Übersicht über modernere Dateisysteme

Quelle: Wikipdia

Linux/UNIX 

  • ADFS (Acorn StrongARM)
  • AdvFS (HP Tru64) Cluster-Dateisystem mit journaling
  • FFS Berkeley Fast File System – Variante von UFS unter BSD
  • CFS Crypto File System – Auf einen NFS-Daemon aufsetzendes Verschlüsseltes Dateisystem
  • EAFS Extended Acer File System – Verwendung unter SCO Unix
  • EFS (Extent File System Vorgänger von XFS)
  • EncFS Encrypted Filesystem – Auf FUSE basierendes Userland Dateisystem
  • ext2 (second extended file system, lange Zeit das Linux-Standard-Dateisystem)
  • ext3 (weiterentwickelte Variante von ext2 mit journaling)
  • FUSE Userland-Dateisystem im Linux-Kernel
  • GNOME Storage (Assoziative Dateiverwaltung)
  • GPFS General Parallel File System erlaubt von mehreren Linux und AIX Systemen den direkten parallelen Zugriff auf ein File-System im SAN
  • HTFS High throughput file system – Standarddateisystem unter SCO OpenServer
  • JFFS2 (Journaling Flash File System, Version 2) Flash-Speicher Dateisystem für Embedded Linux Einsatz
  • JFS (Journaled File System von IBM)
  • LUFS Linux Userland Filesystem - Hybrides Userland Dateisystem
  • NFS Network File System (von Sun für Solaris entwickelt)
  • NILFS (Ein recht neues Dateisystem vom NTT mit journaling)
  • minix (des gleichnamigen Betriebssystems)
  • OCFS2 Oracle Cluster File System for Linux Version2 – POSIX-kompatibles Cluster-Dateisystem
  • ReiserFS (Linux Journaling File System von Hans Reiser)
  • Reiser4 (Komplett neu entwickeltes Journaling File System von Hans Reiser)
  • s5fs (das klassische Dateisystem des System V-Unix von AT&T)
  • Files-11 (OpenVMS Files-11 File System, Standard File System unter OpenVMS)
  • UFS (UNIX File System, verwendet unter Solaris und BSD)
  • VxFS (Journaled File System von VERITAS)
  • xFS Netzwerk-Dateisystem
  • XFS (ein weiteres journaling Dateisystem von SGI)
  • ZFS 128-Bit-Dateisystem ab Solaris 10
  • SQUASH Komprimiertes Read Only Dateisystem

Microsoft

DOS:

  • FAT bzw. FAT12 (File Allocation Table, für Disketten)
  • FAT16 (Erweitertes FAT-System für Festplatten)
  • FAT32 (Erweitertes FAT für große Festplatten)

MS-Windows (ab Windows 2000) unterstützt sämtliche MS-DOS-Dateisysteme, zusätzlich:

Apple/Macintosh

Sonstige

AmigaOS:

  • OFS (Amiga Old File System)
  • FFS (Amiga Fast File System)
  • SFS (Smart File System) Standard unter MorphOS
  • PFS Professional File System

OS/2:

  • JFS (Journaled File System)
  • HPFS (High Performance File System)

BeOS/Haiku:

  • BFS
  • OpenBFS (64 Bit, multithreaded, journaliertes, Datenbank-ähnliches Dateisystem)

CD-ROM/DVD:

  • ISO9660 (CDFS – Dateisystem für CD-ROMs, nach dem Motto „kleinster gemeinsamer Nenner“)
  • Joliet (Erweiterung des ISO9660 von der Firma Microsoft)
  • Rockridge (Erweiterung des ISO9660 für UNIX)
  • UDF (Universal Disk Format, u. a. auf DVDs aller Typen gebräuchlich)

Netzwerk:

  • AFS (Andrew File System)
  • Apple Filing Protocol (ein über Netzwerke angeschlossenes Dateisystem vor allem für Mac OS-Systeme)
  • Coda (ein fortgeschrittenes Netzwerk-Dateisystem ähnlich zu NFS)
  • DFS (distributed file system der Open Group, eine Weiterentwicklung des Andrew File System; dieselbe Abkürzung bezeichnet das gleichnamige System von Microsoft)
  • NCP (NetWare Core Protocol)
  • NFS (Network File System; ein über Netzwerke angeschlossenes Dateisystem vor allem für Unix-artige Systeme)
  • Suchwerk (implementiert über den Umweg eines Netzwerklaufwerkes ein virtuelles Dateisystem für Windows-Systeme)
  • SMB/CIFS (ein über Netzwerke angeschlossenes Dateisystem vor allem für Windows-Systeme)
  • xFS (ein verteiltes und dezentrales Netzwerk-Dateisystem)

Weitere:

  • WAFL (Write Anywhere File Layout) proprietäres Dateisystem auf den NAS-Systemen der Firma Network Appliance. Strukturell teilweise mit FFS bzw. IBMs TransArc Episode Dateisystem vergleichbar.

Bücher bei Amazon

Dateisystem NTFS

Quelle: Wikipedia
NTFS steht für New Technology File System und ist das Dateisystem von Windows NT, einschließlich seiner Nachfolger Windows 2000, Windows XP, Windows Server 2003 und Windows Vista. NTFS erbte viele Konzepte von IBMs Dateisystem HPFS, das in dem zusammen mit Microsoft entwickelten Betriebssystem OS/2 verwendet wurde.

Im Vergleich zu FAT bietet NTFS u.a. einen gezielten Zugriffsschutz auf Dateiebene durch vollständige Unterstützung von Zugriffskontrolllisten.
Inhaltsverzeichnis

Aufbau

Aus Sicht des Dateisystems ist alles Teil einer Datei, auch die Metadaten des Systems. Die Hauptdatei ist die MFT (Master File Table). In dieser Datei befinden sich die Einträge, welche Sektoren zu welcher Datei gehören, die Zugriffsberechtigungen und die Attribute. Jede Eigenschaft einer Datei ist unter NTFS ein Attribut, auch der eigentliche Dateiinhalt.

Sehr kleine Dateien (bis ca. 1,4 KiB) werden in der MFT direkt abgespeichert. Größere Dateien werden dann als Attribut in einem Datenlauf gespeichert.

Beim Formatieren der Festplatte wird für die MFT eine feste Größe vorgegeben. Wenn diese aufgebraucht ist, beginnt das Dateisystem NTFS, freien Speicher vom Datenträger zu benutzen, wodurch es zu einer Fragmentierung der MFT kommen kann.

Beim Speichern einer Datei wird ein Journal geführt. Das bedeutet dass eine geplante Aktion zuerst in das Journal geschrieben wird, dann wird der eigentliche Schreibzugriff auf die Datei ausgeführt, und abschließend wird das Journal aktualisiert. Wenn ein Schreibzugriff nicht vollständig beendet wird, zum Beispiel wegen eines Stromausfalls, muss das Dateisystem nur die Änderungen im Journal zurücknehmen und befindet sich anschließend wieder in einem konsistenten Zustand.

NTFS-Versionen

    * NTFS 1.X - Windows NT 3.51
    * NTFS 2.X - Windows NT 4.0
    * NTFS 3.0 - Windows 2000
    * NTFS 3.1 - Windows XP

Oft wird fälschlicherweise von NTFS-Version 5, bzw 5.1 gesprochen, wobei die 5 nicht die Version, sondern die Zugehörigkeit zu Windows 2000 (NT 5) bzw. zu Windows XP (NT 5.1) signalisiert. Aktuell ist somit NTFS 3.1.

Vorteile

    * effiziente Speichernutzung bei Partitionen über 400 MiB
    * Metadaten-Journaling: automatische Fehlerkorrektur des Dateisystems (aber nicht der Daten).
    * lange Dateinamen: Dateinamen können im Gegensatz zu FAT16 bis zu 256 Zeichen lang sein und aus fast beliebigen Unicode-Zeichen bestehen
    * eine maximale Länge des kompletten Pfadnamens von ca. 32.000 Zeichen
    * hohe Datensicherheit durch Vergabe von Zugriffsrechten auf Betriebssystem-Ebene
    * Mechanismen zur fehlertoleranten Datenspeicherung, z.B. „Festplattenspiegelung“
    * Maximale Dateigröße von theoretisch 16 Exbibyte
    * Verwendung von Datenträgern mit dynamischer Größe (ohne feste Partitionstabelle)
    * schnelle und effiziente Speicherung von kleinen Dateien (ab Windows NT 3.51 werden standardmäßig 4 KiB große Cluster verwendet)
    * Speicherung von alternativen Datenströmen
    * transparente Komprimierung von Dateien (nur bei unverschlüsselten Dateien und Clustergrößen bis 4KiB verfügbar)

NTFS 3.X

    * Daten- und Datenträgerverschlüsselung mit EFS (nicht in der XP Home Edition und nur bei unkomprimierten Daten)
    * Kontingente (auch: Disk Quota), um den verwendbaren Festplattenplatz für einzelne Nutzer zu beschränken
    * Analysepunkte (engl. Reparse Point) zur Verknüpfung von Aktionen/Funktionen mit Dateien und Verzeichnissen, z.B. für
          o Hardlinks: Daten können von bis zu 1023 Dateinamen referenziert werden (eine Datei, viele Namen).
          o NTFS-Junction-Points bzw. symbolische Links, um Verzeichnisse, Partitionen oder Laufwerke in andere Verzeichnisse einzuhängen (siehe Symlinks bei Unix/Linux). NTFS-Junction-Points können jedoch nur auf lokale Ressourcen verweisen, nicht auf Freigaben anderer Rechner – das ist nur mit DFS-Junction-Points möglich.
          o Remote Storage Server
    * Für Dateien mit vielen Leerinhalten werden, wenn sie als Sparse File gekennzeichnet sind, nur die bereits geschriebenen Abschnitte gespeichert.

Nachteile

    * Proprietäres Dateisystem, d.h. die genaue Funktionsweise ist ein Betriebsgeheimnis von Microsoft
    * Nur bedingte Kompatibilität zu DOS & Linux sowie komplette Inkompatibilität zu Windows 9x
    * Aufgrund des Sicherheitskonzeptes von NTFS (Sichern/Protokollieren) ist NTFS beim Schreiben auf Partitionen unter 120 GB etwas langsamer als die FAT32-Dateisysteme. Wie stark sich das ganze auswirkt, ist abhängig vom IDE-Controller und der Festplattenarchitektur.
    * NTFS erlaubt Alternative Datenströme (ADS), in denen versteckt Dateien abgelegt werden können, was eine mögliche Gefahrenquelle darstellt.
    * NTFS versucht standardmäßig, Dateien am Stück zu speichern, trotzdem kann es mit vielen kleinen Dateien zu einer Fragmentierung der MFT kommen. Microsoft liefert ein Defragmentierungsprogramm mit, das aber keine komplette Defragmentierung schafft. Produkte von Drittherstellern können auch stark fragmentierte NTFS-Partitionen sicher defragmentieren (siehe Defragmentierungsprogramm für NTFS, c't 21/05).
    * Die kleineren Clustergrößen machen das Dateisystem langsamer. Allerdings kann dies behoben werden, indem man über die Befehlszeile formatiert und größere Clustergrößen (bis zu 64 KiB) verwendet. Allerdings funktioniert die implementierte Komprimierung von Dateien nur bei Clustergrößen bis 4 KiB und die interne Fragmentierung steigt deutlich, was zu Speicherplatzverschwendung führt.
    * Die MFT ist eine lineare Struktur, was Zugriffe verhältnismäßig ineffizient macht.
    * Der freie Speicherplatz wird in Bitmaps verwaltet, was zu erhöhtem Zeitaufwand beim Suchen freier Blöcke führen kann.

NTFS 3.X

    * Windows NT 4.0 kann NTFS 3.X-Partitionen erst ab Service Pack 4 lesen.


Standard-Clustergrößen
Laufwerksgröße  Clustergröße
512 MiB oder weniger 512 Bytes
513 MiB - 1024 MiB 1024 Bytes
1025 MiB - 2048 MiB 2048 Bytes
2049 MiB und mehr 4096 Bytes


Zugriff mit Linux


Kernel-Treiber

Der Linux-Kernel kann seit Version 2.2.0 NTFS-Laufwerke mounten, allerdings ohne Schreib-Unterstützung. In Linux 2.4 ist ein NTFS-Treiber enthalten, der auch schreiben, dabei allerdings ernsthafte Schäden am Dateisystem anrichten kann. Für die Kernel-Version 2.6 wurde der NTFS-Treiber komplett neu geschrieben (entwickelt von Anton Altapamarkov [1], Cambridge Universität, und Richard Russon) und bietet eine überarbeitete Unterstützung für Schreibzugriffe.

Ab Kernel 2.6.7 konnten nur schon existierende und nicht schreibgeschützte Dateien sicher geändert oder überschrieben werden, wenn die Dateigröße sich dabei nicht ändert. Das Anlegen oder Löschen von Dateien oder Verzeichnissen wird noch nicht unterstützt.

Seit Kernel 2.6.12 wird die NTFS-Schreibunterstützung nicht mehr als experimentell bezeichnet.

Ab Kernel 2.6.15 ist auch das Verändern von Dateien mit Änderung der Dateigröße möglich. Anlegen und Löschen von Dateien werden vom NTFS-Kerneltreiber noch nicht unterstützt.

User-Mode-Treiber

Der Entwicklung des NTFS-Kernel-Treibers voraus ist der User-Mode-Treiber, mit dem man Dateien und Verzeichnisse sowohl erstellen als auch löschen kann. Manche Schreiboperationen können zwar fehlschlagen, jedoch kommt es dabei zu keiner Inkonsistenz des Dateisystems. Dieser Treiber basiert auf FUSE und ist somit auch für andere Betriebssysteme mit FUSE-Unterstützung verfügbar.

Eine neue Version des User-Mode-Treibers unter dem vorläufigen Namen ntfs-3g unterstützt nun vollständige Schreib- und Lesezugriffe. Ausnahmen bilden der Zugriff auf verschlüsselte Dateien, das Erstellen komprimierter Dateien sowie das Verändern von Zugriffs- und Eigentumsrechten. Die Zusammenführung von ntfs-3g in den offiziellen User-Mode-Treiber ist vorgesehen.[1]

Microsoft NTFS-Treiber

Derzeit existiert auch ein freies Programmpaket namens Captive, das die Originaltreiber von Windows (XP/2003) einsetzt und ihnen eine Windows-Umgebung simuliert. Dieser Treiber ist folglich hochkompatibel, benötigt aber erhebliche Resourcen und ist extrem langsam. Für den legalen Einsatz der Originaltreiber ist eine Windows-Lizenz erforderlich.

Paragon NTFS-Treiber

Weiterhin gibt es ein kommerzielles Produkt NTFS for Linux 3 von Paragon, das im Linux-Magazin 11/04 vorgestellt wurde. Es kann jedoch das Dateisystem beschädigen, insbesondere bei NTFS 3.x. Update: Nach der Erfahrung eines anderen Benutzers arbeitet die Version vom April 2006 recht schnell und zuverlässig.

Zugriff mit DOS

Für DOS-Systeme (z.B. Bootdisketten) kann man beschränkten NTFS-Zugriff erlangen. Die Firma Sysinternals bietet Treiber namens NTFSDOS an, der in der kostenlosen Version allerdings nur lesen kann. Das Unternehmen Datapol stellt einen kostenlosen NTFS-Treiber für DOS mit Schreibzugriff bereit.

Inhaltsverzeichnis von NTFS.COM

http://www.ntfs.com/

 

NTFS Basics

NTFS vs FAT

NTFS Optimization

NTFS Recovery Concepts

File Storage Hardware and Disk Organization

WinFS File System

The FAT File System

Aus der User-Archiv-Datenbank zum Suchbegriff "Dateisystem"

http://www.nickles.de/c/s/4-0008-235-1.htm
Rubrik: Hardware; Typ: Sonstige_Literatur
http://www.comsafe.de/filesystem.html
Rubrik: Internet; Typ: Sonstige_Literatur
http://www.pc-magazin.de/praxis/linux/cm/page/page.php?table=pg&id=470
Rubrik: Betriebssysteme; Typ: Sonstige_Literatur
http://www.windows-profi.de/wissen/dateisystem/ntfs/index.htm
Rubrik: Betriebssysteme; Typ: Sonstige_Literatur
http://www.microsoft.com/germany/windowscenter/tipps/convert.mspx
Rubrik: Betriebssysteme; Typ: Sonstige_Literatur
http://support.microsoft.com/kb/100108/
Rubrik: Betriebssysteme; Typ: Sonstige_Literatur
http://support.microsoft.com/kb/310525/
Rubrik: Betriebssysteme; Typ: Sonstige_Literatur
http://support.microsoft.com/kb/310561/
Rubrik: Betriebssysteme; Typ: Sonstige_Literatur
http://support.microsoft.com/kb/314097/
Rubrik: Betriebssysteme; Typ: Sonstige_Literatur
http://support.microsoft.com/kb/314878/
Rubrik: Betriebssysteme; Typ: Sonstige_Literatur
http://www.pro-linux.de/t_system/ext2_acl.html
Rubrik: Betriebssysteme; Typ: Sonstige_Literatur
http://www.pro-linux.de/t_system/shfs.html
Rubrik: Betriebssysteme; Typ: Sonstige_Literatur
http://www.pro-linux.de/t_system/vfat-tipps.html
Rubrik: Betriebssysteme; Typ: Sonstige_Literatur
http://www.pro-linux.de/t_wm/mounten.html
Rubrik: Betriebssysteme; Typ: Sonstige_Literatur
http://linuxwiki.org/DateiSystem
Rubrik: Betriebssysteme; Typ: Sonstige_Literatur
http://www.nickles.de//c/s/4-0008-235-1.htm
Rubrik: Hardware; Typ: Sonstige_Literatur
http://www.selflinux.org/selflinux/html/dateisysteme_journaling.html
Rubrik: Betriebssysteme; Typ: Sonstige_Literatur
http://www.linuxforen.de/forums/showthread.php?t=183602
Rubrik: Betriebssysteme; Typ: Sonstige_Literatur
http://www.pc-magazin.de/praxis/linux/a/Das_Linux_Dateisystem
Rubrik: Betriebssysteme; Typ: Sonstige_Literatur
http://www.learninglinux.de/tutorials/index.php?action=artikel&cat=15&id=18&artlang=de
Rubrik: Betriebssysteme; Typ: Sonstige_Literatur
http://www.pl-forum.de/work/newbie/mount.html
Rubrik: Betriebssysteme; Typ: Tutorials
http://www.webwork-magazin.de/magazin/artikel/127
Rubrik: Webseiten; Typ: Sonstige_Literatur
http://home.t-online.de/home/pqtuning/win98/fehler.html
Rubrik: Betriebssysteme; Typ: Sonstige_Literatur

ebay-Angebote


Bücher bei Amazon


Produkt-Preisvergleich




Linktipps

Einkaufen

Internet-Einkaufszentrum

Computer, Elektronik

Freizeit, Sport, Fitness

Mobilfunk, Handy

Apple iPhone

Mobilfunk Handytarife

Fotografie

Filmen

Rund um's Auto

Mehr? Sieh selbst:

Verbraucherschutz

Verbrauchermagazin

Nachrichten

Stiftung Warentest

Ökotest

Verbraucherschutz-Ministerium

Wer ist unter uns?



Bücher




Software


Nutzen Sie die Vorteile beim Softwarekauf Über Amazon: Software wird von Kunden bewertet - günstiges Versandkostensystem - Amazon ist zuverlässig





Handy/Telefon


O2 Inklusiv Pakete Online

Empfehlung: Top-Services

Kredite und Finanzierung

Tagesgeld und Girokonten

Partnersuche

Reisen

Hotelsuche

Handytarif-Vergleich

Stromtarif-Vergleich

Gastarif-Vergleich

Internet Flatrate Vergleich

Versicherungsvergleich

Immobilien

Verbraucherschutz



TERRE DES LANGUES e.V. - 25 Jahre Erfahrung in Sprachreisen, Schuljahresaufenthalte, Highschool-Years und Gastfamilienaufenthalte


www.user-archiv.de (seit 1999)