Ted Ts'o, der Autor der Dateisysteme ext2/ext3/ext4, ist in den Linux-next-Branch aufgenommen worden, auf dessen Grundlage die Kernel-Version 5.2 erstellt wird, ein Set , das die Unterstützung für groß- und kleinschreibungsunabhängige Operationen im Dateisystem Ext4 implementiert. Die Patches fügen auch die Unterstützung von UTF-8-Zeichen in Dateinamen hinzu.
Der Modus ohne Berücksichtigung der Groß- und Kleinschreibung kann optional für bestimmte Verzeichnisse durch das neue Attribut „+F“ (EXT4_CASEFOLD_FL) aktiviert werden. Wenn dieses Attribut für ein Verzeichnis gesetzt wird, erfolgen alle Datei- und Unterverzeichnisoperationen darin ohne Berücksichtigung der Groß- und Kleinschreibung; dabei wird die Groß- und Kleinschreibung beispielsweise bei Such- und Öffnungsoperationen ignoriert (dateien wie Test.txt, test.txt und test.TXT werden in solchen Verzeichnissen als identisch betrachtet). Standardmäßig bleibt das FS, mit Ausnahme von Verzeichnissen mit dem Attribut „+F“, groß- und kleinschreibungsempfindlich. Zur Verwaltung der Aktivierung des groß- und kleinschreibungsunabhängigen Modus wird ein modifiziertes Set von Dienstprogrammen vorgeschlagen. .
Die Patches wurden von Gabriel Krisman Bertazi, einem Mitarbeiter der Firma Collabora, vorbereitet und nach Versuch nach Entwicklung und Behebung von Anmerkungen angenommen. Die Implementierung bringt keine Änderungen am Festplattenspeicherformat mit sich und funktioniert ausschließlich auf der Ebene der Änderung der Logik zum Vergleich von Namen in der Funktion ext4_lookup() und der Ersetzung des Hashs in der Struktur dcache (Directory Name Lookup Cache). Der Wert des Attributs „+F“ wird innerhalb der Inodes einzelner Verzeichnisse gespeichert und erstreckt sich auf alle enthaltenen Dateien und Unterverzeichnisse. Informationen zur Kodierung werden im Superblock gespeichert.
Um Kollisionen mit Namen vorhandener Dateien zu vermeiden, kann das Attribut „+F“ nur für leere Verzeichnisse in Dateisystemen gesetzt werden, in denen während der Montage die Unterstützung von Unicode in Dateinamen und Verzeichnisnamen aktiviert ist. Die Namen der Verzeichniselemente, für die das Attribut „+F“ aktiviert ist, werden automatisch in Kleinbuchstaben umgewandelt und so im dcache angezeigt, bleiben jedoch auf der Festplatte im vom Benutzer ursprünglich festgelegten Format gespeichert, d.h. trotz der Verarbeitung der Namen unabhängig von der Groß- und Kleinschreibung werden sie angezeigt und gespeichert, ohne Informationen über die Groß- und Kleinschreibung der Zeichen zu verlieren (aber das System erlaubt nicht, einen Dateinamen mit denselben Zeichen, jedoch in einer anderen Groß- und Kleinschreibung zu erstellen).
Quelle: opennet.ru
