The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Патч для интерпретации файлов как директорий в Linux

20.10.2007 20:38

Jaroslav Sykora представил реализацию механизма "теневых директорий" (shadow directories), суть которых в возможности интерпретации структурированного файла в виде иерархии директорий. Например, к заархивированным данным можно обратиться через команду "cat hello.zip^/hello.c" или "ls hello.zip^/", где символ "^" является сигналом для интерпретации файла как директории.

Операция разбора данных файла производится на пользовательском уровне, средствами дополнительных FUSE модулей.

  1. Главная ссылка к новости (http://kerneltrap.org/Linux/Sh...)
  2. RheaVFS - allows you to turn an archive into a virtual directory
  3. OpenNews: Доступ к файлу как к директории и другие интересные патчи для Linux ядра
Лицензия: CC-BY
Тип: К сведению
Короткая ссылка: https://opennet.ru/12480-file
Ключевые слова: file, linux, kernel, patch, archive
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (24) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Nick (??), 04:29, 21/10/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    ну, а почему бы и нет...
     
     
  • 2.11, Аноним (11), 04:27, 22/10/2007 [^] [^^] [^^^] [ответить]  
  • +/
    >ну, а почему бы и нет...

    А зачем ^ надо?Чем запись /folder/file.zip/cool-file-in-zip.txt например невалидна?Налетев на факт что file.zip файло а не дира и cd не катит - можно мля, посмотреть что это за дрянь и дальше парсить уже как зипарь.Зачем какие-то извращения с ^ надо?Потому что так халтурщикам парсить проще?Зато юзерам обучаться под это - убиться можно.Сами будете секретуток учить этим премудростям.А так они бы считали архив за нечто типа точки монтирования - достаточно 1 раз 1 понятие вдолбить и телемаркет :)

     
     
  • 3.18, RNZ (??), 10:47, 22/10/2007 [^] [^^] [^^^] [ответить]  
  • +/
    +1
     
  • 3.24, tux2002 (?), 07:45, 23/10/2007 [^] [^^] [^^^] [ответить]  
  • +/
    >>ну, а почему бы и нет...
    >
    >А зачем ^ надо?Чем запись /folder/file.zip/cool-file-in-zip.txt например невалидна?Налетев на факт что file.zip
    >файло а не дира и cd не катит - можно мля,
    >посмотреть что это за дрянь и дальше парсить уже как зипарь.Зачем
    >какие-то извращения с ^ надо?Потому что так халтурщикам парсить проще?Зато юзерам
    >обучаться под это - убиться можно.Сами будете секретуток учить этим премудростям.А
    >так они бы считали архив за нечто типа точки монтирования -
    >достаточно 1 раз 1 понятие вдолбить и телемаркет :)

    А если find или ls тебе не нужно содержимое архива вываливать? Я предпалагаю для этого и придумали ^, чтоб не патчить программы.

     
  • 2.19, www.andr.ru (?), 13:42, 22/10/2007 [^] [^^] [^^^] [ответить]  
  • +/
    Это они правильно идею от Plan 9 подхватили, - всё есть файл, - но только вот реализация этих принципов в линукс слишком дорого стоит - пространство имён одно на всех и обслуживается ядром. Архитектура не та, всё равно, что крылья к паровозу прикручивать. Красиво, конечно, но не летает :-)

    А вот зачем хитрые символы изобретать для интерпретора? Есть ведь команда mount, она все файловые системы и должна обслуживать. Смонтировал с ключами соответствующими - и юзай всеми стандартными утилитами и скриптами без изменений. Файл - он и в африке файл, а если то - это файл, а это - это файл, да не такой, а третье - вообще на файл не похож, как софт разрабатывать в такой среде? Такие вот ламеры делают очень просто - пишут одно и то же трижды, на каждый конкретный случай.

     
     
  • 3.20, Nick (??), 14:08, 22/10/2007 [^] [^^] [^^^] [ответить]  
  • +/
    >Это они правильно идею от Plan 9 подхватили, - всё есть файл,
    >- но только вот реализация этих принципов в линукс слишком дорого
    >стоит - пространство имён одно на всех и обслуживается ядром. Архитектура
    >не та, всё равно, что крылья к паровозу прикручивать. Красиво, конечно,
    >но не летает :-)

    дурак ты боцман, и шутки у тебя дурацкие...

    В каком году до нашей эры ты последний раз видел Линух?
    Будешь гордиться шо в пятисотом? Ну молодчинко.
    Потому как трепаццо ты можешь, а знать о чем говоришь - несколько тяжелее.

    Иди смотри "User Namespaces", опция CONFIG_USER_NS.
    Вместе с Documentation/sharedsubtree.txt   неплохо пойдет на пользу.


    >А вот зачем хитрые символы изобретать для интерпретора? Есть ведь команда mount,
    >она все файловые системы и должна обслуживать. Смонтировал с ключами соответствующими
    >- и юзай всеми стандартными утилитами и скриптами без изменений. Файл
    >- он и в африке файл, а если то - это
    >файл, а это - это файл, да не такой, а третье
    >- вообще на файл не похож, как софт разрабатывать в такой
    >среде? Такие вот ламеры делают очень просто - пишут одно и
    >то же трижды, на каждый конкретный случай.

    монтировать архив для просто взглянуть в него - неудобно.
    Если для тебя слово "неудобно" ниче не значит - сорри, ты вымрешь как динозавры

     
  • 3.21, яФря (?), 19:24, 22/10/2007 [^] [^^] [^^^] [ответить]  
  • +/
    опять грустный клоун вылез из своего шатра и решил доставить немного бесплатного фана
     
  • 3.22, R007 (?), 20:24, 22/10/2007 [^] [^^] [^^^] [ответить]  
  • +/
    >А вот зачем хитрые символы изобретать для интерпретора?

    Вот этого я не понял.Если немного изменить логику разборта пути и при ошибке cd глянуть что это файл и прикинуть его формат и далее разруливать иерархию через соотв. обработчик - было бы отлично.И что интереснее, не вижу никаких препятствий к этому.Кроме несколько большего объема кодинга.Да, такое поведение надо закодить.А с крышкой можно от этого отмазаться.

    >Есть ведь команда mount,

    Дядя, я конечно понимаю что в ваши годы слово usability не слышали.Но монтировать зипарь чтобы посмотреть его содержимое... нет, технически тому никаких проблем нет.Но ГЕМОРРОЙНОСТЬ этого метода для юзера - внушает!

    >среде? Такие вот ламеры делают очень просто - пишут одно и
    >то же трижды, на каждый конкретный случай.

    Да, а вы как самый умный наверное монтируете каждый зипарь чтобы посмотреть его содержимое?Ок, а если зипарей 20?А не запаритесь моунтить то???

     

  • 1.2, exn (??), 08:35, 21/10/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Хавает тип файла только по расширению ?
    Символ ^ ядро всегда перехватывает ?
    Не понял по поводу записи в архив.

    Много глюков ?

     
  • 1.3, Аноним (-), 11:57, 21/10/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    а cat-ы и ls-ы не обижаются на несуществующий файл "hello.zip^/hello.c"?
    или их тоже надо патчить? или они не производят проверку наличия файла своими силами, а всё тупо передают ядру?
     
     
  • 2.4, Zert (ok), 12:25, 21/10/2007 [^] [^^] [^^^] [ответить]  
  • +/
    Проверка существования файлов выполняется через системные вызовы, а их обрабатывает ядро. Так что юзерспейсные программы патчить не придётся. Но, всё равно, эта затея мне не кажется красивой, какая-то череззадница.
     
     
  • 3.5, Tau (?), 12:53, 21/10/2007 [^] [^^] [^^^] [ответить]  
  • +/
    Все-таки kernel mode.. Мне не хочется пробовать
     
     
  • 4.6, Кхтулху (?), 13:37, 21/10/2007 [^] [^^] [^^^] [ответить]  
  • +/
    Операция разбора данных файла производится на пользовательском уровне, средствами дополнительных FUSE модулей.

    ничего не испортится.

     
  • 4.13, Аноним (11), 04:33, 22/10/2007 [^] [^^] [^^^] [ответить]  
  • +/
    >Все-таки kernel mode.. Мне не хочется пробовать

    FUSE - не кернел.Вы в вопросе не рубите.

     
  • 3.12, Аноним (11), 04:33, 22/10/2007 [^] [^^] [^^^] [ответить]  
  • +/
    >мне не кажется красивой, какая-то череззадница.

    Во-во.Красиво было бы попытаться прожевать /path/to/file.zip/text.txt сперва как путь в ФС а когда это не прокатит поскольку file.zip не директория нифига - подчитать файло чутка и посмотреть на формат.Если знаем как парсить - вуаля, пытаемся пропарсить дальше.Нет - вернуть ошибку.Нафиг какие-то крышки нужны?Чтобы юзерам мозг запутать?

    По сути своей архивы - нечто типа точек монтирования, продолжение файловой системы на следующие уровни вложенности.Не совсем правда понятно что насчет архивов с абсолютными путями...наверное должно выглядеть примерно как структура папок при chroot, кому-то root а кому-то всего лишь подпапка простая в ФС.

     

  • 1.7, stimpack (?), 20:04, 21/10/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Это должно подтянуть консоль по юзабилити, по сравнению с FileManager-ами (от конкверрора до mc), которые смотрят в архив, как в файл, пользуясь разархиваторами.
    А то сиди, вспоминай, как у zip-а выдрать файл, потом как у рара посмотреть список и так далее.
    PS: сам FileManager-ами не пользуюсь, предпочитаю консоль.

    PPS:Эх, а потом ещё zsh-style tabbing на это дельце:
    cat hello.zip^/[tab]
    hello.c    hello.h     README       INSTALL       Makefile
    cat hello.zip^/I[tab]
    cat hello.zip^/INSTALL

     
     
  • 2.8, exn (??), 21:47, 21/10/2007 [^] [^^] [^^^] [ответить]  
  • +/
    а если архифчег в гигигах ? :D
     
     
  • 3.17, Дмитрий Ю. Карпов (?), 10:26, 22/10/2007 [^] [^^] [^^^] [ответить]  
  • +/
    Если из архива читают - это не так страшно. А вот если в архив что-то записывают, то тут загрузка процессора и диска взлетают до небес, и надолго.

    Хотя для Апача это было бы весьма удобно - на диске хранятся архивы, из которых на лету выдёргиваются файлы, причём ещё и кэшируются в раззипованном виде. За счёт бОльшей компактности растёт КПД дискового кэша, хотя возрастает нагрузка на процессор.

     

  • 1.9, vbv (ok), 23:30, 21/10/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Простите, а зачем этот цирк?
    Народ, может пора вспомнить зачем нужны архиваторы.
    Кому мало - есть навалом user space драйверов монтирующих архивы, ftp и прочее. Но это скорее для любителей не традиционных способов ...... .
    Идея интрересная, для теоретических исследований.
    Применение в практике - 100% вреда, тем более при нынешней цене на носители.
     
     
  • 2.23, R007 (?), 23:46, 22/10/2007 [^] [^^] [^^^] [ответить]  
  • +/
    >Применение в практике - 100% вреда, тем более при нынешней цене на
    >носители.

    Ну не 100%.Как насчет LZ-based алгоритмов которые быстры в декомпрессии?Они иногда столь быстры что может выйти выигрыш в скорости.Просто потому что меньше читается с тормозного по своей сути харда.Не верите?Посмотрите на алгоритмы типа UCL и LZO, у них декомпрессия с немеряной скоростью - на современном скорее в HDD упрется чем в их скорость работы :)

     

  • 1.10, Аноним (11), 01:05, 22/10/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Интересная штука...
     
  • 1.14, pavel_simple (ok), 07:50, 22/10/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    а зачем это всё -- если это уже давно есть без гемороя и в чистом user space
    http://plasticfs.sourceforge.net/
     
     
  • 2.15, stimpack (?), 08:51, 22/10/2007 [^] [^^] [^^^] [ответить]  
  • +/
    я там что-то никаких плагинов архиваторов не заметил.
     
     
  • 3.16, pavel_simple (ok), 08:53, 22/10/2007 [^] [^^] [^^^] [ответить]  
  • +/
    +/dev/hands
     
     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2020 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру