Case-insensitive filesystem lookups
Case-insensitive filesystem lookups
Posted May 25, 2018 8:50 UTC (Fri) by MarcB (subscriber, #101804)In reply to: Case-insensitive filesystem lookups by EdwardConnolly
Parent article: Case-insensitive filesystem lookups
One pretty glaring issue is, that native Linux filesystems do not use any defined character set for file names, i.e. file names are essentially binary keys without any semantics (with the exception of the 0-Byte and the ASCII-encoding of /). So technically, the notion of "case" does not even exist in Linux filesystems. Also, Linux filesystems do not "support Unicode", they merely tolerate it (as long as the uses Unicode encoding does not produce 0-Bytes). This allows you to do horrible things, like creating files with identical names (after decoding) but different encoded representations.
Now, in practise you can ignore this, if you can enforce that all file name operations must go through some layer that enforces sanity - like the Samba server, or the mentioned "wrapfs" or some higher level API. But as soon as applications can do direct syscalls, things get weird again.
So, the first problem is defining what case even means. After that is solved, you are faced with the complexity, that "saffroy" explains.
