LINUX.ORG.RU

Вышел fuse-zip 0.1.0

 , , ,


0

0

Увидела свет первая версия userspace файловой системы для работы с zip-архивами.

fuse-zip позволяет монтировать архив как файловую систему и работать с ним из любой программы, без специальных модификаций, чем выгодно отличается от вещей в себе: KIO и Gnome VFS.

Согласно проведённым тестам (распаковка заархивированных исходных текстов ядра Linux), fuse-zip оказывается в 2 раза быстрее, чем kio-zip и в 656 раз быстрее, чем mc vfs.

На текущий момент добавление/удаление файлов архива не реализовано, однако обещается в следующей версии.

>>> Подробности

★★

Проверено: Dimez ()
Ответ на: комментарий от gaa

> Под винду fuse не портирован пока что.

http://decas-dev.net/en/

FUSE-like API пока нет, желающие добавить приветствуются.

anonymous
()

>fuse-zip позволяет монтировать архив как файловую систему и работать с ним из любой программы

1 монтирование - это ведь такое простое действие. монтирование/размонтирование. как увлекает!

2 пример программ которые могут пользоваться fuse-zip приведите пожалуйста. и главное - зачем им писать в zip (и именно в него, а не в rar, 7zip и тп).

реализация работы с архивами плохая? так может её допилить?

>fuse-zip оказывается в 2 раза быстрее, чем kio-zip

ну мы подождём.

tommy ★★★★★
()

Ну наконец-то хоть что-то подобное тому как DMG файлы на Маке открываются.

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

> Ну проверять mime-тип сможет и гипотетический файл-менеджер

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

> Насколько мне известно, в avfs доступ осуществляется как file.tar.bz2/#file/in/archive.

Я ей пользуюсь, да, именно так там. Но это как бы не то, идеален все же дуализм когда foo.zip это файл-архив, но всегда можно прозрачно добраться до foo.zip/bar.txt. Это было бы идеально с точки зрения пользователя. Но, увы, технически на GNU/Linux, похоже, просто не реализуемо.

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

> Я ей пользуюсь, да, именно так там.

Ой, 4.2 вышло. Там file.tar.bz2#/file/in/archive, я невнимательно прочитал. Т.е. файл file.tar.bz2 и директория file.tar.bz2#.

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

> А чем автора не устроил готовый вариант unpackfs

Алгоритмом, который следует из названия. Там архив первым делом распаковывается во временный каталог, а уж потом из него раздаются файлы. Из этого следует кошмарная производительность и прожорливость.

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

> 2 пример программ которые могут пользоваться fuse-zip приведите пожалуйста.

Любая. В том и вся соль!

> и главное - зачем им писать в zip (и именно в него, а не в rar, 7zip и тп).

Программа решает узкую задачу доступа к архивам в формате zip. Unix way, однако. Кстати, погуглите на тему rarfs через fuse.

> реализация работы с архивами плохая? так может её допилить?

Она _принципиально_ плохая в том виде, в котором она есть в kio или gnome vfs. Потому что любую программу, которая хочет работать с архивными файлами надо этому специально обучать. А в моём случае она работает с обычными файлами на файловой системе.

>> fuse-zip оказывается в 2 раза быстрее, чем kio-zip

> ну мы подождём.

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

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

> Вы зануда. В говновузах теперь будет новый "типовой" курсач - fuse-zip, а вы придираетесь ;)

На фоне тех курсачей в \eps-окрестности программирования, которые мне приходилось видеть в родном ВУЗе, подобная работа будет смотреться солидно. Хотя 3 вечера работы -- это не тот объём, который бы я хотел видеть в своём курсовике.

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

> Хотя 3 вечера работы -- это не тот объём, который бы я хотел видеть в своём курсовике.

3 вечера при условии, что ты уже знаешь, кто такие fuse и zip, зачем их надо "объединять" и почему такой метод решения задачи будет лучшим. У меня почти со всеми курсовиками подобное было: с чем-то разбираюсь, ковыряюсь долго, делаю, пишу... а после защиты оборачиваюсь назад и вижу, что работы оказывается было на "3 вечера". Видимо, это какое-то релятивистское сокращение. ;)

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

