LINUX.ORG.RU
решено ФорумTalks

ФС на тегах

 , ,


0

2

Не помню где(может на lor) пролетало выражение, мол мы используем файловые системы построенные на теоретических наработках 40-летлей давности и никто не хочет это менять. Видимо всех все устраивает, т.к. ФС на базе тегов пока нет(не считая userspace наработок над fuse).

Пример ФС на базе тегов:

  • Плоская ФС. Только файлы, никаких каталогов и дерева каталогов.
  • Фактически у файла есть три атрибута: имя, inode, облако тегов;
  • Облако тегов может состоять из любого числа тегов в том числе вложенных;
  • Теги доступа: Владелец; группа; rwx; Переменная $PATH пропадет за ненадобностью;
  • Тег типа. По аналогии с mime;
  • Теги времени: Создание/Модификация/Последний доступ к файлу;
  • Теги ПМ: Имя пакета; Версия; Дата установки. Первый реальный юзкейс - установка нескольких версий ПО с возможностью выбора произвольной через указания тега версии(например через переменные окружения);
  • Теги системы инициализации. Специально для адептов Поттеринга с их ln -s /dev/null ...
  • Теги «временных файлов» - которые удаляются при входе/выходе пользователя;
  • Теги предыдущих версий. По аналогии с версиями ПО, файл копируется и получает тег бекапа с датой создания и комментарием(если необходимо).
  • Место вкладок и закладок в ФМ займут сохраненные наборы тегов;

Да, за этим делом надо будет следить(объединять похожие теги и чистить мусор), но идея имеет место на жизнь.

P.S. А вообще мне древовидной fs хватает с головой. Просто интересно, почему такую очевидную идею до сих пор не реализовали.

Deleted

P.S. А вообще мне древовидной fs хватает с головой. Просто интересно, почему такую очевидную идею до сих пор не реализовали.

Твой вопрос содержит в себе ответ на него.

Sectoid ★★★★★ ()

Это всё есть и называется xattrs.

Или ты хочешь, чтобы по каждому такому тегу все файлы были проиндексированы?

Тогда тебе в reiser4, там для всего этого сделана необходимая низкоуровневая база.

intelfx ★★★★★ ()
Ответ на: комментарий от Sectoid

Тем не менее, сейчас есть текстовые редакторы на основе браузеров и система инициализации, которая скоро будет больше ядра, так почему никто не написал tag fs?

Deleted ()
Ответ на: комментарий от intelfx

Забыл написать про изначально «плоскую» фс, без каталогов в принципе.

Deleted ()
Ответ на: комментарий от Deleted

Тем не менее, сейчас есть текстовые редакторы на основе браузеров и система инициализации, которая скоро будет больше ядра, так почему никто не написал tag fs?

Очевидно, потому, что текстовый редактор на основе браузера кому-то нужен, а tag fs - нет.

Sectoid ★★★★★ ()

МС пытались, но что-то пошло не так. Сложно для пользователя, к текущему положению вещей уже все привыкли.

iz_tabakerki ()
Ответ на: комментарий от iz_tabakerki

Сложно для пользователя

Скорее боязнь перед legacy, с захардкоженными слешами и парсингом file name.

Suigintou ★★★★ ()
Ответ на: комментарий от eabi

Нет, есть отдельно fs где хранятся файлы и БД где эти файлы связанны с тегами. Подобная реализация есть для fuse.

Deleted ()
Ответ на: комментарий от Deathstalker

Опять-же не то. Это просто надстройка над имеющийся древовидной структурой.

Deleted ()
Ответ на: комментарий от Deleted

Да я в контексте

боязнь перед legacy, с захардкоженными слешами и парсингом file name

Нет такой проблемы - захардкоденные слеши и пр. могут достаточно прозрачно превращаться в уникальный filename - даже с некоторыми тегами.

eabi ()
Последнее исправление: eabi (всего исправлений: 2)

ЕМНИП, у BeOS было что то подобное.

deadskif ()

Положим я ищу конфиг какой-либо софтины. Сейчас я знаю, что он наверняка где-то в ~.

Я делаю ls и смотрю, ага, вот тут дотфайлы прямо в корне, вот сборник дотфайлов в ~/.config и еще может быть в .kde или в .<app_name>.

А с тэгами как? Первый ls показывает 100500 тэгов, которые даже в экран не вмещаются.

find . -tag conf* ?

Талантов полно, для этой конкретной софтины оно может называться и preferences, и params и т.д. и т.п.

gistart ()
Ответ на: комментарий от gistart

Три тега: Имя пользователя; текстовый формат; имя пакета(версия, если надо) к которому пренадлежит данный конфиг.

