WikiDer > Erweitertes Dateisystem

Extended File System

Es erweitertes Dateisystem (ext) ist einer der ersten Dateisysteme die von der unterstützt wurden Linux-Betriebssystem und das erste speziell für dieses Betriebssystem geschriebene Dateisystem.

Geschichte

Es ext-Dateisystem wurde im April 1992 konzipiert und umgesetzt von and Remy-Karte als Ersatz für das Minix-Dateisystem. Es LinuxBetriebssystem wurde ursprünglich im Jahr 1991 auf einem Minix-System; Es war also eine praktische Entscheidung des Designers Linus Torvalds um zunächst auf das Dateisystem seines Arbeitssystem.

Im offenen Vertrieb durch die Internet Dieses (Minix-)System war jedoch nicht sehr beliebt: vor allem die 16-Bit-Adressierung Datenblöcke in diesem System und die damit verbundene maximale Dateisystemgröße von 64 Megabyte waren ein ernsthaftes Hindernis für die Nutzung. Auch die Begrenzung der Länge der Dateinamen (14 Zeichen) gefiel nicht.

Aus diesen Gründen wurde ext 1992 eingeführt. Dieses System hat die Größenbeschränkung des Dateisystems auf 2 . erhöht Gigabyte und erlaubte Dateinamen mit einer maximalen Länge von 255 Zeichen.

Die Architektur

Ext ist ernst serious Unix-ish Dateisystem und bietet daher alle Möglichkeiten, die mit einem solchen System verbunden sind: inodes, Verzeichnisstruktur, Links und spezielle Gerätedateien.

inodes

Im Gegensatz zu vielen anderen Dateisystemen werden Dateien im ext-System nicht durch Namen repräsentiert, sondern durch Strukturen namens inodes. Ein Inode ist eine Sammlung von Informationen über eine Datei und umfasst Dateityp (Verzeichnis, ausführbare Datei oder nicht, Link usw.), Zugriffsberechtigungen (Lesen, Schreiben, pro Benutzer, Gruppe und alle), Eigentümer der Datei, Zeitstempel des letzten Änderung, Dateigröße und Adressen auf der Festplatte der Datenblöcke, in denen die Datei gespeichert ist. Diese Adressen sind 21 Bit lang und ein Block kann 1 . enthalten Kilobyte enthalten (= also interne Adressen von 10 Bit), also hat eine Datei eine maximale Größe von grootte = 2GB. Somit kann eine einzelne Datei das gesamte Dateisystem belegen.

Verzeichnisse

Das ext-System bietet die Möglichkeit, Dateien in Dateigruppen zu organisieren, die als Verzeichnisse bezeichnet werden. Im ext-System ist ein Verzeichnis eine besondere Art von Datei, deren Inhalt eine Sammlung von Paaren ist: ein Dateiname und ein Inode pro Paar. Auf diese Weise wird die Verbindung zwischen Dateinamen und Inodes hergestellt und es können auch mehrere Namen zu einem Inode gehören. Spezielle Dateisystemoperationen für Dateien mit Verzeichnistyp ermöglichen es dem System, das Konzept von Wege (die Reihe der Namen, die in der Dateisystembaum führt vom Root – dem Anfang des Dateisystems – zu einer bestimmten Datei).

Ein wichtiger Punkt ist, dass Unix-ähnliche Dateisysteme (auch ext) Bäume sind und nein Wälder – anders als zum Beispiel FAT16 ein ext-System hat also eine einzelne Wurzel (genannt "root" oder einfach "/" – das leere Zeichen gefolgt vom Trennzeichen zwischen den Pfadteilen) anstelle von mindestens einer (wie C:, D: usw.).

Links

Das ext-System hat auch Links, dh Verweise auf Dateien. Die einfachste Form davon ist der Hardlink und wird in der Tat bereits unter der Überschrift "Verzeichnisse" beschrieben: Ein Hardlink ist ein Element einer Verzeichnisdatei, ein Name, der einem Inode zugeordnet ist. In einem Inode wird eine Linkanzahl gespeichert, die die Anzahl der Namen ist, die zu diesem Inode gehören. Die Datei, die den Inode repräsentiert, kann nicht gelöscht werden (d. h. die zur Wiederverwendung freigegebenen Datenblöcke), bis die Anzahl der Hardlinks Null wird. Das Erstellen von Hardlinks ist eine spezielle Operation des ext-Dateisystems, das Löschen entspricht dem Löschen von Dateien (es gibt buchstäblich auch keinen Unterschied).

Außer der Hardlink weiß Unix auch das weiche oder symbolisch Verknüpfung. Ein solcher Link ist tatsächlich eine separate Textdatei, die einen Pfadnamen enthält. Folgt das Betriebssystem einem Pfad, der zu einer symbolischen Linkdatei (symlink) führt, wird diese Datei gelesen und der Pfad intern durch den in der Datei gespeicherten Pfad ersetzt. Danach beginnt der Pfad erneut, um die Datei zu finden.

Hard- und Softlinks haben unterschiedliche Vor- und Nachteile. Ein Hardlink ist für das Betriebssystem sehr schnell zu verwenden - er führt direkt zu einem Inode. Es nimmt auch keinen separaten Platz im Dateisystem ein. Ein Hardlink ist jedoch nicht sehr flexibel; ein fester Link zu einer nicht existierenden Datei ist nicht möglich, daher ist auch ein fester Link zu einer Datei, die über das Netzwerk gelesen wird, nicht möglich (diese Datei muss nicht immer existieren). Tatsächlich ist ein Hardlink zu einer Datei außerhalb des "eigenen" Dateisystems völlig unmöglich, ein Softlink ist viel flexibler; ein symbolischer Link kann auf eine Datei außerhalb seines "eigenen" Systems verweisen, sogar auf eine Datei, die nicht existiert. Ein symbolischer Link nimmt jedoch mehr Platz ein (er ist selbst eine Datei, also mindestens ein Datenblock) und das Folgen eines solchen Links dauert länger.

Gerätespezifische Dateien

Ein lang gehegter Blick auf alles Unixwie bei Betriebssystemen ist, dass alles eine Datei ist: Dateien, Verzeichnisse, Links, Tastaturen (unendliche Datei, die nur lesbar ist), Displays, Netzwerkkarten, alles.

Peripheriegeräte innerhalb eines solchen Systems existieren daher als spezielle Datei, eine Datei, die ein Gerät repräsentiert (Gerätedatei). Solche Dateien haben zwei zusätzliche Parameter in ihren Inodes: a Haupt Nummer (die angibt, um welche Art von Gerät es sich handelt) und a geringer Nummer (wie viele solcher Geräte).

Es gibt zwei Arten von speziellen Gerätedateien: Zeichen und Blöcke. Diese entsprechen den beiden Arten von Peripheriegeräten – denen, deren Eingabe und Ausgabe Zeichen für Zeichen erfolgen, und denen, deren Eingabe jeweils ganze Blöcke umfasst. Beispielsweise ist eine Festplatte ein Blockgerät, eine Maus ein Zeichengerät.

Datenblöcke und Superblock

Ein Dateisystem wie ext ist im Grunde eine Sammlung von Datenblöcken, die untereinander in einer Anzahl von Blockgruppen. Diese Blockgruppen befinden sich nacheinander auf der Festplatte und enthalten jeweils eine Liste von Inodes und eine Anzahl von Stücken für echte Daten (zum Einschreiben von Dateien - das sind die Datenblöcke). Der erste Datenblock (vor der ersten Blockgruppe, fast vor dem Festplatte direkt nach dem Bootsektor) ist etwas Besonderes an ext – das ist der Superblock. Dieser Block enthält Informationen über die anderen Datenblöcke (hauptsächlich die Nummer) und alle Blockgruppen (Nummern, Orte usw.), wie z. B. die Adressen dieser Blöcke. Der Superblock wird durch eine magische Zahl gekennzeichnet – eine „magische Zahl“, die als Kennung vereinbart wird. Diese Nummer steht an einer festen Position relativ zum Anfang des Superblocks (ab Bitnummer 143). Bei ext lautet diese Nummer be5a941 (hexadezimal).

Einfluss auf Linux

Das ext-System hielt nicht lange - es wurde 1993 ersetzt. Trotz der großen Verbesserung des Minix-Dateisystems hat ext seine eigenen Grenzen, die sehr ärgerlich waren. ext hat zum Beispiel nur einen Zeitstempel, während separate Stempel für den letzten Zugriff, die Inode-Anpassung und die Datenänderung normal sind Unix. Schlimmer noch, ext ordnet seine Inodes innerhalb von Blöcken und Blöcke innerhalb des Superblocks über verknüpfte Listen an; Je länger ein System im Einsatz war, desto weniger geordnet wurden diese Listen und die Leistung wurde immer weniger.

Ext hat geholfen Linux von vielen Bastlern akzeptiert zu werden; die ideen hinter ext waren so gut, dass ext die basis für seinen nachfolger, den Zweites erweitertes Dateisystem (ext2).

Darüber hinaus ist das Erbe von ext jedoch an anderer Stelle zu sehen. Durch das Einfügen eines neuen Dateisystems benötigte Linux schon sehr früh eine Methode, um flexibel mit mehreren Dateisystemen gleichzeitig umzugehen. Um dies zu ermöglichen, wurde bereits 1992 die erste Version von Linux vorgestellt Virtual File System Switch (VFS) eingeführt, die eine Abstraktionsschicht über dem Dateisystem ist und es Linux ermöglicht, transparent auf eine endlos erweiterbare Sammlung von Dateisystemen zuzugreifen. Dies ist eine wichtige Grundlage für die enorme Flexibilität, die Linux als System auszeichnet.

Siehe auch

Externer Link