В дебрях каталогов, или Какой будет файловая система будущего

Комментарии: 6

Что важнее: предмет или его название? А как вы относитесь к утверждению "как вы судно назовете, так оно и поплывет"? Ответ кажется очевидным, но не стоит торопиться с выводами. Если оставить мистические соображения колдунам, то выходит, что имя не имеет большого значения в жизни. Впрочем, иногда эта невинная последовательность символов, ярлык по сути, становится критически важным элементом.


My name is…

Множество произведений научно-фантастической литературы и кинематографа было посвящено теме порабощения человека машиной. На самом деле мы по собственной воле постепенно превращаемся в рабов своих "железных слуг". И справедливости ради необходимо отметить, что компьютерам не пришлось прилагать для этого слишком больших усилий.

В течение двух десятилетий мы привыкали структурировать собранную информацию согласно правилам именования каталогов и файлов. Пользователи ПК давно научились втискивать все сведения о документе в заветные 8 символов, избегать использования "непечатных" знаков, сравнивать каталоги, искать по шаблону. Но, даже не вдаваясь в частности, можно смело сказать, что большинство нынешних файловых систем никуда не годятся. Критерием служит тот факт, что разработчики буквально каждого приложения вынуждены изобретать свой, оригинальный способ упорядочения информации. По мнению же Ганса Райзера (Hans Reiser), появление дополнительного слоя над файловой системой ОС однозначно свидетельствует о неудачной ее конструкции. Причина — в пассивности нового поколения программистов. Как писал Ганс, однажды ему пришлось стать свидетелем перепалки между сотрудниками одной софтверной корпорации — разработчиками приложений и разработчиками файловой системы. Последние аргументировали нежелание усовершенствовать убогий плод труда своего в крайне циничной форме. Они заявили, что винчестеры нынче дешевые, требуемая от них поддержка малых объектов на самом деле не имеет большого значения, да и формат диска не менялся уже 10 лет, поэтому в данный момент никто не собирается его перерабатывать.

Может, кто-то и согласен с таким видением проблемы, но только не Райзер — основатель компании NameSys, идеолог знаменитой ReiserFS (где FS — сокращение от File System), www.namesys.com/content_table.html. "Полезность подсистемы увеличивается пропорционально количеству других подсистем, с которыми она может взаимодействовать", — гласит "Системная научная гипотеза # 1" Ганса Райзера.

Объект критики — фрагментированность пространства имен в современных ОС. Сегодня пользователь вынужден не только владеть ключами для поиска необходимого документа, но и знать правила, по которым эти ключи сочетаются, — синтаксис запроса. Путешествие в глубь иерархической структуры, разделенной на отдельные царства-государства, где законы составления имен радикально различаются, отнимает немало времени и сил. А ведь ценность документа находится в прямой зависимости от эффективности средств доступа к нему и, следовательно, способа адресации. Помимо всего, унификация пространства имен станет базисом для интеграции приложений на новом уровне.

Высекать, а не лепить

Ганс Райзер не только ропщет, но и предлагает решение проблемы в своей
статье "Future
Vision"
. Новая система именования, призванная освободить нас от "гнета"
Unix-подобной файловой системы, является неким гибридом традиционного иерархического
подхода и методики ключевых слов. Склонность Райзера к сложным структурам выдают
некоторые предложения в его статье, иногда состоящие более чем из 60 слов. Впрочем,
архитектуру своего проекта он старается сохранять максимально простой. Девиз разработки
— "система имен должна отражать, а не формировать структуру", а цель
— объединить в едином адресном пространстве все виды данных, сделать их более
доступными как для пользователя, так и для приложений. Очевидную привлекательность
идеи подчеркивает то, что знания, по определению, являются плодом ассоциаций,
логических связей между понятиями. Введя же однородное пространство имен, мы привнесем
в разрозненную массу файлов некоторый смысл.

В основу своей концепции Райзер положил ключевые слова. Получается нечто вроде длинного имени файла, построенного по определенным семантическим правилам, но не являющегося, конечно, единственным способом идентификации объекта. Ключевые слова представляют собой неупорядоченный набор терминов, характеризующих содержимое объекта. Пример жизнеспособности такой методики дают нам поисковые службы в Internet, отлично справляющиеся с гетерогенной средой WWW. Райзер приводит и конкретный пример с воображаемыми системами REGRES и ANARCHY. Первая способна принять 15 ключевых слов, вторая — только 10. Но если REGRES требует, чтобы каждое из них было на "своем месте", т. е. относилось к определенной графе, то ANARCHY хранит все ключевые слова вместе. Так вот, во втором случае, несмотря на меньшее количество поисковых терминов, вероятность найти документ с помощью набора произвольных ключевых слов на порядок выше.

