Der Linux-Kernel für FS Ext4 unterstützt einen Betrieb ohne Berücksichtigung der Groß-/Kleinschreibung

Ted Ts'o, Autor der Dateisysteme ext2/ext3/ext4, akzeptiert die auf den Linux-next-Zweig, der die Grundlage für die Kernel-Version von Linux 5.2 bilden wird, festgelegt Änderungen, die die Unterstützung für Vorgänge ohne Berücksichtigung der Groß- und Kleinschreibung im Ext4-Dateisystem implementieren. Die Patches bieten außerdem Unterstützung für UTF-8-Zeichen in Dateinamen.

Der case-insensitive Betriebsmodus wird optional für einzelne Verzeichnisse über das neue Attribut „+F“ (EXT4_CASEFOLD_FL) aktiviert. Wenn dieses Attribut für ein Verzeichnis festgelegt ist, wird bei allen Vorgängen mit darin enthaltenen Dateien und Unterverzeichnissen die Groß-/Kleinschreibung nicht beachtet. Dies gilt auch dafür, dass die Groß-/Kleinschreibung beim Suchen und Öffnen von Dateien (z. B. Test.txt-, test.txt- und test.TXT-Dateien in solchen) ignoriert wird Verzeichnisse werden als gleich betrachtet). Mit Ausnahme von Verzeichnissen mit dem Attribut „+F“ berücksichtigt das Dateisystem standardmäßig weiterhin die Groß-/Kleinschreibung. Um die Einbeziehung des Modus ohne Berücksichtigung der Groß- und Kleinschreibung zu steuern, wird ein modifizierter Satz von Dienstprogrammen angeboten e2fsprogs.

Von Gabriel Krisman Bertazi von Collabora erstellte und akzeptierte Patches siebte Versuche danach XNUMX Jahre Entwicklung und Beseitigung von Kommentaren. Die Implementierung ändert das Festplattenspeicherformat nicht und funktioniert ausschließlich auf der Ebene der Änderung der Namensvergleichslogik in der Funktion ext4_lookup() und des Ersetzens des Hashs in der dcache-Struktur (Directory Name Lookup Cache). Der Wert des „+F“-Attributs wird in den Inodes einzelner Verzeichnisse gespeichert und an alle verschachtelten Dateien und Unterverzeichnisse weitergegeben. Kodierungsinformationen werden im Superblock gespeichert.

Um Kollisionen mit den Namen vorhandener Dateien zu vermeiden, kann das Attribut „+F“ nur auf leere Verzeichnisse in Dateisystemen gesetzt werden, bei denen die Unicode-Unterstützung in Datei- und Verzeichnisnamen während der Mount-Phase aktiviert ist. Die Namen von Verzeichniseinträgen, für die das Attribut „+F“ aktiviert ist, werden automatisch in Kleinbuchstaben umgewandelt und in dieser Form in dcache wiedergegeben, aber auf der Festplatte in der ursprünglich vom Benutzer festgelegten Form gespeichert, d. h. Trotz der Verarbeitung von Namen unabhängig von der Groß-/Kleinschreibung werden die Namen angezeigt und gespeichert, ohne dass Informationen über die Groß-/Kleinschreibung von Zeichen verloren gehen (das System erlaubt Ihnen jedoch nicht, einen Dateinamen mit denselben Zeichen, aber in einer anderen Groß-/Kleinschreibung zu erstellen).

Source: opennet.ru

Kommentar hinzufügen