Deleted ()
Последнее исправление: log4tmp (всего исправлений: 1)

возьми fuse, sqlite(за ради тегов) и key-value базу для хранения блоба - короче сделай сам :-) Благо что таких проектов было немерено лет 5-7 назад (пожалуй даже поболе), обрывки и останки должны найтись, есть на чём основаться;

MKuznetsov ★★★★★ ()

На самом деле теговая фс легко эмулируется с помощью ln

zloelamo ★★★★ ()
Ответ на: комментарий от Deleted

вместо одной начальной позиции поиска, в данном случае ~ — три начальных «условия»

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

предполагается ли способ уникальной идентификации конкретного файла?

gistart ()
Ответ на: комментарий от MKuznetsov

Мне не интересно такое сделать(тем более что на fuse уже есть), мне интересно почему никакой гипотетический Поттеринг не продвигает эту идею в мир?

Deleted ()
Ответ на: комментарий от gistart

предполагается ли способ уникальной идентификации конкретного файла?

Ну да: inode и имя хранятся отдельно от тегов.

Deleted ()
Ответ на: комментарий от Deleted

Имя как «Новая папка (1045)» и «settings.json»?

Я про то, что сейчас я знаю, что браузер скачал этот файл куда-то в ~/downloads/browser_name, а с тэгами как быть? Кропотливо переписывать имя файла из гуя в поиск?

gistart ()

А как ты будешь различные устройства(разделы) к различным директориям монтировать, если директорий нема. Зачем вообще это не нужно?

sudopacman ★★★★★ ()
Ответ на: комментарий от Deleted

А вообще мне древовидной fs хватает с головой. Просто интересно, почему такую очевидную идею до сих пор не реализовали.

Мне не интересно такое сделать(тем более что на fuse уже есть), мне интересно почему никакой гипотетический Поттеринг не продвигает эту идею в мир?

называется поднять тему чтобы просто по@#$деть :-)

Или тут обсуждается открытое письмо/воззвание ??

предлагаю начало и концовку: Dear mr.Pottering! <content placed here/> What the fuck!?

MKuznetsov ★★★★★ ()

Облако тегов может состоять из любого числа тегов в том числе вложенных;

поздравляю, ты переизобрел директории

cvs-255 ★★★★★ ()

Пока твоя ОС на этой системе загрузится можно будет чайку пару раз попить :}

Deleted ()
Ответ на: комментарий от sudopacman

Устройства просто подключаются к общему пулу, расширяя его, как в ораклях и мускулевском innodb. Каталоги не нужны, только таблицы с тегами и файлы в виде блобов, только хардкор. Попытка совместить это с классическим деревом превращает теги в ненужную надстройку. Хотя оно и так не нужно - там где нужно, есть rdbms.

Suigintou ★★★★ ()
Последнее исправление: Suigintou (всего исправлений: 5)
Ответ на: комментарий от Suigintou

А что делать, если я хочу mount устройства к директории, в которой есть содержимое, т. е. когда примонтированно устройство, в директории отображается содержимое устройства, а когда не примонтированно — содержимое самой директории?

sudopacman ★★★★★ ()
Последнее исправление: sudopacman (всего исправлений: 1)
Ответ на: комментарий от Suigintou

И как сделать ФС хранить определённые файлы на определённых устройствах?

sudopacman ★★★★★ ()

имхо, никто этим не пользуется потому, что придется в голове хранить идею, как организовано твоё облако тэгов

люди тупы - они не могут организовывать информацию у себя в голове, ни тэгами, ни как-либо еще

поэтому на помощь приходит древовидная файловая система.

как известно, в голове человек может обрабатывать 5 плюс-минус 2 элемента. Причем скорее минус, чем плюс.

древовидная файловая система, на каждом уровне иерархии которой 3-5 папок решает все проблемы.

например, «мой компьютер» состоит из «моих документов», «диска цэ» и «панели управления. В свою очередь „мои документы“ состоят из „документов“ и „развлечений“, а „развлечения“ делятся на „музыку“, „видео“ и „картинки“,

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

если вдруг появится несколько способов, всё сломается, люди сразу же потеряются. По той же причине почти никто не использует ярлыки, кроме как для того чтобы вывести их на Рабочий Стол

а то что ты предлагаешь - это заставить людей думать. Это не работает.

stevejobs ★★★★☆ ()
Последнее исправление: stevejobs (всего исправлений: 1)

