Re^2:

From
Boris Rudakov (2:5054/9.4)
To
Vasily Krysin ()
Date
2003-10-05T21:35:46Z
Area
PERM.UNIX
Hello Vasily!

05 окт 03 14:42, you wrote to me:

 VK> hi, Boris

 VK> 05 Oct 03 02:03, you wrote to Eugene M. Zheganin:

 VK> [...]

 EZ>>> Угу. Они везде более-менее одинаковые. Или ты думаешь, что если
 EZ>>> бы в какой-то открытой системе были нормальные rw-дрова, то они
 EZ>>> тут же автоматом не оказались бы в остальных ? 8))
 BR>> Нет конечно, я так не думаю :):):)

 VK> Почему? Такие технологии нередко перетекают из
 VK> одной открытой системы в другую. Может и не
 VK> напрямую, но на уровне структур и методов - легко.

Ты меня не понял - я как-раз думаю что моментом перетащат :)

 BR>> Кста, а у Руссиновича егонные NTFS-DOS дрова нормальные или тоже
 BR>> из серии "хорошо что хоть что-то" ?
 VK> Вроде нормально работают. И р и в. Хотя я работал
 VK> тока с нтфс4 - про пятую ничего не скажу.
 BR>> Если нормальные, то то что он ими делиться не спешит - весьма
 BR>> показательно...

 VK> Да скорей всего папа Билли просто запретил и все.
 VK> А в обмен выдал некие дополнительные данные, чтобы
 VK> оно работало постабильнее.

Возможно. Но я думаю что вопрос скорее всего лежит в коммерческой плоскости.

 BR>> Кста, связанный вопрос (все никак не соберусь сгенерить и
 BR>> подмонтировать раздел чтобы посмотреть, потому спрошу): как юниксы
 BR>> разруливают коллизии с большими/маленькими буквами на фат-разделах
 BR>> ?
 VK> А какие, собственно, коллизии? Просто два одинаковых
 VK> имени немогут существовать в одном каталоге и все тут.
 VK> То есть при сравнении используется strcasecmp.

Да, но тот юниксоидный софт, который рассчитан на то что ФС регистрозависима, на таких разделах работать не сможет. Вот в чем фигня...

 BR>> Приводят все к lowercase ?
 VK> Скорей к upper. Ибо fat хранит свои 8.3 именно в
 VK> верхнем регистре.

Одно дело - хранить и другое - выдавать наружу. Я бы на уровне интерфейса дров наружу выдавал меокие буквы и только при физической записи транслировал бы их в большие. Не просто удобнее и привычнее когда буквы мелкие, а еще и софт на это жестко рассчитан. Те же компайлеры желают чтобы расширения были .c, .cpp, .h и ты пы, а отнюдь не .C, .CPP и иже...

 BR>> Я бы так поступил, но вот чего делают с длинными именами ?
 VK> Так и немогу понять - в чем собственно проблема-то?

В том, что если волюнтаристскими действиями драйвера не менять регистр, то в результате работы маздая файл может быть переименован так, что с точки зрения регистро-независимого маздая имя не изменится, а регистро-зависимый юниксоидный софт файл потеряет.

 BR>> Они-то case-preserve и на разделяемых с маздаями разделах херня
 BR>> может выйти... Чего делают ?
 VK> Да как чего? Совершенно то же самое, что и винда например.

Позволю себе заметить, что Винда НЕ ДЕЛАЕТ НИЧЕГО. Она - только лишь case-preserve. Поиск имени осуществляется с игнорирование регистра, но при создании имени регистр символов сохраняется. Так же подчеркну что это верно для маздая и DOS,OS/2,Win32 подсистем НТи. Само ядро НТи - регистро-зависимо, хотя все функции парсинга системных имен имеют регистро-независимый режим, а POSIX подсистема - регистро-зависима.

 VK> Ну типа круто и все такое. Хотя я даже незнаю -
 VK> преимущество это, или недостаток. Так просто - фича.

Это сделано чтобы можно было реализовывать ОС с регистро-зависимым файловым API. Что при изготовлении POSIX подсистемы и заюзано :)

Потому-то мне и интересно как работают юниксоидные дрова, в условиях когда весь софт регистро-зависим, а рассматриваемая ФС - нет...

 BR>> Я недавно вочию это узрел, когда у меня в одном каталоге создались
 BR>> файлы

 BR>>    bla-bla-bla.H
 BR>> и
 BR>>    bla-bla-bla.h

 VK> Хе-хе ;) Это еще нахрена? Расширения закончились? ;)

Да, блин, просто глюк получился :)

Не знаю уж почему, но при распаковке архива одной софтинки, у нужного файла оказалось расширение ".H". ХЗ кто это так постарался. А скрипт, который этот файл должен был перегенерить, сгенерил новый файл с расширением ".h". Другой файл. И оба оказались рядом :)

А компиллял я cc=cl. Он - Win32. И хватал перый попавшийся файл. С ".H" который. Я "долго думал" - вроде все перегенерил, а инклуд - старый. Как так ?! Наверное минуты две прошло, пока я не просек что Фар тоже два файла показывает. А при попытке посмотреть оба - все время одно и то же содержимое кажет, хотя размеры - разные. "Аххха...!" - догадался Штирлиц...

Забавно вышло :)

В общем, при одновременной работе двух ОС на стыке постоянно казусы возникают. Подумать - так все логично и правильно происходит, но каждый раз очень неожиданно :) С НТФС уже второй раз ловлюсь - сначала на точке в конце имени, теперь вот - на регистре. Интересно, на чем Интерикс меня в следующий раз подловит ? :):):):)

 VK> peace!
 VK> SeaD [deep.perm.ru]


Boris Rudakov,               Тостуемый пьет до дна !
BBR

--- Be happy: BBR is looking at you !
 * Origin: АлкАголь малыми дозами безвреден в любых количествах (2:5054/9.4)