Portál AbcLinuxu, 7. května 2025 07:36
To musí být implementační noční můra. Na světě je spousta abeced, koncept malých a velkých písmen existuje jenom někde atd.
No tak to je jako volba mezi blátem a louží. ASCII je English-only bullshit z 60. let, který by dnes bylo lepší nemít než mít. UTF-8 je sice super, ale je to právě to, čeho bych se fakt hodně bál. Kdyby mi někdo dal náhdoný znak z UTF-8 a já bych měl vyřešit otázku, zda existuje v malé a velké variantě (3 ne, a ano), předem bych to vzdal, protože bych samozřejmě dostal něco z gruzínské nebo arabské abecedy a netušil bych, o co jde.
Implementace v 5.2.0 je zlepšení, protože vámi proklínaný casefolding v ext4 existoval už před tím, ale fungoval jen na ASCII. Toto jádro ve skutečnosti podporu rozšířilo na NFD formu Unicodu 12.1 v UTF-8. Mimo jiné to otevírá možnost mít více programů v různém kódováním nad jedním souborovým systémem. Toto doteď nebylo možné, protože název souboru byl posloupnost bajtů. U nás už málokdo používá ISO-8859-2, ale v Korei nebo Japonsku je stále běžné, že aplikace používají EUC-KR nebo Shift JIS i na Linuxu. U nás je ten problém nejvíce vidět při sdílení souborového systému po síti mezi různými operačními systémy.
Osobně se domnívám, že časem přibude možnost odmítat názvy souborů mimo Unicode, protože představte si, co má chudák KDE aplikace zobrazit, když jí kernel vrátí nějaký binární bordel. Zobrazit se to nedá, zapsat se to nedá. Mít výpis adresáře, kde každý soubor se jmenuje „?????“ je matoucí. Naštěstí v drag-n-drop GUI lze s takovými soubory pracovat, i když nevidíme jejich název. Současný stav vyžaduje, aby každý program považoval název souboru za binární smetí. Což je ale přesný opak účelu názvu souboru co by jmenovky určené lidem k zobrazení. Programy by si vystačili s číslem i-uzlu.
protože bych samozřejmě dostal něco z gruzínské nebo arabské abecedy a netušil bych, o co jde.Tak zrovna u gruzínského písma (Mchedruli) je situace humorná, protože velká písmena sice teoreticky existují (Mtavruli, Unicode block Georgian Extended) a Unicode v rámci výchozího case conversion do nich běžná písmena konvertuje, nicméně je to dost ahistorická záležitost, vymyslel to nějakej jednotlivec někdy ~150 let zpátky a reálně se to nikdy moc nepoužívalo (pokud vim). A navíc jsou to stejně víceméně jen zvětšeninky běžného písma (tj. stejný tvar, akorát trochu větší). Gruzínci zcela běžně i oficiálně používají písmo bez rozlišení velkých/malých písmen a Mtavruli jim je zcela u zadku. Navíc reálně Mtavruli naprostá většina fontů vůbec neobsahuje, a to se týká i fontů, které jinak obsahují třeba i Hlaholici, písma eskymáků a kdovíco všechno... Nicméně tyhle problémy tě vlastně u filesystému až tak nemusí trápit, protože AFAIK tam ti stačí case folding, nepotřebuješ case conversion.
Foo
a pak se snaží otevřít soubor foo
. Samba tohle řešila v userspace, ale to znamená, že když někdo chce soubor, tak se musí vylistovat celý adresář (a pro každou položku porovnat jestli odpovídá nějaké case variantě požadavku), což trvá. Zatímco když je to v kernelu/na úrovni FS, tak je to rychlejší.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.