> 3 вечера при условии, что ты уже знаешь, кто такие fuse и zip, зачем их надо "объединять" и почему такой метод решения задачи будет лучшим.

Ну да, если приплюсовать к этому ещё то время, которое я тут троллил ненаписанной файловой системой, то как раз на курсовик потянет ;)

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

>Любая. В том и вся соль!

Это теория. Пример готовой программы которая монтирует/читает/пишет/размонтирует какой?

>Программа решает узкую задачу доступа к архивам в формате zip.

не решает. потому что это доступ не к файлу.zip, а к дополнительно смонтированному (кемто/чемто) каталогу. каким конкретно программам надо читать/писать в zip? тем которым надо - и так это умеют. а которым не надо - зачем туда писать?

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

>> Любая. В том и вся соль!

> Это теория. Пример готовой программы которая монтирует/читает/пишет/размонтирует какой?

fuse-zip test.zip dir; cp -r dir/* /tmp/;fusermount -u dir

>> Программа решает узкую задачу доступа к архивам в формате zip.

> не решает. потому что это доступ не к файлу.zip, а к дополнительно смонтированному (кемто/чемто) каталогу.

Мсье не выспался? Как раз этот доступ и предоставляется. fuse-zip -- это файловая система для работы с zip-архивами через fuse.

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

Молодец!

Хорошая идея... но мне как-то запись ближе...

поназаписывал файлов в архив [/mount/zipPoint/] и скинул челу Файл! по почте. Ну и что, что надо будет umount сделать... это проще, чем файлы потом запаковывать...

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

> 9P. Когда оно будет под линуксом? :\

+1

> Доколе костыли писать будем?

Лучше IMHO Plan9 довести до бинарной совместимости с Linux, и тогда самый ништяк.

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

>Спасибо, поржал.

Человек тут старался, кодил just for fun, а ты сравниваешь его с ZIP-folder. %) Ну не дурак ли?

Demon37 ★★★★
()

1) Автор молодец; 2) Прошу при дальнейшем допиливании учесть возможность работы с запароленными архивами, чтоб не наступать на те грабли, что были в mc; 3) Жду ебилдов.

hobbit ★★★★★
()

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

anonymous
()
Ответ на: Re^2: Вышел fuse-zip 0.1.0 от gaa

>Вероятно, придётся ещё и свой файл-менеджер писать

И он у тебя будет на tk, да? :)

ЗЫЖ респект!

madcore ★★★★★
()

вааааааа

народ, а как обстоит дело с многозапросностью под fuse?

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

anonymous
()

>Согласно проведённым тестам (распаковка заархивированных исходных текстов ядра Linux), fuse-zip оказывается в 2 раза быстрее, чем kio-zip и в 656 раз быстрее, чем mc vfs.

дурость и велосипедостроение. надо было реализовать fuse-arc и разные архивы модулями (см. mc)

хотя вообще сам концепт сомнителен. затраты на монтирование/размонтирование по времени опять же

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

> у гнома теперь есть

А если кто-то гномом не пользуется?

naryl ★★★★★
()

почитал дискуссию - ЛОР состоит из латентных вантузов и которых куча zip-архивов, если им нужен такой костыль.

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

>Спустя 10 лет линуксоиды реализовали ZipMagic?

ага. Прямо ностальгия

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

>Под винду fuse не портирован пока что. А вот mc, кстати, портировали.

Аналоги FUSE есть, пока хватит на первое время. А MC - это мастдай.

>> Если решишь начать - свистни, плиз, на Alex.Besogonov@gmail.com Могу помочь людьми. >Ой, лучше уж ты меня ищи, ибо это у меня стоит в очень-очень далёких планах...

У меня оно в не менее долгих планах :)

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

+100. не могу вспомнить ни одного архива на домашней машине. те которые попали на машину, например из интернетов, сразу распаковались и если были нужны, то остались в распакованом виде.

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

Ты принципиально не будешь скачивать архив в zip, даже если там лежит то, что тебе нужно?

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

anonymous> Вот бы ещё его сделать портируемым под Windows

Вдоль

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

>> А MC - это мастдай.

> а что используют Ъ?

GNU coreutils?

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

> а что на счет 7zip ? Он вроде как более Ъ :).

ни разу. в отличие от, он не умеет posix-ных прав.

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

> и главное - зачем им писать в zip (и именно в него, а не в rar, 7zip и тп).

в zip писать еще можно, а вот с раром (который solid архив) такое уже не проканает, придётся весь архив распаковывать. с 7z тоже что с раром (можно конечно не в солид архив запаковывать но тогда уж сразу зипом пользоваться)

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

>Одно очень плохо - ядро архитектурно (на Kernel Trap был подроный разбор полетов этого относительно фичи reiserfs) не может правильно сделать так, чтобы файл одновременно был директорией. А именно это было бы идеальным методом работы с архивами.

Легко как может. Только это не поддерживается VFS, а так любая файловая система может как угодно парсить файл, в том числе и как директорию ala:

$ ls -l /home/user/
-rw-------  1 user  user     259000 2008-04-05 16:57 file.txt

$ ls -l /home/user/file.txt
/home/user/file.txt:This is a test file

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

> 2) Прошу при дальнейшем допиливании учесть возможность работы с запароленными архивами, чтоб не наступать на те грабли, что были в mc

Это уже к авторам libzip. Когда они релизуют поддержку запароленных архивов, тогда и у меня будет.

gaa ★★
() автор топика
Ответ на: комментарий от X-Pilot

> А в виде пакетов Deb/RPM будет? :)

deb-source будет, может ещё осилю кросскомпилятор и сваяю бинарнки под i386 и amd64. А уж pm-ки под весь соопарк rpm-дистров я делать замучаюсь.

gaa ★★
() автор топика
Ответ на: вааааааа от anonymous

> народ, а как обстоит дело с многозапросностью под fuse?

По дефолту fuse работает в многопоточном режиме. Мне это дело пришлось явно отключать, т.к. у libzip с многопоточностью проблемы.

> типа я получаю один запрос, отправляю на обработку(в сеть) и принимаю пока свободен второй?

Примерно так.

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

> дурость и велосипедостроение. надо было реализовать fuse-arc и разные архивы модулями (см. mc)

Это уже есть и назвается avfs, unpackfs. Но у них ужасная производительность за счёт черезжопного алгоритма. У меня в 656 раз бустрее :)

> хотя вообще сам концепт сомнителен. затраты на монтирование/размонтирование по времени опять же

я считал время на распаковку с учётом монтирования-отмонтирования. Всё равно быстрее аналогов.

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

> а что на счет 7zip ? Он вроде как более Ъ :)

Для него нет либы вроде libzip. Так что тут будет посложнее.

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

>> типа я получаю один запрос, отправляю на обработку(в сеть) и принимаю пока свободен второй?

> Примерно так.

ЕМНИП, можно даже отвечать на запросы в произвольном порядке. То есть можно (даже в однопоточном режиме) доставать запросы, отправлять их куда надо на обработку и возвращать результаты по мере выполнения.

const86 ★★★★★
()

галактеко опасносте!

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

>можно конечно не в солид архив запаковывать но тогда уж сразу зипом пользоваться

Экая чушь, однако!

anonymous
()
Ответ на: Re^2: Вышел fuse-zip 0.1.0 от gaa

>Нужен файловый менеджер, обученный монтированию архивов через fuse

Nautilus + Nautilus Actions. Приделываешь пункт, типа mount+browse :)

KRoN73 ★★★★★
()

>На текущий момент добавление/удаление файлов архива не реализовано

Ну так нафиг оно тогда нада...

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

>велосипед?! avfs уже отменили?

Это жестко. К тому же с avfs только рокс (rox) по уму интегрирован.

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