Zum Inhalt springen

Dateisystem: Unterschied zwischen den Versionen

Aus Foxwiki
K Textersetzung - „http://“ durch „https://“
 
(57 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''topic''' kurze Beschreibung
'''Dateisystem''' - Ablageorganisation auf [[Datenträger]]n eines [[Computer]]s
 
== Beschreibung ==
== Beschreibung ==
* Das '''Dateisystem''' ({{enS|file system}} oder {{lang|en|filesystem}}) ist eine Ablageorganisation auf einem ''[[Volume (Datenspeicher)|{{lang|en|Volume}}]]'' wie etwa einem [[Datenträger]] eines [[Computer]]s.
* Dateisystem
* [[Datei]]en können gespeichert, gelesen, verändert oder gelöscht werden ([[CRUD]]).
* file system
* Für den Nutzer müssen [[Dateiname]] und computerinterne Datei[[Speicheradresse|adresse]]n in Einklang gebracht werden.
* filesystem
* Das leichte Wiederfinden und das sichere Abspeichern sind wesentliche Aufgaben eines Dateisystems.
* Das Ordnungs- und Zugriffssystem berücksichtigt die Geräteeigenschaften und ist elementarer Bestandteil eines Computersystems oder eines [[Betriebssystem]]s.
 
=== Begriff ===
Der Begriff „Dateisystem“ kann sich einerseits auf den gesamten übergeordneten Verzeichnisbaum, die [[Verzeichnisstruktur]], beziehen, andererseits auf individuell [[mounten|einbindbare]] Dateisysteme, etwa auf [[Partition (Datenträger)|Partitionen]].<ref>{{Literatur |Autor=Aeleen Frisch |Titel=Unix System-Administration |Verlag=O'Reilly Germany |Datum=2003 |Kapitel=2: Die Unix-Philosophie |Seiten=66, Fußnote 13 |Online={{Google Buch |BuchID=5SFARdg6LdoC |Seite=66 |Linktext=Volltext |Hervorhebung=Dateisystem}} |Zitat=Der Begriff Dateisystem bezieht sich somit zum einen auf den übergeordneten Verzeichnisbaum des Systems, der alle Festplattenpartitionen des Systems umfasst, auf die die Benutzer zugreifen können (wie in »das Unix-Dateisystem«), zum anderen auf die Dateien und Verzeichnisse auf den individuellen Festplattenpartitionen (wie in »ein Dateisystem auf einer Festplattenpartition einrichten« oder »das Benutzer-Dateisystem mounten«). Erst aus dem Kontext wird deutlich, welche der beiden Bedeutungen des Begriffs gemeint ist.}}</ref><ref>{{Literatur |Autor=Ray Duncan |Titel=Power Programming – Getting Acquainted with The Latest Version of OS/2: 1.2 (Part&nbsp;2) |Sammelwerk=[[PC Magazine]] |Band=9 |Nummer=7 |Verlag=[[Ziff Davis]] |Datum=1990-04-10 |Sprache=en |Seiten=317 |Fundstelle=What is a file system? |Online={{Google Buch |BuchID=5kj9fdPQCzYC |SeitenID=320 |Hervorhebung=file system}} |Zitat=The phrase ‘file system’ itself can be rather confusing, however, for it has two common but distinctly different meanings. When a physical storage medium is being discussed, the phrase refers to the manner in which data is formatted, organized, and indexed on the medium. The file system is the sum of tables, directories, files, and other structures that allow data to be stored and retrieved by name. The file system also includes the ability to track and allocate the remaining free space on the medium. The key point is that a physical file system, often called a ‘volume’, is both self-consistent and self-sufficient. When ''file system'' is used with respect to software, it refers to the module of the operating system that translates requests from an application program—to open, create, read, write, or close a directory or named file—into requests that the low-level disk device driver can understand. That is, the file-oriented, logical requests are transformed into one or more commands to the disk driver to read or write specific disk sectors. The software file system performs this translation with the aid of the tables, structures, and directories found in the physical file system.}}</ref> Da ein Dateisystem oft je Partition oder ''[[Volume (Datenspeicher)|{{lang|en|Volume}}]]'' eingesetzt wird, findet sich der Begriff „Dateisystem“ auch oft als Synonym für „Partition“ wieder<ref>{{Literatur |Autor=Aeleen Frisch |Titel=Unix System-Administration |Verlag=O'Reilly Germany |Datum=2003 |Kapitel=2: Die Unix-Philosophie |Seiten=66, Fußnote 13 |Online={{Google Buch |BuchID=5SFARdg6LdoC |Seite=66 |Linktext=Volltext |Hervorhebung=Dateisystem}} |Zitat=Die Begriffe Partition und Dateisystem werden ebenfalls manchmal synonym verwendet. Obwohl technisch gesehen nur Dateisysteme gemountet werden können, trifft man häufig auf Ausdrücke wie »eine Festplatte mounten« oder »eine Partition mounten«.}}</ref> – tatsächlich ist das Dateisystem jedoch der Inhalt und die Partition nur ein möglicher Rahmen, in dem der Speicherplatz als ''{{lang|en|Volume}}'' dafür zur Verfügung gestellt wird.
 
Auf den meisten Betriebssystemen wird mehr als ein Dateisystem unterstützt. Jedes Dateisystem muss auf einem getrennt ansprechbaren logischen ''{{lang|en|Volume}}'' untergebracht sein, etwa einer Partition oder einem zusätzlichen Datenträger wie einer Festplatte. Die Initialisierung dieses logischen getrennten Datenspeichers wird [[Formatierung]] genannt. Der Inhalt des Dateisystems wird durch Einhängen, Einbinden bzw. [[Mounten]] (von {{enS|to mount}}) im laufenden Systems zugänglich gemacht.
 
== Eigenschaften ==
Dateien haben in einem Dateisystem fast immer mindestens einen [[Dateiname]]n sowie [[Dateiattribut|Attribute]], die nähere Informationen über die Datei geben. Die Dateinamen sind in ''[[Verzeichnisstruktur|Verzeichnissen]]'' abgelegt; Verzeichnisse sind üblicherweise spezielle Dateien. Über derartige Verzeichnisse kann ein Dateiname (und damit eine Datei) sowie die zur Datei gehörenden [[Daten]] 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 [[Uniform Resource Identifier|URI]]) – innerhalb des Dateisystems – aufrufbar. Der Name einer Datei und weitere Informationen, die den gespeicherten Dateien zugeordnet sind, werden als [[Metadaten]] bezeichnet.
 
Für unterschiedliche Datenträger (wie [[Magnetband]], [[Festplattenlaufwerk]], optische Datenträger ([[Compact Disc|CD]], [[DVD]], …), [[Flash-Speicher]], …) gibt es darauf spezialisierte Dateisysteme.
 
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 mit dem Dateisystem werden diese abstrakten Angaben in physische Adressen ([[Datenblock|Blocknummer]], Spur, Sektor usw.) auf dem Speichermedium umgesetzt. In der Schicht darunter kommuniziert der Dateisystemtreiber dazu mit dem jeweiligen [[Gerätetreiber]] und mittelbar auch mit der [[Firmware]] des Speichersystems ([[Laufwerk (Computer)|Laufwerks]]). Letztere nimmt weitere Organisationsaufgaben wahr, beispielsweise den [[Transparenz (Computersystem)|transparenten]] Ersatz fehlerhafter Blöcke durch Reserveblöcke.
 
=== Organisation von Massenspeichern ===
Massenspeichergeräte wie Festplatten-, [[CD-ROM]]- und [[Diskette]]nlaufwerke haben normalerweise eine Blockstruktur, d.&nbsp;h. aus Betriebssystemsicht lassen sich Daten nur als Folge ganzer [[Datenblock|Datenblöcke]] lesen oder schreiben. Ein Speichergerät präsentiert das Speichermedium gegenüber dem Betriebssystem lediglich als große lineare Anordnung vieler nummerierter (und darüber adressierbarer) Blöcke.
 
Ein Block umfasst heute meistens 512 (=&nbsp;2<sup>9</sup>) oder 4096 (=&nbsp;2<sup>12</sup>) Bytes, auf optischen Medien (CD-ROM, DVD-ROM) 2048 (=&nbsp;2<sup>11</sup>) Bytes. Moderne Betriebssysteme fassen aus Performance- und Verwaltungsgründen mehrere Blöcke zu einem [[Cluster (Datenträger)|Cluster]] fester Größe zusammen. Heute sind Cluster mit acht oder noch mehr Blöcken üblich, also 4096 [[Byte]]s pro Cluster. Die Clustergröße ist im Allgemeinen eine [[Zweierpotenz]] (1024, 2048, 4096, 8192, …).
 
Eine Datei ist ein definierter Abschnitt eines [[Datenspeicher]]s, der auf dem Gerät aus einem oder mehreren Clustern besteht. Jede Datei erhält außerdem eine Beschreibungsstruktur, die die tatsächliche Größe, [[Referenz (Programmierung)|Referenzen]] auf die verwendeten Cluster und evtl. weitere Informationen wie [[Dateiformat|Dateityp]], Eigentümer, [[Zugriffsrecht]]e enthalten kann (Metadaten).
 
Für die Zuordnung von Clustern zu Dateien gibt es dabei mehrere Möglichkeiten.
* Die [[Referenz (Programmierung)|Referenz]] einer Datei besteht aus der Clusternummer des Anfangsclusters und der Anzahl der darauf (physisch sequenziell) folgenden Cluster. Nachteile: bei Vergrößerung muss ggf. die ganze Datei verschoben werden. Dies verkompliziert das 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 [[Datenspeicher|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 [[Liste (Datenstruktur)|verkettete Liste]]. Nachteile: Will man die Datei nicht sequenziell lesen, sondern zum Beispiel 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 (Beispiel: [[File Allocation Table|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. Dies wird heute in vielen Dateisystemen so umgesetzt.
 
[[Verzeichnis]]se 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.
 
Ein weiterer eigener Bereich auf dem Speichermedium dient der Buchführung, welche Blöcke oder Cluster schon belegt und welche noch frei sind. Ein oft dafür genutztes Mittel ist die ''{{lang|en|Block Availability Map}}'' (BAM), in der für jeden Block ein Speicherbit angelegt ist, das anzeigt, ob der Block belegt oder frei ist. Die BAM enthält im Prinzip [[Redundanz (Kommunikationstheorie)|redundante]] Informationen und dient der Effizienz der Verwaltung; sollten die dort gespeicherten Informationen verlorengehen, so kann die BAM neu erstellt werden.
 
Im Allgemeinen ist der erste Block für einen sogenannten [[Bootsektor]] (z.&nbsp;B. [[Master Boot Record]]) reserviert, der für das Hochfahren des Systems verwendet werden kann. Auf einem Speichermedium mit mehreren [[Partition (Datenträger)|Partitionen]] steht unmittelbar im Anschluss typischerweise die [[Partitionstabelle]], die Organisationsdaten zu den Partitionen enthält. Weder Bootblock noch Partitionstabelle sind Teil des eigentlichen Dateisystems.
 
Meist enthält jede Partition ein eigenes, von den Daten auf anderen Partitionen unabhängiges Dateisystem; die Ausführungen oben beziehen sich auf die einzelnen Partitionen, die sich eine nach der anderen an die Partitionstabelle anschließen.
 
{| cellpadding="4" class="wikitable"
| bgcolor="00FF00" | '''Boot'''
| bgcolor="AAEEEE" | '''Beschreibungsstrukturen'''
| bgcolor="AAEEEE" | '''Liste freier Cluster'''
| bgcolor="AAEEEE" | '''Cluster mit Dateien und Verzeichnissen'''
|-
|colspan="4"|<small>Beispiel für die Aufteilung eines Massenspeichers für ein simples Dateisystem</small>
|}
 
Aus Effizienzgründen, also vor allem zur Erhöhung der [[Rechenleistung|Leistung]]/Zugriffsgeschwindigkeit, wurden diverse Strategien entwickelt, wie diese Organisationsstrukturen innerhalb des zur Verfügung stehenden Speicherbereichs angeordnet werden. Da es beispielsweise in vielen Dateisystemen beliebig viele Unterverzeichnisse geben kann, verbietet es sich von vornherein, feste Plätze für diese Verzeichnisstrukturen zu reservieren, es muss alles dynamisch organisiert werden. Es gibt auch Dateisysteme wie einige von [[Commodore International|Commodore]], die die grundlegenden Organisationsstrukturen wie Wurzelverzeichnis und BAM in der Mitte des Speicherbereichs (statt wie meist bei anderen an dessen Anfang) anordnen, damit der Weg, den der Schreib-Lese-Kopf von dort zu den eigentlichen Daten und zurück zurückzulegen hat, im Mittel verringert wird. Allgemein kann es ein Strategieansatz sein, eigentliche Daten und ihre Organisationsdaten physisch möglichst nah beieinander anzuordnen.
 
=== Zugriff auf Massenspeicher ===
Ein Programm greift auf die Massenspeicher über das Dateisystem zu. Unter [[Unix]] und ähnlichen Betriebssystemen werden dazu [[Systemaufruf]]e zur Verfügung gestellt. Die wichtigsten Systemaufrufe sind hier:
 
* Systemaufrufe für Verzeichnisse:
** <code>mkdir</code>, <code>rmdir</code><br />Erzeugen und Löschen eines Verzeichnisses
** <code>opendir</code>, <code>closedir</code><br />Öffnen und Schließen eines Verzeichnisses
** <code>readdir</code><br />Lesen von Verzeichniseinträgen
** <code>chdir</code><br />Wechseln in ein anderes Verzeichnis
 
* Systemaufrufe für Dateien:
** <code>creat<!-- _nicht_ create! das fehlende e ist Absicht! --></code>, <code>unlink</code><br />Erzeugen und Löschen einer Datei
** <code>open</code>, <code>close</code><br />Öffnen und Schließen einer Datei
** <code>read</code>, <code>write</code><br />Lesen und Schreiben
** <code>seek</code><br />Neupositionieren des Schreib-/Lese-Zeigers
 
Außerdem bietet das Betriebssystem [[Dateiverwaltung#Betriebssystem|Verwaltungsfunktionen]], zum Beispiel für das Umbenennen, das Kopieren und Verschieben, Erzeugen eines Dateisystems auf einem neuen Datenträger, für Konsistenzprüfung, [[Datenkompression|Komprimierung]] oder Sicherung (je nach Betriebssystem und Dateisystem verschieden).
 
Die Umsetzung der Systemaufrufe eines Programms wird oft vom [[Kernel (Betriebssystem)|Kernel]] eines Betriebssystems implementiert und unterscheidet sich bei den verschiedenen Dateisystemen. Der Kernel übersetzt die Zugriffe dann in die Blockoperationen des jeweiligen [[Massenspeicher]]s. (Anmerkung: Tatsächlich trifft dies nur auf sogenannte [[Monolithischer Kernel|monolithische Kernel]] zu. Hingegen sind auf einem [[Microkernel]] oder [[Hybridkernel]] aufgebaute Systeme so konzipiert, dass die Dateisystemoperationen nicht vom Kernel selbst ausgeführt werden müssen.)
 
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 das Betriebssystem auch ihre Beschreibungsstruktur und damit die Referenzen zu den zugehörigen Clustern und gelangt über diese zu den konkreten Blöcken.
 
Mit ''read'' kann das Programm dann auf die Cluster der Datei (und damit auf die Blöcke auf dem Massenspeicher) zugreifen. Wird eine Datei aufgrund von ''write'' größer, 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.
 
 
== Installation ==
 
== Anwendungen ==
== Syntax ==
=== Optionen ===
=== Parameter ===
=== Umgebungsvariablen ===
=== Exit-Status ===
== Konfiguration ==
=== Dateien ===
== Sicherheit ==
== Dokumentation ==
=== RFC ===
=== Man-Pages ===
=== Info-Pages ===
== Siehe auch ==
== Links ==
=== Projekt-Homepage ===
=== Weblinks ===
=== Einzelnachweise ===
<references />
== Testfragen ==
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 1''
<div class="mw-collapsible-content">'''Antwort1'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 2''
<div class="mw-collapsible-content">'''Antwort2'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 3''
<div class="mw-collapsible-content">'''Antwort3'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 4''
<div class="mw-collapsible-content">'''Antwort4'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 5''
<div class="mw-collapsible-content">'''Antwort5'''</div>
</div>
 
[[Kategorie:Entwurf]]
 
= Wikipedia =
* Dieser Artikel behandelt ein Dateisystem auf einem Volume
* Zu weiteren Bedeutungen siehe [[Dateisystem (Begriffsklärung)]]
 
 


== Geschichte ==
; Ablageorganisation auf einem ''[[Volume (Datenspeicher)|Volume]]''
Historisch gesehen sind schon die ersten [[Lochstreifen]]- (auf Film- später auf Papierstreifen) und [[Lochkarte]]n-Dateien Dateisysteme. Sie bilden ebenso wie Magnetbandspeicher lineare Dateisysteme. Die später für die [[Massenspeicher]]ung und schnellen Zugriff entwickelten [[Trommelspeicher|Trommel]]- und Festplattenspeicher ermöglichten dann erstmals durch [[Wahlfreier Zugriff|wahlfreien Zugriff]] auf beliebige Positionen im Dateisystem komplexere Dateisysteme. Diese Dateisysteme bieten die Möglichkeit, per Namen auf eine Datei zuzugreifen. 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 [[Programmierschnittstelle|einheitliche Schnittstelle]] zuzugreifen.
*  wie etwa einem [[Datenträger]] eines [[Computer]]s
* [[Datei]]en können gespeichert, gelesen, verändert oder gelöscht werden ([[CRUD]])
* Für den Nutzer müssen [[Dateiname]] und computerinterne Datei[[Speicheradresse|adresse]]n in Einklang gebracht werden
* Das leichte Wiederfinden und das sichere Abspeichern sind wesentliche Aufgaben eines Dateisystems
* Das Ordnungs- und Zugriffssystem berücksichtigt die Geräteeigenschaften und ist elementarer Bestandteil eines Computersystems oder eines [[Betriebssystem]]s


== Siehe auch ==
<noinclude>
* [[Liste von Dateisystemen]]
* [[Fragmentierung (Dateisystem)]]


== Weblinks ==
== Anhang ==
{{Commonscat|File systems|Dateisysteme}}
=== Siehe auch ===
* [[:en:Comparison of file systems|Vergleich und Gegenüberstellung aller Dateisysteme (englische Wikipedia)]]
{{Special:PrefixIndex/{{BASEPAGENAME}}/}}
* [http://disktype.sourceforge.net/ disktype] erkennt den Dateisystemtyp
=== Links ===
==== Weblinks ====
# [[:en:Comparison of file systems|Vergleich und Gegenüberstellung aller Dateisysteme (englische Wikipedia)]]
# [https://disktype.sourceforge.net/ disktype] erkennt den Dateisystemtyp
# [https://www.admin-magazin.de/content/wie-funktionieren-linux-dateisysteme Wie funktionieren Linux-Dateisysteme?]
# [https://www.phoronix.com/scan.php?page=article&item=linux-44-47-fs&num=1 Linux 4.4 To 4.7 - EXT4 vs.&nbsp;F2FS vs.&nbsp;Btrfs Benchmarks] (SSD)
# [[Liste von Dateisystemen]]
# [[Fragmentierung (Dateisystem)]]


Linux:
{{DEFAULTSORT:new}}
* [http://www.admin-magazin.de/content/wie-funktionieren-linux-dateisysteme Wie funktionieren Linux-Dateisysteme?]
{{DISPLAYTITLE:new}}
* [http://www.phoronix.com/scan.php?page=article&item=linux-44-47-fs&num=1 Linux 4.4 To 4.7 - EXT4 vs. F2FS vs. Btrfs Benchmarks] (SSD)


== Einzelnachweise ==
[[Kategorie:Dateisystem]]
<references />


[[Kategorie:Dateisystem| ]]
</noinclude>

Aktuelle Version vom 7. April 2025, 14:37 Uhr

Dateisystem - Ablageorganisation auf Datenträgern eines Computers

Beschreibung

  • Dateisystem
  • file system
  • filesystem
Ablageorganisation auf einem Volume
  • wie etwa einem Datenträger eines Computers
  • Dateien können gespeichert, gelesen, verändert oder gelöscht werden (CRUD)
  • Für den Nutzer müssen Dateiname und computerinterne Dateiadressen in Einklang gebracht werden
  • Das leichte Wiederfinden und das sichere Abspeichern sind wesentliche Aufgaben eines Dateisystems
  • Das Ordnungs- und Zugriffssystem berücksichtigt die Geräteeigenschaften und ist elementarer Bestandteil eines Computersystems oder eines Betriebssystems


Anhang

Siehe auch

Links

Weblinks

  1. Vergleich und Gegenüberstellung aller Dateisysteme (englische Wikipedia)
  2. disktype erkennt den Dateisystemtyp
  3. Wie funktionieren Linux-Dateisysteme?
  4. Linux 4.4 To 4.7 - EXT4 vs. F2FS vs. Btrfs Benchmarks (SSD)
  5. Liste von Dateisystemen
  6. Fragmentierung (Dateisystem)