Доказывая преимущество своего подхода, Райзер не отказывается и от некоторых элементов иерархии. Определенную дисциплину привносят операции группировки и упорядочения. Группа — это набор ключевых слов, представляющих множество взаимосвязанных терминов. Вот хороший пример группирования, подтверждающий необходимость определенного упорядочения: "[обезьяна теория Дарвина банан дерево лазить живет Африка]". Искомый документ появится в результатах после запроса как "[обезьяна теория банан дерево лазить]", так и "[Африка Дарвина]". Поэтому, если речь идет о роли обезьяны в теории Дарвина, более корректно было бы связать вместе такие понятия: "[[теория --> Дарвина] обезьяна [лазить --> дерево] [живет --> Африка]]".

Иерархия позволяет не только указать на ассоциации, но и на принадлежность понятия к определенному классу, что потребует применения к нему других правил обработки. Связи от старшего к младшему в последнем случае играют роль некоего "водораздела", позволяющего отделить сообщения электронной почты от видео, текстовые файлы от рисунков, общедоступные документы от защищенных.

Объекты в иерархии выполняют еще одну роль, которая заключается в том, что каталоги-фильтры и каталоги-модули предоставляют услуги обработки информации. Вообще излюбленный прием Райзера — проведение параллелей между парой связанных терминов и вызовом функции в языке программирования (первое ключевое слово является именем функции, а второе — передаваемым ей аргументом). Например, документ, "отправленный" в каталог "[архивация]", будет автоматически упакован встроенным (plug-in) в систему модулем. Программные фильтры также помогут приложениям найти "общий язык", даже если их внутренние форматы хранения данных существенно различаются. И наконец, поиск в иерархической структуре, хотя и сложен, но эффективен, а поддержка подобного "архаизма" позволит сохранить совместимость с традиционными файловыми системами, что чрезвычайно важно.


Мелочи решают все

В реальности с именованием и поиском объектов далеко не все ясно. Как говорится,
гладко было на бумаге, а на практике придется столкнуться с чисто человеческим
разгильдяйством при выборе имен, группировке и упорядочении объектов. Ранее мы
отдавали инициативу в этом вопросе машине, что оборачивалось головной болью чуть
позднее, при попытке отыскать сохраненную кем-то информацию. Теперь все в наших
руках, но спокойнее от этого не становится. Кто поручится, что сотрудник, ответственный
за учет автотранспорта предприятия, не забудет сгруппировать термины так, как
это сделано здесь: "Тойота [гарантийный ремонт карданный вал] [цвет морская
волна]"? Иначе попытка отыскать информацию о гарантийном ремонте карданного
вала будет бесплодной. Если же позволить системе произвольно выполнять разборку
иерархических структур, это приведет к настоящему хаосу, потому что на запрос
"[девятый вал морская волна]" мы получим документ о поломке карданного
вала у "Тойоты", а на запрос о кардане — набор морских легенд.

Как видно из вышеописанного примера, отсутствие структуры не всегда есть благо. Еще раз подчеркнем, Райзер не отказывается от утверждения, что для компьютера поиск по иерархической структуре более эффективен и быстр, нежели перебор всех подходящих объектов в попытке "объять необъятное". И все же он не собирается изменять своим принципам: "Можно помочь пользователю избежать неверных структур, но не следует принуждать его". Исследователь видит интерфейс будущего интерактивным и гибким. Если человек вводит запрос "Тойота" и оказывается, что число документов, ему соответствующих, больше единицы, то система обязана предложить ему выбор между машинами различных модификаций и цветов. Структура информации должна открываться пользователю постепенно, не требуя от него изучения пухлых руководств и разветвленных файлов помощи, а также размышлений над категориями и полями, к которым, возможно, относятся его поисковые термины, над системой хранения данных, назначением подкаталогов, фильтров и дисков.

