Comments 62
Так что все еще сырое и в разработке, но все таки очень приятно знать, что в apple не только над новыми смайликами трудятся.
Надо отметить, что регистронезависимое сравнение, строго говоря, зависит от локали.
Например, в Турции: UPPER("windows") = "WİNDOWS"
, а не "WINDOWS"
, как в большей части света.
Очень занимательно посмотреть, какие символы считаются одинаковыми при регистронезависимом сравнении в MySQL: http://collation-charts.org/mysql60/mysql604.utf8_general_ci.european.html
file1.txt (l — мелкая L)
fiIe1.txt (I — заглавная i)
Пользователи присылают мне в ПО(робот) файлы по электронной почте. Файлы наименованы: OMSK.xls, Ufa.xls, Moscow.xls
Пользователи именуют файлы не обращая внимания на регистр. Т.е. сегодня может быть OMSK.XLS, завтра Omsk.xls, послезавтра omsk.xls
Может я неправ, конечно, но регистронезависимая ФС избавляет меня от операции приведения имен файлов к единому регистру и облегчает отладку\работу
В чем смысл регистрозависимой фс — не могу понять, ну честно. Только в том, что в именах файлов можно использовать camelStyle?
textFile1.txt и TextFile1.txt
В идеале то, как сделано в MacOX сейчас, как мне кажется
— представление файла (в его паспорте) — регистрозависимое, представление в фс — регистроНЕзависимое.
В итоге — пользователю легко именовать файлы так, как ему вздумается, и разработчику — легко их искать.
Примерно так:
bash-3.2$ cd
bash-3.2$ touch file1.txt
bash-3.2$ touch fiIe1.txt
bash-3.2$ touch fiLe1.txt
bash-3.2$ ls -l fi*.txt
-rw-r--r-- 1 alexandre staff 0 14 июн 17:40 fiIe1.txt
-rw-r--r-- 1 alexandre staff 0 14 июн 17:40 file1.txt
bash-3.2$ cat fiie1.txt
bash-3.2$ echo sample > fiie1.txt
bash-3.2$ cat fiie1.txt
sample
bash-3.2$ cat fiIe1.txt
sample
bash-3.2$ uname -a
Darwin MacBook-Pro.local 15.6.0 Darwin Kernel Version 15.6.0: Tue May 17 20:05:28 PDT 2016;
Регистрозависимый синтаксис в ЯП — однозначное благо, он защищает нормальных людей от говнокодеров, которые пишут кАк иМ НРавиТсЯ. Говорю как человек, довольно долго поддерживавший коммерческое ПО, написанное на паскале, у которого синтаксис регистронезависимый.
В симуляторе пофигу, а на айпаде регистрозависимость, хотя файловая система вроде одна.
Стало интересно, полез в управление разделами в маке
И там при форматировании был параметр регистрозависимость, по умолчанию выключен.
Скорей всего до сих пор так, только проверить не могу — на рабочем маке админские права не дают
На самом деле, это не NTFS регистронезависимая, это винда регистронезависимая по традиции. Если для винды сделать драйвер любой другой ФС — то ее тома будут вести себя точно так же. В противном случае существующие программы могут перестать работать, и это будет ошибкой.
PS FILE_FLAG_POSIX_SEMANTICS дает поведение "как в *NIX" — к примеру, можно создать два файла, отличающиеся только регистром символов.
Если я захочу так назвать свои файлы — то фс не должна мне мешать. (про целесообразность не будем рассуждать)
Моноширинный Шрифт
.% touch file1.txt
% touch fiIe1.txt
% touch fiLe1.txt
% ls -l fi*.txt
-rw-r--r-- 1 alex alex 0 июн 14 19:45 fiIe1.txt
-rw-r--r-- 1 alex alex 0 июн 14 19:45 fiLe1.txt
-rw-r--r-- 1 alex alex 0 июн 14 19:44 file1.txt
И проблема исчезла.
В основном регистронезависимые имена в файловый системах — это потеря производительность. Ведь если регистр учитывается, то можно просто сравнить байты, а если нет — сначала раскодировать символ(например Ć в unicode U+0106), потом сменить регистр(на ć), и только потом начинать сравнение. К слову, перекодировка нетривиальная задача. Причем это надо сделать 2 раза — для искомого и для всех «зарегистрированных» вариантов(существующих файлов, директорий, и т.д.) на пути. Кроме того тут присутствует не только чтение из памяти, но и запись в нее.
В итого это большой расход памяти, нагрузка на кэш процессора и на шину данных памяти. Если Вы посмотрите сколько сравнений приходится делать FS для того чтоб открыть file.txt, то сразу станет понятно что к чему.
Ну и есть, конечно, эстетический аспект. Я бы возмутился, если бы ко мне обращался человек как к NiAmStEr.
И есть у меня страшное подозрение, что регистрозависимость в никсах пошла из-за банальной экономии ресурсов (ведь так банально проще).
К тому же Android использует ext4 в 90% случаев. Если еще сюда добавить сетевое оборудование и т.д. — думаю что *nix в большинстве =).
Википедия позволяет быть ближе к реальности.
В документации написано, что это временное ограничение, которое может быть устранено в последующих версиях и/или в релизе APFS в 2017 году.
А так ждем, жаль только что реализации для Linux скорее всего не скоро увидим.
Насколько я знаю, у Btrfs проблемы со стабильностью, а ZFS ещё не до конца портировали на Linux, когда последний раз в этом ковырялся, оказалось проще переехать на LVM. А вот дополнительные возможности ZFS при работе с физическими носителями разного типа весьма полезны, тут полностью согласен.
Думаю, если не лицензия, то, скрорее всего из-за прожорливаости ZFS к ОЗУ, а на телефоне или айпаде памяти и так мало.
Возможно, это связано с тем, что они считают/пропагандируют что компьютер надо заменять целиком, а рабочие данные хранить в облаке.
Интересно, то есть дедупликация давно есть в Linux, скоро появится в MacOS и отсутствует только под Windows...
https://habrahabr.ru/company/microsoft/blog/158887/
Я её смотрел. Это какое-то странное решение, которое страшно даже для домашнего использования:
- дедупликация реализована не на уровне файловой системы, а на уровне приложения через File Streams;
- файлы распадаются на метаданные и данные;
- нет API для создания копии файла;
- нельзя грузиться с раздела, на котором настроена дедупликация;
- пенальти на производительность.
У меня сложилось впечатление, что данная фича в Windows сделана для галочки в рекламных буклетах.
Дедупликации на уровне файловой системы в Windows нет и, судя по всему, не планируется.
Работаю с репозиториями с которыми git работал некорректно из за регистронезависимой (по умолчанию) HFS+
Обхожу созданием дополнительного диска с HFS+ регистрозависимой файловой системой и храню оные git репозитории там.
Почему то содержимое git репозиториев на этом диске иногда портится.
В связи с чем: отличная новость, буду рад попробовать APFS для хранения регистрозависимых файлов.
ИМХО, бета версии, частые релизы, новые фичи два раза в год, поддержка свежих эмодзи — это не то, что Я хочу видеть от производителя драйвера файловой системы. Мне кажется, что в таких критических системах должна рекламироваться надёжность, производительность и отказоустойчивость.
Странно, что разработчики смирились с фактом «как не тестируй, какие-то ошибки в первое время будут всплывать». Поэтому сейчас эра бета-версий в самом разгаре.
Файловая система Apple File System (APFS)