Nur eine kurze Frage, aber warum gibt es heute noch so viele konkurrierende und verwendete Dateisysteme? (ntfs, fat32, ext3 (ffs) usw.)
Es scheint, dass sich Dateisystemdesigner auf die besten Aspekte jedes Systemtyps einigen und ein "bestes" Dateisystem implementieren könnten, nicht wahr? Nur ein Gedanke, da es diese Dateisysteme schon eine Weile gibt, und es sollte zumindest ein wenig offensichtlich sein, welche gute Eigenschaften gegenüber anderen haben, und wir könnten einfach das Gute in jedem kombinieren und ein ultimatives System schaffen, das viel besser ist
standards
file-systems
standardization
Dunkler Templer
quelle
quelle
Antworten:
Lassen Sie uns einen Moment über die Besonderheiten nachdenken, indem wir Beispiele verwenden, die Sie zitiert haben:
ntfs - Eigentum von Microsoft. Jeder, der nicht Microsoft ist, kann dies nicht verwenden, daher müsste etwas anderes verwendet / erstellt werden. Wenn Sie Microsoft sind, möchten Sie dies aufgrund der Probleme des nächsten Aufzählungspunkts über FAT verwenden.
fat32 - Nicht modern genug. Die maximale Dateigröße beträgt 4 GB. Die Verzeichniseintragssuche lautet O (n). Die Zuordnungstabelle ist eine verknüpfte Liste, anstatt etwas Effizienteres wie eine Zuordnungsbitmap (bei der es sehr schnell geht, zusammenhängenden freien Speicherplatz zu finden). Unterstützt keine Berechtigungen. Unterstützt keine festen oder symbolischen Links. Unterstützt kein Journaling.
ext3 - Dies war eine Erweiterung von ext2, die hauptsächlich das Journaling unterstützte.
Es scheint also ein paar Gründe zu geben:
Einem früheren Dateisystem fehlt etwas. Bei FAT fehlt es an viel: sowohl an (1) Merkmalen als auch an (2) Leistung. Im Fall von ext2 gab es keine Journale für Updates, daher dauerte die Wiederherstellung nach einem Absturz länger.
Ein vorhandenes Dateisystem würde wahrscheinlich funktionieren, aber es gehört nicht Ihnen. (zB NTFS, wenn Sie nicht Microsoft sind). In diesem Fall haben Sie eigentlich keine andere Wahl, als sich Ihre eigenen auszudenken.
quelle
Kurze Antwort: Eine Größe passt nicht für alle.
Es gibt Kompromisse. Wenn Sie zum Beispiel eine aufgezeichnete FS möchten, müssen Sie dafür bezahlen (Effizienz, Komplexität usw.), aber etwas daraus ziehen. Einige haben nicht das Bedürfnis nach einem aufgezeichneten FS und wollen nicht dafür bezahlen, andere tun es. Gleiches gilt für andere "Features" des FS.
quelle
Es kann niemals ein "Bestes" von irgendetwas geben, weil es so viele Meinungen darüber gibt, was "Bestes" ist. Die Entscheidung richtet sich nach den Bedürfnissen und Einschränkungen des Benutzers. Entwürfe basieren immer auf ihrer Fähigkeit, sich in Einschränkungen einzufügen.
Auf einem einfachen Mobiltelefon müssen einige hundert Kontakte, der Verlauf von Kurzmitteilungen und einige kleine Apps gespeichert sein. Muss das Dateisystem eine hierarchische Verzeichnisstruktur auf Multi-Terabyte-Laufwerken in einer RAID-Konfiguration unterstützen? Ist auf dem Gerät genügend RAM vorhanden, um ein solches Dateisystem auszuführen? Benötigt das Dateisystem komplexe ACLs? Wahrscheinlich nicht - für all diese Fragen - so würde ein einfaches, ressourcenschonendes Dateisystem ausreichen.
Unternehmen werden auch verschiedene Produkte entwickeln, um sich einen Wettbewerbsvorteil zu sichern. Zum Beispiel wirbt Apple mit der Fähigkeit seines HFS + -Dateisystems, zu verfolgen, welche Dateien in letzter Zeit geändert wurden, damit Backups schnell durchgeführt werden können. Auf der anderen Seite können die Treiber für ein Disketten-Dateisystem (FAT) in nur wenigen KB Arbeitsspeicher passen.
quelle
Zu viel hängt davon ab, was Sie optimieren möchten.
Betrachten Sie FAT für einen Moment: Die Unterstützung für lange Dateinamen ist klug (um es gut auszudrücken), und das Durchsuchen von Dateien in einem Verzeichnis ist linear, sodass es sehr schnell langsam wird , wenn ein Verzeichnis viele Dateien enthält. Zur gleichen Zeit hat es ein Minimum an Metadaten, um rohe Schreibgeschwindigkeit ist sehr gut, und da es insgesamt so einfach ist, Code zu implementieren, kann es ziemlich klein sein.
Etwas wie ext2 oder ext3 fügt viele Funktionen und Fähigkeiten hinzu, die in FAT einfach nicht vorhanden sind. Die Suche nach Dateien ist auch viel schneller. Gleichzeitig ist die Raw-Schreibgeschwindigkeit wahrscheinlich etwas langsamer, und der Code zum Implementieren des Dateisystems ist zweifellos viel größer.
quelle
Nehmen wir an, es gab keine Kompromisse, und Dateisystemdesigner implementierten ein "bestes" Dateisystem, das frei von Patentproblemen war und als BSD / GPL mit doppelter Lizenz veröffentlicht wurde, so dass es für MS und Debian gleichermaßen akzeptabel wäre. Was lässt Sie denken, dass die anderen Dateisysteme über Nacht verschwinden würden?
Ich glaube nicht, dass jemand FAT32 seit 10 Jahren auf einer neuen Festplatte verwendet, aber es ist immer noch der De-facto-Standard für die Formatierung von USB-Laufwerken, SD-Karten usw. Hersteller von Kameras und Mobiltelefonen haben Firmware für die Verwendung getestet. Arduino-Bastler haben stabile Bibliotheken, um es zu verwenden. Sie alle werden große Anreize brauchen, um sich zu ändern.
Und dann haben Sie Probleme mit der Abwärtskompatibilität mit älteren Betriebssystemen (insbesondere Windows, dessen Benutzer keine neuen Dateisystemtreiber installieren möchten).
quelle
Wie so oft bei der Berechnung ist die Antwort (a) aufgrund historischer Umstände und der Notwendigkeit, die Abwärtskompatibilität aufrechtzuerhalten, und (b) weil einige Methoden für einige Aufgaben besser geeignet sind als andere.
Auf (a) müssen Sie sich daran erinnern, dass das "Winchester-Laufwerk" - ich bin gerade so alt, dass ich mich daran erinnern kann, dass sie so genannt wurden - (was der Rest der Welt eine "Festplatte" nennt) nur etwa die Hälfte der Zeit existiert hat Zeit des elektronischen Rechnens und selbst dann war es aus Kostengründen für die meisten Benutzer nicht einmal so lange zugänglich. Das FAT-Dateisystem funktionierte gut auf Disketten und auch auf den ursprünglichen kleinen Festplatten, da es einigermaßen effizient war und einen geringen Overhead erforderte. Sobald es in Betrieb genommen wurde - und seine Verwendung weit verbreitet war, weil es einfach zu implementieren war -, konnten die Hersteller seinen Benutzern nicht mitteilen, dass ihre alten Daten plötzlich ungültig waren.
Für Linux-Benutzer beispielsweise ließ die Entwicklung eines stabilen NTFS-Treibers nicht lange auf sich warten, sodass Geräte, die als FAT formatiert waren, systemübergreifend gelesen und geschrieben werden konnten.
Zu (b) - Denken Sie an die Unterschiede zwischen einem System, in dem beispielsweise Milliarden von textbasierten Datenbankeinträgen gespeichert sind, und einem System, in dem Mediendateien in DVD-Länge gespeichert sind. Für die Datenbank kann jeder Datensatz sehr klein sein - vielleicht nur 30 oder 40 Bytes, und ein Dateisystem, das ein ganzes 'Segment' (wie auch immer Sie das definieren möchten) der Festplatte zuweist, verschwendet wahrscheinlich Speicherplatz. Nicht so bei den DVDs - größere "Segmente" (innerhalb der Vernunft offensichtlich) dürften in Bezug auf den Platz hocheffizient sein.
Unterschiedliche Dateisysteme sind also für unterschiedliche Zwecke konzipiert.
quelle
Ein weiteres Beispiel dafür, warum es nie ein perfektes Dateisystem für alle geben kann: Festplatten und SSDs haben sehr unterschiedliche Lese- / Schreibzugriffseigenschaften. Ein SSD-optimiertes Dateisystem funktioniert wahrscheinlich am besten, wenn Dateien wie verrückt fragmentiert werden, jedoch mit jedem Fragment die Seitengröße der SSD selbst; Dies würde auf einer Festplatte furchtbar funktionieren. Ein HDD-optimiertes Dateisystem versucht, Dateien so unfragmentiert wie möglich zu halten, und legt häufig verwendete Dateien sogar im "heißen" Bereich auf dem sich schneller drehenden äußeren Teil des Plattentellers ab. Diese Eigenschaften würden der Lesegeschwindigkeit von SSD überhaupt nicht helfen und stellen eine enorme Belastung für die Art und Weise dar, in der sie geschrieben werden.
quelle
Ich denke, eine sehr wichtige Tatsache fehlt. Meistens denken Programmierer, dass ihre Arbeitsweise allen anderen überlegen ist, und schauen sich daher ein Dateisystem-Design an und finden Probleme und Lösungen, die allgemeiner, eleganter, schneller und korrekter zu sein scheinen. Und wenn dieses Gefühl stark genug ist, können sie ihr eigenes Dateisystem erstellen.
Dies führt zu Konkurrenz, Zersplitterung, Konfusion und ich hoffe am Ende bessere Lösungen und mehr Optionen, um eine passende Lösung für Sie zu wählen.
quelle
Hier ist ein weiteres konkretes Beispiel dafür, warum Sie ein separates Dateisystem benötigen oder die Funktionalität eines vorhandenen FS erweitern würden.
quelle
In Ihrer Liste erwähnen Sie ein altes Dateisystem, das verwendet wird, weil ein besseres nicht verfügbar ist, es jedoch schnell ist.
Es gibt andere Dateisysteme. Ich habe gehört, dass das Google-Dateisystem hauptsächlich für die schnelle Duplizierung / Redundanz gedacht ist, wenn eine Festplatte oder ein Server ausfällt. Ich erinnere mich, dass ich von einem anderen Dateisystem gehört habe, das für viele kleine Dateien gemacht wurde und auf einem System für viele Anfragen für kleine Dateien (Thumbnails) verwendet werden sollte.
Im Wesentlichen haben sie unterschiedliche Ziele und / oder können Anstand gegenüber Open Source sein.
quelle
Ich denke, dass ZFS (von Solaris im Sun-System [jetzt Oracle] verwendet) DIE Lösung für das Dateisystem ist.
Leider hat Oracle OpenSolaris für Discoverer geschlossen und getestet.
ZFS ist Open Source, einige Linux-Benutzer versuchen es zu integrieren. Weitere Informationen finden Sie in Wikipedia.
quelle