Не менее важен вопрос выбора имени файла. В случае системы, основанной на ключевых словах, название должно однозначно классифицировать его содержимое. Но как подобрать короткий и емкий набор терминов? Конечно, можно попытаться сделать это вручную, ведь именно так мы именуем сегодня документы. Увы, здесь нас поджидает коварная лингвистическая ловушка: "выборка, корректно раскрывающая смысл текста, не является оптимальным представлением для проведения поиска на основании знания лишь некоторых его (текста) фрагментов". Человеку свойственно давать имена, несущие смысловую нагрузку, что отнюдь не облегчает участи пользователя.

В 1984 и 1985 гг. две группы исследователей (J. M. Smith, D. C. Smith и Potter, Walter, Robert P. Trueblood) опубликовали материалы, являющиеся основой того, что сегодня называют гиперсемантической системой (hypersemantic system). В ней каждое понятие "раскладывается" в набор полей-элементов, характеризующих главные его составляющие. Получается нечто вроде универсальной лингвистической "системы координат". Звучит заманчиво, но пока никто еще не сумел определить полный набор координат для такого пространства. Вышеупомянутые ученые попробовали использовать вариант разложения:

"является" (is-a)
"имеет свойство" (has-property)
"представляет собой" (is-an-instance-of)
"принадлежит множеству" (is-a-member-of)

Точные названия этих четырех "векторов": обобщение, объединение, классификация и принадлежность/членство. Очевидно, они не исчерпывают всех возможных ситуаций. Например, с их помощью очень сложно однозначно определить такое понятие, как водитель "Тойоты".

И все же некоторые специалисты свято верят в реальность конструирования общей
системы отсчета. Среди них Рич Килмер (Rich Kilmer), основатель компании Roku
Technologies, занимавшийся разработкой системы менеджмента гетерогенного контента
Roku Platform.
Информация в систему поступает из различных источников, упорядочивается, классифицируется,
а затем избирательно рассылается клиентам в зависимости от типа приемного терминала
и опций подписки. Компания разорилась, однако идеи ее живут. Килмер предлагает
в качестве координат набор полей:

"Кто" (люди, организации и т. д.)
"Что" (документы, Web-страницы, файлы)
"Когда" (календарные элементы)
"Где" (адресные книги, избранные ссылки)
"Почему" (действия, проекты, задачи, цели)
"Как" (ресурсы, оборудование, ПО, интерфейсы и т. д.)

Универсальность такого выбора системы координат весьма сомнительна, а в целом можно сделать вывод: гиперсемантический метод плох уже тем, что он требует от пользователя формализации запросов согласно некоей, не всегда очевидной, логике. Два описанных выше несовместимых базиса только подтверждают данный факт.


У них есть Plan

Да еще какой! Гениально простой и оригинальный Plan под номером 9. И предложили
его еще в 1992 г. исследователи из Bell Labs. Работая над этой операционной системой,
они воплотили в жизнь лозунг: "Мы говорим — операционная система, подразумеваем
— файловая система, говорим — файловая система…".

Разработка Bell Labs не исчерпывает темы единого пространства имен, но демонстрирует потенциальные возможности, которые раскроются перед нами в "конце пути". Была реализована лишь вторая часть концепции, изложенной Райзером, а именно — файловая система как единая среда коммуникаций. Основная идея заключается в использовании стандартных файловых структур для реализации программных интерфейсов. Аналогичные механизмы существовали даже в DOS, где некоторые устройства (модем, принтер, клавиатура) представлены в системе стандартными файлами (COM:, PRN:, CON:).

Идеологи Bell Labs пошли значительно дальше — любые сервисы, любые устройства,
подключенные к системе, являются обычными каталогами и файлами, например /dev/mouse,
/dev/screen, /dev/cons. Каждый запущенный процесс тоже не более чем каталог (/proc/new),
наполненный файлами-объектами, символизирующими различные его аспекты. Так, доступ
к виртуальной памяти процесса осуществляется посредством записи и чтения из файла
/proc/new/mem, а завершить его можно выполнением операции write "kill’ в
файл управляющего интерфейса /proc/new/ctl. Более того, при запуске каждый процесс
получает в свое распоряжение все устройства и сервисы операционной системы. Делается
это путем копирования в главный каталог процесса файловой структуры соответствующей
службы. К примеру, оконная система, называющаяся 81/2 , в Plan 9 представлена
каталогом /dev/cons, поэтому после инициализации поддержки оконной графики для
процесса new будет создан каталог /proc/new/dev/cons.

Простая в общем-то концепция дает много интересных и неожиданных эффектов. Локальные особенности нивелируются глобальными правилами. Любая программа-сценарий, запущенная в любой среде, независимо от архитектуры конкретной машины, может быть уверена, что доступ к оконному интерфейсу располагается в /dev/cons, к мышке — в /dev/mouse, а состояние виртуальной памяти отражает файл mem. Еще проще оказывается менеджмент нескольких версий инструментальных библиотек. Процесс, столь мучительный для пользователей Windows, реализуется одной командой — bind, позволяющей заменить отдельную ветвь дерева каталогов на другую.

Столь же легок доступ и к удаленным ресурсам. Если сетевой компьютер поддерживает протокол запросов к файлам 9P (кстати, очень простой — всего 17 команд), то другая система под управлением Plan 9 сумеет не только напрямую поработать с его винчестером или принтером, но и воспользоваться его стеком сетевых протоколов. Любой ресурс, представленный в виде иерархической структуры каталогов в формате этой ОС, присоединяется к файловой системе вашего компьютера командой import. Например, команда "import URAN /proc’ позволит манипулировать процессами на удаленной машине URAN, запускать там новые приложения, обмениваться с ними данными и даже контролировать содержимое их виртуальной памяти. А так как сетевой интерфейс также является файлом, то и подключиться к нему можно командой "import URAN /net’, а затем уже работать с файлами конкретных протоколов (например, "/net/tcp’, "/net/udp/’) так, словно они расположены в локальной системе.

Plan 9 — своеобразный манифест, призванный доказать на практике справедливость основной идеи авторов этой уникальной ОС. Высказана она была в статье "The Hideous Name", смысл ее ясен и очевиден: различная семантика — это не повод для использования различного синтаксиса. По их мнению, фрагментирование пространства имен не оправдывается специфическими требованиями приложений. Однако, к сожалению, созданная операционная система не может служить подлинным образцом реализации концепции единого пространства имен. Многие вещи не удалось довести до логического конца. Так, операции создания процесса и управления разделенными (shared) фрагментами памяти основываются исключительно на вызовах системных процедур. В иерархическое пространство имен не вписались и разнообразные сетевые схемы адресации.

Впрочем, помимо Bell Labs, существуют и другие коллективы, которые, действуя различными способами и преследуя различные цели, смогли приблизиться к заветной мечте Ганса Райзера. Удивителен пример OS/400 — коммерческой системы-долгожителя. Ее пользователям есть чем гордиться: их операционная система — одна из немногих обладательниц практически завершенного унифицированного пространства имен.

И все-таки, а в чем основная выгода от внедрения контекстно-ориентированного, унифицированного пространства имен? Ведь сложность его конструирования и внедрения трудно переоценить. Ганс Райзер видит преимущество в росте количества взаимодействующих модулей в операционной системе и обеспечении потенциальной возможности взаимодействия даже в тех случаях, когда сейчас в нем пока нет необходимости. Стимулирование спроса через предложение. С этим нельзя не согласиться. Однако кажется, что существуют последствия и более глобального порядка.

