LINUX.ORG.RU

Вышел fuse-zip 0.2.0: первая файловая система для FUSE с поддержкой модификации ZIP-архивов

 , , ,


0

0

Вышла fuse-zip 0.2.0. Релиз хоть и минорный, но революционный по своей сути.

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

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

По производительности fuse-zip превосходит все известные аналоги, будь то KIO, Gnome GVFS, mc vfs, unpackfs, avfs или файловая система, построенная на основе fuse-j, на больших архивах и не уступает им на малых объёмах данных.

Тесты производительности VFS: http://code.google.com/p/fuse-zip/wik...

>>> Скачать

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

>Могу набросать пару use case-ов:

Я тоже могу нарисовать кучу абстрактных ситуаций но это не значит что они реально востребованы.

>Так там тот же zip, наверно, и вызывается.

Даже если, то что из того?

>Если его нет, то его надо написать :)

То бишь реальной практической пользы от твоего проектика нет...

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

>> Так там тот же zip, наверно, и вызывается.

> Даже если, то что из того?

Нельзя "зайти" в архив, содержащий сорсы какой-нибудь программы, прямо там сделать make install;make clean, а потом выйти. Без распаковки. К подобной функциональности я и стремился.

> То бишь реальной практической пользы от твоего проектика нет...

Заинтегрировать в kio/gio и будет.

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

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

ZipFolders умело ещё в 90х годах

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

> А zip по нескольким причинам:

> 1. меня тут полгода назад поймали на обещании сделать файловую систему для zip :) > 2. он удобнее ложится на файловую систему > 3. он имеет меньше проблем с перепаковкой

4. Недостатки 4.2 Чмода нет

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

> То бишь реальной практической пользы от твоего проектика нет...

Как и от Linux - к тому вообще всё писать надо, ведь он только ядро.

П.С. К чему эти неуклюжие попытки унизить автора/программу?

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

>> Так это с любой fs

> Большинство ФС скидывают данные на винт не только в момент отмонтирования.

Это да. Верю, что автор доработает со временем. Про sync - хорошая идея.

Просто вспомнил, как недавно потерял довольно много работы из-за сбоя электричества. В офисе у программиста нет UPS - у меня это первая работа, где так :) FS была ext3, на машине много RAM, где-то гигабайта полтора отводится на кэш и буфера.

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

> Только в эксплорере :-P ну почему. В Фаре еще.

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

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

только вчера увидевший комп лошарик детектед

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

>> Кстати, а нельзя сделать, чтобы данные записывались после каждого изменения?

>Получим такое же г, как и mc vfs.

Или "такое же г", как любая FS, смонтированная с опцией sync. Но никто ведь не говорит, что эта опция не нужна:) То же самое можно сделать и здесь - указывая опцию sync, знаешь "на что идёшь":)

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

>Что за любовь к zip? Вроде в линуксе/юниксах больше распространены gzip/bzip2.

Например, можно использовать для пакетной обработки (парсинга, подстановки) OOo файлов.

Led ★★★☆☆
()
Ответ на: комментарий от alt-x

>Десять лет назад оно в линуксе было посредством патча на ext2, который добавлял компрессию. У меня /var на таком разделе лежал и я был доволен. К сожалению, при переходе на ветку 2.2 (или всё-таки 2.4?) это поломали и больше не починили.

Оно и на 2.6 было. Загнулось в районе 2.6.12 (или около этого). На sf.net можешь посмотреть.

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

>Оно и на 2.6 было. Загнулось в районе 2.6.12 (или около этого). На sf.net можешь посмотреть.

Упс! Так он ожил! Даже для 2.6.25 есть!:)

http://sourceforge.net/projects/e2compr

Led ★★★☆☆
()

насколько я понял файлы хранятся в оперативной памяти до тех пор пока я не отмонтирую систему?

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

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

>а что будет, если память закончится, а я продолжу писать данные?

А что будет, если место на диске закончится, а ты "продолжишь писать данные"? Ты попробуй - а вдруг получится!:)

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

>а что будет, если память закончится, а я продолжу писать данные?

Ты не фанат KDE? А жаль. Они на такие мелочи внимания не обращают

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

> а что будет, если память закончится, а я продолжу писать данные?

Данные будут писаться в астрал, а при запуске Большого Адронного Коллайдера выплеснутся в нашу реальность.

А вообще, при окончании свободной памяти возвращается ошибка ENOMEM.

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

>> а что будет, если память закончится, а я продолжу писать данные?

> Ты не фанат KDE? А жаль. Они на такие мелочи внимания не обращают

Ты думаешь многие проверяют результат работы new?

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

> Или "такое же г", как любая FS, смонтированная с опцией sync. Но никто ведь не говорит, что эта опция не нужна:) То же самое можно сделать и здесь - указывая опцию sync, знаешь "на что идёшь":)

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

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

>К чему эти неуклюжие попытки унизить автора/программу?

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

А сборка прог находясь в архиве это вообще нонсенс. :)

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

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

По уровню культуры Вы с анонимусом прекрасно друг друга дополняете :)