У большинства пользователей ФС и так плоская — всё на рабочем столе в одной большой свалке. У «продвинутых» собрано по отдельным кучкам.
А теги вызовут только отторжение, их же вбивать надо руками. Вон, много ли народу пользуется тегами, которые есть в каждом мало-мальски приличном каталогизаторе картинок? Да даже id3 нормально заполненный был скорее чудом, пока их на научились заполнять винамп и тунец.
Вообще, я бы попользовался такой ФС, а то в некоторых местах на диске уже формируется небольшой бардак из симлинков.

dogbert ★★★★★ ()
Ответ на: комментарий от iz_tabakerki

МС пытались, но что-то пошло не так. Сложно для пользователя, к текущему положению вещей уже все привыкли.

Не пытались. WinFS - надстройка над NTFS, к самой файловой системе не имеющая отношения.

Black_Shadow ★★★★★ ()

теги делаются мягкими ссылками вполне

next_time ★★★★★ ()

Нужно будет ввести параллельно с этим если не папки, то хотя бы неймспейсы тэгов. Чтобы тэг sys::documents вёл в одно место, а tmp::documents – в другое. По умолчанию большинство программ пусть работают в sys.

Когда монтируешь внешнее устройство, то оно (если только ты очень сильно не захочешь выстрелить в ногу) получает новый неймспейс, скажем, usb1. Потому что иначе может возникнуть ситуация, когда файл important_system_config.ini, найденный на флэшке, перепутается с системным тёзкой, имеющим случайно такие же теги. Но поскольку у флэшки свой неймспейс, а у системы свой, то не перепутается. В принципе, можно не вводить странную сущность «неймспейсы», а просто ввести права на теги. Скажем, чтобы не-root не мог поставить файлу тег sys и запутать систему. Или чтобы никто, кроме пакетного менеджера, не мог поставить/убрать тег package-manager и запутать его.

greatperson ()
Последнее исправление: greatperson (всего исправлений: 1)
Ответ на: комментарий от gistart

браузер скачал

тоесть файл создан браузером и наследует тег его пакета(это как вариант)

Deleted ()
Ответ на: комментарий от MKuznetsov

называется поднять тему чтобы просто по@#$деть :-)

talks

Deleted ()
Ответ на: комментарий от cvs-255

Нет. Тут скорее как таблицы в lua, тоесть могут быть теги которые состоят из одного слова, а может подмассив тегов например для пакетного менеджера и пр. доп ПО

Deleted ()
Ответ на: комментарий от dogbert

А теги вызовут только отторжение, их же вбивать надо руками.

Часть тегов будет создавать система, пакетный менеджер и пр. ПО, например файлы загруженные через bittorrent можно сразу маркировать тегом «not_stolen»

Deleted ()
Ответ на: комментарий от greatperson

Неймспейсы - это уже дерево.

получает новый неймспейс, скажем, usb1.

Получает новые теги: remdev и тег из имени раздела карты памяти.

Deleted ()

Твой компьютер переполнился информацией? Дерево поиска стало слишком высоким? Вызови садовника, его зовут RM-RF/. Он подрежет дерево каталогов. И займись, наконец, делом. В этом мире так много интересной познавательной работы кроме копания в структуре баз данных ...

pacify ★★★★★ ()

Один человек пытался изобрести нечто подобное. Но он запутался.

У него идея была - создать универсальную БД, где можно будет хранить что угодно.

pacify ★★★★★ ()
Ответ на: комментарий от pacify

Дочитай исходный пост до конца. Мне не нужна теговая ФС, но идея лежит на поверхности и ее никто до сих пор не подхватил. В обсуждении были здравые замечания, что оно слишком сложно для конечного пользователя и если вдуматься, то оно так и есть и система xattrs из BFS выглядит более адекватным решением.

Deleted ()
Ответ на: комментарий от Deleted

Мне не нужна теговая ФС, но идея лежит на поверхности и ее никто до сих пор не подхватил.

Я хочу такую же ФС ещё с 2010-2012 года. Один-в-один моя идея повторяет твою. Только имплементация к applications у меня была не продумана.

Я тоже удивлён, что в опен-сорсе ничего такого нет.

Пытался писать нечто своё, начав с файлового менеджера, где можно бы было проставлять тэги (я забил для начала в descript.ion). Но сторкнулся как Буриданов осел с проблемой - делать свою БД (например на основе AVL), или использовать стандартную? Так и не стал продолжать эту наработку. Решил, что свободное время лучше потратить на здоровье и копание в огороде.

pacify ★★★★★ ()
Последнее исправление: pacify (всего исправлений: 2)
Ответ на: комментарий от sin_a

Не, про превосходство иерархических структур :)

buddhist ★★★★★ ()
Ответ на: комментарий от buddhist

И про превосходство рук над ногами. Ведь руки выше, значит превосходят, да?

sin_a ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.