С наступлением XXI века дебаты на тему искусственного интеллекта обрели особую остроту. Как доказали первые относительно успешные опыты с программой "Эвриско", один из возможных способов научить машину рассуждать лежит в установлении ассоциативных связей между различными понятиями. В конце концов, слово обретает смысл только в контексте. Принцип функционирования файловых систем и поисковых служб (Google) нового поколения, ориентирующихся в первую очередь на представления человека об информации и ее значении и пытающихся в некотором смысле перенять человеческий образ мышления, чрезвычайно схож с процессом обучения программ, основанных на эвристиках. Мы мечтаем о пришествии думающих машин или роботов, о революции, которая изменит мир в одночасье. Но будущее не лежит по ту сторону радуги, оно рядом с нами, надо только заглянуть за угол…

  • Guest

    Интересная, но, IMHO, несколько сумбурная компиляция на тему файловых систем, data mining, явных параллелей с UNIX (упомянута почему-то DOS) по части файлов-устройств (в последних ядрах Linux такой механизм уже очень неплохо развит, о других ‘NIX’ах не скажу — не знаю). На мой взгляд, многие из идей, упомянутых в статье, являются либо частично отработанным материалом, либо несбыточными в ближайшие лет двадцать мечтами (семантическая обработка информации, data mining в нынешнем состоянии — игрушка, не более, несмотря на шумиху).

    Цитаты авторитетов, по поводу — наличие дополнительных уровней при реализации файловой системы — косвенный признак ее убогости вызывают некоторое недоумение, потому что некоторые фирмы да и универы ведут активные разработки многоуровневых файловых систем типа «хранилище — представление», где представление информации минимально зависит от способа хранения, при этом появляются неплохие возможности представления одной и той же информации различными способами, что решает проблему несовместимости различных файловых систем. МОЖЕТ ЦИТАТЫ УСТАРЕЛИ, либо фирмы сбрасывают публике отработанный материал??? Ваше мнение? Странно все это выглядит…

    • Moderator

      Комментарии к статье [url="http://itc.ua/8690"]В дебрях каталогов, или Какой будет файловая система будущего[/url]

    • Guest

      Интересный, но несколько сумбурный комментарий. Отвечу на все по пунктам.

      1) DOS упомянута как наиболее распространенная операционная система для ПК в которой была наглядно реализована упомянутая концепция «устройство-файл». Моя задача заключается не в установлении исторической правды, а в доведении концепций и теории до сознания как можно более широкого круга читателей.

      2) Файл-устройство — лишь частный элемент, так же как data mining и прочие вещи связанные с обработкой контента. Идея — в создании всеобъемлющей иерархии-структуры, все прочее смысла не имеет в данном контексте. Отсюда ответ на недоумение по поводу специализированных систем:

      3) Обычно читатели упрекают меня в отсутствии ссылки на тот или иной ресурс. Теперь мой черед: приведите ссылки на конкретные разработки файловых систем от университетов или фирм типа «хранилище-представление». Я с удовольствие почитаю, поскольку, конечно, за ограниченый срок подготовки материала не смог познакомиться со всеми примерами подобных технологий.

      Судя по описанию, это смахивает на решение проблемы с другого конца. На самом деле, сейчас все так и делают. Часто большие офисные пакеты и пакеты коллективной работы имеют собственную систему менеджмента документов, проблема в том, что это делается на «надсистемном» уровне. Еще никто не сумел изолировать пользователя от взаимодействия с ОС, следовательно, рано или поздно он сталкивается с несовершенной файловой системой и ее ограничениями. Простейший перенос файлов и загрузка новых из Internet приводит к нарушению гармонии. И разнообразие представлений при отсутствии универсального не способствуют интеграции приложений на новом уровне. Сохраняется высокая потребность в «ручном» менеджменте.

      Если же вы говорите о таких вещах как корпоративные системы data mining, то сама тематика статьи подразумевает создание именно файловой системы, а не искусственной надстройки над ней. Более того, есть технологии вроде OceanStore (я уже писал о ней ранее), однако они при ближайшем рассмотрении не решают проблемы «сквозной индексации всей иерархии данных».

      4) То, что описанные технологии невозможно использовать прямо сейчас на каждом ПК, это достаточно очевидный факт. Тем не менее, я каждый день пользуюсь семантической системой классификации документов под названием Google. И знаете, что самое удивительное? Работает! В то время, как десятки других компаний твердили, что такое невозможно. И я не отказался бы интегрировать механизм Google в мою домашнюю Windows 98, даже если бы сотня противников Microsoft маршировала под моими окнами с плакатами и песнями.

    • Guest

      Что комментарий сумбурный — согласен (поздно было) :)

      Ссылки по теме:
      строка поиска в том же GOOGLE:
      file system storage representation model

      Найдете множество материала. Более точных ссылок привести сразу не могу — надо делать серьезный поиск; нет времени, к сожалению…

      PS. А статья все-таки ничего, побольше бы в КО таких обзорных материалов по программным и информационным технологиям.

    • Guest

      Удивительно что об этом писал не Андрей Зубинский …

    • Guest

      Мужик, я в натуре не понял, а чего сказать то хотел ???

      Почти шутка …

      Если DataMining от FS захотелось ,
      так Oracle давно предлагал заменить FS своей дата базиной и все чики пики (только народ не повелся)….
      Ну ни кто не будет заниматся разработкой классификаторов поддержкой, семантического словаря — только ради того чтобы документы в ворде клепать …

      А кому надо тот и сейчас запросто может себе устроить это безобразие (если денег и жизни хватит) …

Новости партнеров