И напомню, что ничего, кроме неинтересности программы лично Вам, Вы не продемонстрировали.

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

> или, если хочешь подчеркнуть, libzip does have.

Думаю, перевод будет: "libzip таки да имеет проблемы" :D

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

>А что будет, если место на диске закончится, а ты "продолжишь писать данные"? Ты попробуй - а вдруг получится!:)

уныло. Когда я работаю с архивами я обычно ориентируюсь на свободное пространство на диске а не в памяти.

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

>А вообще, при окончании свободной памяти возвращается ошибка ENOMEM.

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

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

> Ичсто теоретически, должно ругнуться ещё при открытии.

Понятно.

> Попробуй и, если свалится, то открывай багрепорт.

Обязательно постараюсь свалить :)

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

> а может быть, всё таки периодически сбрасывать данные в архив, дабы не ограничивать себя свободной памятью?

Можно сделать своп на несколько гигов и не заморачиваться :D

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

>Можно сделать своп на несколько гигов и не заморачиваться :D

а если я с live-cd решил записать zip архив? Специально создавать swap?

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

> а если я с live-cd решил записать zip архив? Специально создавать swap?

Ну можно флешку подключить или ввобще SSD с уже созданным свопом =) Если серьёзно, то с этим действительно что-то нужно делать, а то такой облом может быть... По крайней мере при монтировании опционально: надёжность в ущерб скорости или наоборот.

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

>Когда я работаю с архивами

Ты "работаешь" архивариусом?

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

>Специально создавать swap?

Нет, пользоваться существующим. liveCD так и делает (по крайней мере - должен делать, если это не "самопал Васи Пупкина на базе слаки")

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

>> А вообще, при окончании свободной памяти возвращается ошибка ENOMEM.

> а может быть, всё таки периодически сбрасывать данные в архив, дабы не ограничивать себя свободной памятью?

Для начала я научусь сжимать прямо в памяти, а там, шлядишь дело и до сброса в файл дойдёт.

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

>Нет, пользоваться существующим. liveCD так и делает (по крайней мере - должен делать, если это не "самопал Васи Пупкина на базе слаки")

а если существующего нету? скажем я вставлю его в компьютер, где кроме windows vista ничего и не стояло отродясь?

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

>> Нет, пользоваться существующим. liveCD так и делает (по крайней мере - должен делать, если это не "самопал Васи Пупкина на базе слаки")

> а если существующего нету? скажем я вставлю его в компьютер, где кроме windows vista ничего и не стояло отродясь?

Почивший knoppix умел создавать файл подкачки на fat-разделе. Уверен, что если б он дожил до наших дней, он бы и на ntfs научился.

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

>> почивший knoppix....

> Так вроде дожил всё-таки. Вон, не так давно был релиз... Правда, там, в основном, обновления версий.

Ну, январь 2007 года -- это, всё же, давно. Тогда у ntfs-3g вроде бы ещё проблемы с надёжностью были.

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

>Почивший knoppix умел создавать файл подкачки на fat-разделе. Уверен, что если б он дожил до наших дней, он бы и на ntfs научился.

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

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

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

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

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

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

>> Кстати, один подобный багрепорт же есть: http://code.google.com/p/fuse-zip/issues/detail?id=1

> Начало и конец нормальные, но 2 дыры в середине?

Ну типа того... Я там ошибку-то обнаружил, но не обработал(catch не поставил).

gaa ★★
() автор топика

ВАЖНОЕ ОБЪЯВЛЕНИЕ

Всем, у кого на 32-битной системе неправильно показывается размер файла, следует перекомпилировать libzip с CFLAGS=-D_FILE_OFFSET_BITS=64

Уж не знаю, насколько грязным получается этот хак, но так оно, как минимум, работает.

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

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

одно различие: если закончится оперативка и начнет использоваться своп, то всей системе будет достаточно плохо, особенно ресурсоемким приложениям.

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

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

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

> Led *** (*) (12.06.2008 3:01:07)

>>Что за любовь к zip? Вроде в линуксе/юниксах больше распространены gzip/bzip2.

> Например, можно использовать для пакетной обработки (парсинга, подстановки) OOo файлов.

Да применений на самом деле больше. Необходимость обрабатывать архивы, пришедшие со стороны (а равно и делать архивы для отсылки на сторону) никто не отменял.

hobbit ★★★★★
()

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

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

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

ZIP64? Только примонтировать не получится, как уже было сказано.

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

> Угу, да и создать тоже не так просто как кажется.

$ 7z a -tzip -r archive_name.zip file

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

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

> одно различие: если закончится оперативка и начнет использоваться своп, то всей системе будет достаточно плохо, особенно ресурсоемким приложениям.

Я так считаю, что если у тебя мало памяти и ты создаёшь гигабайтные архивы, то это первый звоночек к тому, чтобы всё-таки сделать его с помощью zip, а в виде записи на файловую систему :)

gaa ★★
() автор топика

А ты уверен, что делать буффер списком чунков есть правильно? Чунки по 4к из каких соображений - к размеру страницы?

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