о файловой системе
Jan. 4th, 2006 07:15 pmНу хорошо. Может она, иерархическая файловая система то есть, действительно не нужна?
Все эти каталоги в каталогах. Широченное дерево, ползучее. Кто сказал, что именно так должно быть?
Вот в последнее время так популярно стало вместо иерархии делать метки. Вместо иерархического дерева закладок - del.icio.us, с тагами на каждом URLе. Вместо иерархического дерева фотоальбомов - Flickr с тагами на каждой картинке. И так далее.
Давайте скажем: нет никакой иерархической файловой системы. Есть файлы. У каждого файла есть набор меток. В некоторых случаях эти метки хранятся вместе с самим файлом, в некоторых - отражают то, где он хранится ("cd").
Если у файла есть метка "program", его можно запустить. Конфигурационные файлы помечены "config", а конфигурационные файлы системы имеют метки "config" и "system" одновременно. Плюс метку определённого пакета или модуля, в случае надобности.
Директорий нет. Вместо понятия текущей директории есть понятие текущего набора меток, который включает в себя те метки, что я хочу видеть, и, возможно, какие-то, которых не хочу (так файлы "system" будут скрыты от обычного пользователя). Вместо команд "dir" и "ls" есть команда, которая показывает все файлы, отвечающие текущему набору меток. Если у компьютера есть несколько пользователей, файлы каждого помечены меткой его username. Вместо команды "cd" есть команда, меняющая текущий набор меток. Графические программы для работы с файлами делают понятие текущего набора меток наглядным и легко изменяемым.
Гмм... что делать в ситуации, когда у двоих людей есть разные файлы с одинаковым именем? Скажем, что есть метки косметические, а есть существенные. Существенные метки являются частью идентичности файла; могут существовать два разных файла с одним именем, но разным набором существенных меток. Но если набор существенных меток одинаков и имя одно и то же, это один и тот же файл (у которого можно менять набор косметических меток) (update: возможно, косметические метки не нужны, пусть все будут существенные?).
"Копировать файл" означает клонировать его и изменить какую-нибудь существенную метку (или добавить). Например: я программист и у меня есть проект foo, в котором 100 файлов. Я хочу сделать новую копию всего проекта и работать над ней. Создаю новую существенную метку current и клонирую весь проект в неё. Аналогом переноса файла из одного каталога в другой теперь является изменение набора существенных меток (без клонирования). Записать набор файлов на USB-диск означает выделить нужный набор файлов и склонировать их с меткой usb.
Не будет работать? Слишком сложно? Слишком неинтуитивно?
Все эти каталоги в каталогах. Широченное дерево, ползучее. Кто сказал, что именно так должно быть?
Вот в последнее время так популярно стало вместо иерархии делать метки. Вместо иерархического дерева закладок - del.icio.us, с тагами на каждом URLе. Вместо иерархического дерева фотоальбомов - Flickr с тагами на каждой картинке. И так далее.
Давайте скажем: нет никакой иерархической файловой системы. Есть файлы. У каждого файла есть набор меток. В некоторых случаях эти метки хранятся вместе с самим файлом, в некоторых - отражают то, где он хранится ("cd").
Если у файла есть метка "program", его можно запустить. Конфигурационные файлы помечены "config", а конфигурационные файлы системы имеют метки "config" и "system" одновременно. Плюс метку определённого пакета или модуля, в случае надобности.
Директорий нет. Вместо понятия текущей директории есть понятие текущего набора меток, который включает в себя те метки, что я хочу видеть, и, возможно, какие-то, которых не хочу (так файлы "system" будут скрыты от обычного пользователя). Вместо команд "dir" и "ls" есть команда, которая показывает все файлы, отвечающие текущему набору меток. Если у компьютера есть несколько пользователей, файлы каждого помечены меткой его username. Вместо команды "cd" есть команда, меняющая текущий набор меток. Графические программы для работы с файлами делают понятие текущего набора меток наглядным и легко изменяемым.
Гмм... что делать в ситуации, когда у двоих людей есть разные файлы с одинаковым именем? Скажем, что есть метки косметические, а есть существенные. Существенные метки являются частью идентичности файла; могут существовать два разных файла с одним именем, но разным набором существенных меток. Но если набор существенных меток одинаков и имя одно и то же, это один и тот же файл (у которого можно менять набор косметических меток) (update: возможно, косметические метки не нужны, пусть все будут существенные?).
"Копировать файл" означает клонировать его и изменить какую-нибудь существенную метку (или добавить). Например: я программист и у меня есть проект foo, в котором 100 файлов. Я хочу сделать новую копию всего проекта и работать над ней. Создаю новую существенную метку current и клонирую весь проект в неё. Аналогом переноса файла из одного каталога в другой теперь является изменение набора существенных меток (без клонирования). Записать набор файлов на USB-диск означает выделить нужный набор файлов и склонировать их с меткой usb.
Не будет работать? Слишком сложно? Слишком неинтуитивно?
no subject
Date: 2006-01-04 05:19 pm (UTC)no subject
no subject
Date: 2006-01-04 05:23 pm (UTC)no subject
Date: 2006-01-04 05:25 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2006-01-04 05:25 pm (UTC)нынешняя техника и не такую плоскоту потянет.
иерархическая она ж ведь не только из-за порядка выбрана была, а ещё чтобы перебор сузить.
у меня на диске D: полмиллиона файлов.
Date: 2006-01-04 05:26 pm (UTC)Re: у меня на диске D: полмиллиона файлов.
Date: 2006-01-04 05:30 pm (UTC)Надо только придумать удобные команды, позволяющие узнать, какие есть "поблизости" интересные метки, чтобы их добавить/посмотреть. Не очень ясно, что значит "поблизости", надо подумать. Т.е. проблемы с миллионом файлов нет, а вот с десятком тысяч меток - может быть.
Re: у меня на диске D: полмиллиона файлов.
From:Re: у меня на диске D: полмиллиона файлов.
From:Имя файла
Date: 2006-01-04 05:27 pm (UTC)no subject
Date: 2006-01-04 05:27 pm (UTC)Ну, и прикрутить такое сверху любой файловой системы, прозрачно для пользователя, тоже, в общем, несложно, даже не меняя собственно принципов того, какова структура помещения битов на диск.
no subject
Date: 2006-01-04 05:34 pm (UTC)Прикрутить сверху файловой системы немудрено, ясно, что можно базу данных поставить и всё по ней искать с точки зрения GUI определённых приложений. Мне интересно вот что: можно ли вообще обойтись без иерархической файловой системы. Так чтобы всё было без неё, абсолютно, а не "на нижнем уровне" с ней для администраторов и разработчиков.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2006-01-04 05:27 pm (UTC)no subject
Date: 2006-01-04 05:36 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2006-01-04 05:27 pm (UTC)no subject
Date: 2006-01-04 05:32 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From: (Anonymous) - Date: 2006-01-04 06:04 pm (UTC) - Expand(no subject)
From:no subject
Date: 2006-01-04 05:33 pm (UTC)no subject
Date: 2006-01-04 05:33 pm (UTC)Конечно. Фигня все эти метки. Точнее не фигня, а мелкий полезный инструмент, типа этих жёлтых post-it наклеечек. но мы ведь не пишем всё на этих стикерах? Вот и метки не надо притягивать за уши ко всему подряд.
Концепцию файлов и папок человеку, не страдающему олигофренией, можно объяснить за 1 минуту. Никакого бэкграунда при этом не требуется, специальных знаний о компьютере тоже. А если он за минуту не понял, то он и как на клавиатуре работать, тоже не поймёт. Shift какой-то, ctrl. Мутотень.
no subject
Date: 2006-01-04 07:53 pm (UTC)(no subject)
From:no subject
Date: 2006-01-04 05:34 pm (UTC)часть меток будет генериться автоматически (полный путь, имя файла, расширение, атрибуты, теги из мп3-файлов итд)
в итоге каждый сможет пользоваться тем что ему удобнее; кто-то предпочтет скопировать файлы в другой каталог фаром (и при этом у новых файлов автоматически обновятся метки), кто-то будет делать то же самое но через какой-нибудь MS Tag Manager
а вообще идея с метками очень правильная - скажем, когда я запихиваю файл в свою коллекцию софта, каждый раз приходится решать в каком фолдере ему место; скажем плагины для Неро могут быть в multimedia\video\encoders, а могут быть и в hardware\cd\write\nero\plugins
в сличае с метками я просто вешаю обе метки и все ок (некий аналог shared files из VSS)
no subject
Date: 2006-01-04 05:37 pm (UTC)каждый раз приходится решать в каком фолдере ему место
вот-вот, схлопывание многие вопросы упрощает. Проблема разобраться в том, не слишком ли сильно иногда :)
(no subject)
From:no subject
Date: 2006-01-04 05:39 pm (UTC)no subject
Date: 2006-01-04 05:43 pm (UTC)иерархическая система - частный случай системы меток
(no subject)
From:no subject
Date: 2006-01-04 05:46 pm (UTC)Имя файла — такая же метка, как все остальные, только обязательная (есть у каждого файла). А может быть, и необязательная. В самом деле, почему? И зачем нужны (явные) существенные метки вообще?
no subject
Date: 2006-01-04 05:51 pm (UTC)Насчёт необязательности имени файла: да, тоже правильное замечание. Что тогда делать с расширениями? Они все естественным образом переходят в метки?
(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2006-01-04 05:47 pm (UTC)Sometimes hierarchical views are useful and you could support them by allowing user to create "on the fly" taxonomies of labels.
Oh, and the main method of file access should be google like text search that is smart (searches labels, then contents).
no subject
Date: 2006-01-04 11:54 pm (UTC)WinFS - ну что ж, я не надеялся, что что-то новое изобретаю :) но интересно будет на это посмотреть, конечно.
(no subject)
From:no subject
Date: 2006-01-04 05:50 pm (UTC)no subject
Date: 2006-01-04 05:56 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2006-01-04 05:56 pm (UTC)В системах управления контентом (aka ECM) это называется атрибутами :)
Проблема в том, что плоский набор атрибутов в определённый момент разрастается настолько, что становится неуправляемым. Кроме того, сама природа атрибутов зачастую требует внутренней логической организации. Например, структурной группировки (страна-город-улица-дом, объект-блок-запчасть), зачастую, вариативной (т.е. набор атрибутов в разных ветвях может отличаться). Дерево каталогов и есть пример такой иерархической группировки атрибутов. Так что ничего несуществующего ты не предлагаешь :)
С моей точки зрения, жизнеспособным является вариант, позволяющий атрибутировать файлы как плоско, так и иерархически. При этом у каждого физического файла может быть несколько вариантов координат в пространстве атрибутов. Но это в полуготовой форме тоже уже существует (см. hard links в юниксовых файловых системах). Контроль уникальности координат - задача отдельная, но тоже решаемая.
Самая существенная проблема, IMHO, в том, что разумный потребитель информации (aka человек :) сам склонен иерархически группировать свои знания о мире, так что плоская картина просто не соответствует его потребностям.
no subject
Date: 2006-01-04 06:06 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2006-01-04 06:04 pm (UTC)http://arstechnica.com/reviews/os/macosx-10.4.ars/ - пара страниц о metadata и extended attributes, очень хорошо
ну и http://www.nobius.org/~dbg/ "Practical File System Design with the Be File System"
no subject
Date: 2006-01-04 06:06 pm (UTC)no subject
Date: 2006-01-04 06:11 pm (UTC)Только не стоит путать внешнее и внутреннее представление данных. Не так уж важно как именно будут представлены файлы внутри (да хоть с помощью тех же UID, с поиском по внешним меткам или по тегам метаданных внутри самого файла), а снаружи, для пользователя они могут быть представлены как наборы ключевых слов, картинки и я-не-знаю-что еще
no subject
Date: 2006-01-04 06:22 pm (UTC)no subject
Date: 2006-01-05 06:28 am (UTC)no subject
Date: 2006-01-04 06:29 pm (UTC)Кроме иерархии, есть еще симлинки.
no subject
Date: 2006-01-04 06:31 pm (UTC)Реально нужно по-моему объявить не fopen, а system_fopen и user_fopen в первом открывается все, во втором принадлежащие данному пользователю. И все, никаких проблем.
А, ну да, конечно и по поиску в каталогах аналогичные изменения... Всех делов-то. Конечно нормальный нечеткий поиск в файлах - да - хорошо.
no subject
Date: 2006-01-04 06:35 pm (UTC)Введение тэгов, или аттрибутов - суть таже иерархия, но менее одназначная
Такая систематизация в конце концов выльется в проблему поиска нужного файла с гораздо большим количеством условий
no subject
Date: 2006-01-04 06:36 pm (UTC)Плюс к этому, существуют ещё решения для data warehousing (как правило так или иначе основанные на CAS и/или БД), а также решения для данных в развитии - от простой поддержки версий типа ClearCase, до многоуровневых решений класса ILM (Information Lifecycle Management), где информация в зависимости от её текущего состояния может храниться на том или ином носителе.
no subject
Date: 2006-01-04 06:40 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From: